Grupos de segurança de rede para configurar uma rede virtual no Azure Container Apps

Os grupos de segurança de rede (NSGs) necessários para configurar redes virtuais assemelham-se muito às definições que o Kubernetes exige.

Pode ajudar a proteger uma rede através de NSGs com regras mais restritivas do que as regras padrão do NSG para controlar todo o tráfego de entrada e saída para o ambiente Azure Container Apps ao nível da subscrição.

No ambiente de perfil de carga de trabalho, são suportadas rotas definidas pelo utilizador (UDRs) e a segurança do tráfego de saída com um firewall . Para um guia sobre como configurar um UDR para Aplicações de Contentores para restringir o tráfego de saída com Azure Firewall, veja Controlar o tráfego de saída em Azure Container Apps com rotas definidas pelo utilizador.

Quando usas um ambiente externo de perfil de carga de trabalho, o tráfego de entrada para as Aplicações de Contentor passa pelo IP público que existe no grupo de recursos geridos em vez de através da tua sub-rede. Esta limitação significa que bloquear o tráfego de entrada via NSG ou firewall num ambiente externo de perfil de carga de trabalho não é suportado.

No ambiente legado apenas de Consumo, o Azure ExpressRoute não é suportado, e os UDRs personalizados têm suporte limitado. Para obter mais informações sobre o nível de suporte UDR disponível em um ambiente somente de consumo, consulte as Perguntas frequentes.

NSG permitir regras

As tabelas a seguir descrevem como configurar uma coleção de regras de permissão do NSG. As regras específicas de que precisas dependem do tipo de ambiente.

Interna

Nota

Quando utiliza perfis de carga de trabalho, as regras NSG de entrada aplicam-se apenas ao tráfego que passa pela sua rede virtual. Se definir as suas aplicações de contentores para aceitarem tráfego da internet pública, o tráfego recebido passa pelo endpoint público em vez da rede virtual.

Protocolo Origem Portas de origem Destino Portas de destino Descrição
TCP Os IPs do seu cliente * A sub-rede1 do seu aplicativo de contêiner 80, 31080 Permita que os IPs dos seus clientes acedam às Aplicações Container quando estiver a usar HTTP. 31080 é a porta onde o proxy de borda do ambiente Container Apps responde ao tráfego HTTP. Está atrás do balanceador de carga interno.
TCP Os IPs do seu cliente * A sub-rede1 do seu aplicativo de contêiner 443, 31443 Permita que os IPs dos seus clientes acedam às Aplicações Container quando estiver a usar HTTPS. 31443 é a porta onde o proxy de edge do ambiente Container Apps responde ao tráfego HTTPS. Está atrás do balanceador de carga interno.
TCP Balanceador de Carga do Azure * A sub-rede do seu aplicativo de contêiner 30000-32767 2 Permita que o Balanceador de Carga do Azure sonde pools de back-end.
TCP Os IPs do seu cliente * A sub-rede do seu aplicativo de contêiner Portas expostas e 30000-327672 Esta regra aplica-se apenas a aplicações TCP. Não é obrigatório para aplicações HTTP.

1 Passa este endereço como parâmetro ao criar um ambiente. Por exemplo, 10.0.0.0/21.

2 Precisa da gama completa ao criar as suas aplicações container, pois uma porta dentro do intervalo é alocada dinamicamente. Depois de criares as aplicações container, as portas necessárias são dois valores imutáveis e estáticos, e podes atualizar as tuas regras NSG.

De Saída

Protocolo Origem Portas de origem Destino Portas de destino Descrição
TCP A sub-rede do seu aplicativo de contêiner * MicrosoftContainerRegistry 443 Esta etiqueta de serviço representa o Registo de Artefactos da Microsoft para contentores do sistema.
TCP A sub-rede do seu aplicativo de contêiner * AzureFrontDoor.FirstParty 443 Esta etiqueta de serviço é uma dependência da MicrosoftContainerRegistry etiqueta de serviço.
Qualquer A sub-rede do seu aplicativo de contêiner * A sub-rede do seu aplicativo de contêiner * Esta regra permite a comunicação entre IPs na sub-rede da sua aplicação container.
TCP A sub-rede do seu aplicativo de contêiner * AzureActiveDirectory 443 Se você estiver usando uma identidade gerenciada, ela é necessária.
TCP A sub-rede do seu aplicativo de contêiner * AzureMonitor 443 Esta regra só é necessária quando se usa o Azure Monitor. Permite chamadas de saída para o Azure Monitor.
TCP e UDP A sub-rede do seu aplicativo de contêiner * 168.63.129.16 53 Esta regra permite que o ambiente utilize o DNS do Azure para resolver o nome do anfitrião.

A comunicação DNS para DNS do Azure não está sujeita a NSGs, a menos que seja direcionada através da etiqueta de serviço AzurePlatformDNS. Para bloquear o tráfego DNS, crie uma regra de saída para negar o tráfego para a AzurePlatformDNS etiqueta de serviço.
TCP A sub-rede1 do seu aplicativo de contêiner * O seu registo de contentores A porta do seu registo de contentores Esta regra é necessária para comunicar com o seu registo de contentores. Por exemplo, quando usas Azure Container Registry, precisas de AzureContainerRegistry e AzureActiveDirectory para o destino. A porta é a porta do teu registo de contentores, a menos que estejas a usar endpoints privados. 2
TCP A sub-rede do seu aplicativo de contêiner * Storage.<Region> 443 Esta regra é necessária apenas quando está a usar o Container Registry para alojar as suas imagens.

1 Passa este endereço como parâmetro ao criar um ambiente. Por exemplo, 10.0.0.0/21.

2 Se estiver a usar o Container Registry com NSGs configurados na sua rede virtual, crie um endpoint privado no seu registo de contentores para permitir que as Aplicações Container extraiam imagens através da rede virtual. Não precisas de adicionar uma regra NSG para o Container Registry quando está configurado com endpoints privados.

Considerações

  • Se você estiver executando servidores HTTP, talvez seja necessário adicionar portas 80 e 443.
  • Não negue explicitamente o endereço DNS do Azure 168.63.129.16 nas regras NSG de saída. Se o fizeres, o ambiente das Aplicações Container não funciona.