Protegendo uma VNET personalizada em Aplicativos de Contêiner do Azure com Grupos de Segurança de Rede
Os NSGs (Network Security Groups) necessários para configurar redes virtuais se assemelham muito às configurações exigidas pelo Kubernetes.
Você pode bloquear uma rede via NSGs com regras mais restritivas do que as regras NSG padrão para controlar todo o tráfego de entrada e saída para o ambiente de Aplicativos de Contêiner no nível de assinatura.
No ambiente de perfis de carga de trabalho, há suporte para rotas definidas pelo usuário (UDRs) e a proteção do tráfego de saída com um firewall . Ao usar um ambiente de perfis de carga de trabalho externo, o tráfego de entrada para os Aplicativos de Contêiner do Azure é roteado por meio do IP público que existe no grupo de recursos gerenciados, em vez de por meio de sua sub-rede. Isso significa que o bloqueio do tráfego de entrada via NSG ou Firewall em um ambiente de perfis de carga de trabalho externos não é suportado. Para obter mais informações, consulte Rede em ambientes de Aplicativos de Contêiner do Azure.
No ambiente Somente consumo, rotas personalizadas definidas pelo usuário (UDRs). No ambiente Somente consumo, rotas expressas não são suportadas e rotas personalizadas definidas pelo usuário (UDRs) têm suporte limitado. Para obter mais detalhes sobre o nível de suporte UDR disponível no ambiente Somente consumo, consulte as Perguntas frequentes.
As tabelas a seguir descrevem como configurar uma coleção de regras de permissão do NSG. As regras específicas necessárias dependem do seu tipo de ambiente.
Protocolo | Origem | Portas de origem | Destino | Portas de destino | Description |
---|---|---|---|---|---|
TCP | Os IPs do seu cliente | * | A sub-rede1 do seu aplicativo de contêiner | 80 , 443 |
Permita que seus IPs de Cliente acessem os Aplicativos de Contêiner do Azure. Use a porta 80 para HTTP e 443 para HTTPS. |
TCP | Os IPs do seu cliente | * | O staticIP ambiente do seu aplicativo de contêiner |
80 , 443 |
Permita que seus IPs de Cliente acessem os Aplicativos de Contêiner do Azure. Use a porta 80 para HTTP e 443 para HTTPS. |
TCP | AzureLoadBalancer | * | A sub-rede do seu aplicativo de contêiner | 30000-32767 2 |
Permita que o Azure Load Balancer sonde pools de back-end. |
TCP | A sub-rede do seu aplicativo de contêiner | * | A sub-rede do seu aplicativo de contêiner | * | Necessário para permitir que o sidecar do enviado do aplicativo de contêiner se conecte ao serviço de enviado. |
1 Esse endereço é passado como um parâmetro quando você cria um ambiente. Por exemplo, 10.0.0.0/21
.
2 O intervalo completo é necessário ao criar seus Aplicativos de Contêiner do Azure como uma porta dentro do intervalo será alocada dinamicamente. Uma vez criadas, as portas necessárias são dois valores estáticos imutáveis e você pode atualizar suas regras NSG.
Nota
Ao usar ambientes Somente consumo, todas as portas de saída exigidas pelo Serviço Kubernetes do Azure também são necessárias para seu aplicativo de contêiner.
Protocolo | Origem | Portas de origem | Destino | Portas de destino | Description |
---|---|---|---|---|---|
TCP | A sub-rede do seu aplicativo de contêiner | * | MicrosoftContainerRegistry |
443 |
Esta é a marca de serviço para o registro de contêiner da Microsoft para contêineres do sistema. |
TCP | A sub-rede do seu aplicativo de contêiner | * | AzureFrontDoor.FirstParty |
443 |
Esta é uma dependência da MicrosoftContainerRegistry etiqueta de serviço. |
UDP | A sub-rede do seu aplicativo de contêiner | * | AzureCloud.<REGION> |
1194 |
Necessário para conexão segura interna do AKS entre nós subjacentes e plano de controle. Substitua <REGION> pela região onde seu aplicativo de contêiner está implantado. |
TCP | A sub-rede do seu aplicativo de contêiner | * | AzureCloud.<REGION> |
9000 |
Necessário para conexão segura interna do AKS entre nós subjacentes e plano de controle. Substitua <REGION> pela região onde seu aplicativo de contêiner está implantado. |
TCP | A sub-rede do seu aplicativo de contêiner | * | AzureCloud |
443 |
Permitir todas as saídas na porta 443 fornece uma maneira de permitir todas as dependências de saída baseadas em FQDN que não têm um IP estático. |
UDP | A sub-rede do seu aplicativo de contêiner | * | * | 123 |
Servidor NTP. |
Qualquer | A sub-rede do seu aplicativo de contêiner | * | A sub-rede do seu aplicativo de contêiner | * | Permita a comunicação entre IPs na sub-rede do seu aplicativo de contêiner. |
TCP e UDP | A sub-rede do seu aplicativo de contêiner | * | 168.63.129.16 |
53 |
Permite que o ambiente use o DNS do Azure para resolver o nome do host. |
TCP | A sub-rede1 do seu aplicativo de contêiner | * | O seu Registo de Contentores | A porta do seu registo de contentores | Isso é necessário para se comunicar com o registro do contêiner. Por exemplo, ao usar o ACR, você precisa AzureContainerRegistry e AzureActiveDirectory para o destino, e a porta será a porta do seu registro de contêiner, a menos que use pontos de extremidade privados.2 |
TCP | A sub-rede do seu aplicativo de contêiner | * | Storage.<Region> |
443 |
Apenas necessário ao usar Azure Container Registry para hospedar suas imagens. |
TCP | A sub-rede do seu aplicativo de contêiner | * | AzureMonitor |
443 |
Necessário apenas ao usar o Azure Monitor. Permite chamadas de saída para o Azure Monitor. |
1 Esse endereço é passado como um parâmetro quando você cria um ambiente. Por exemplo, 10.0.0.0/21
.
2 Se estiver a utilizar o Azure Container Registry (ACR) com NSGs configurados na sua rede virtual, crie um ponto de extremidade privado no seu ACR para permitir que as Aplicações de Contentor do Azure extraiam imagens através da rede virtual. Não é necessário adicionar uma regra NSG para ACR quando configurado com pontos de extremidade privados.
- Se você estiver executando servidores HTTP, talvez seja necessário adicionar portas
80
e443
. - Não negue explicitamente o endereço
168.63.129.16
DNS do Azure nas regras NSG de saída, ou seu ambiente de Aplicativos de Contêiner não poderá funcionar.