Regras de rede de saída e FQDN para clusters do Serviço de Kubernetes do Azure (AKS)

Este artigo fornece os detalhes necessários que permitem proteger o tráfego de saída do seu AKS (Serviço de Kubernetes do Azure). Contém os requisitos de cluster para uma implantação básica do AKS e requisitos adicionais para complementos e recursos opcionais. Você pode aplicar essas informações a qualquer método ou dispositivo de restrição de saída.

Para ver um exemplo de configuração usando o Firewall do Azure, visite Controlar o tráfego de saída usando o Firewall do Azure no AKS.

Segundo plano

Os clusters do AKS são implantados em uma rede virtual. Essa rede pode ser personalizada e pré-configurada por você ou pode ser criada e gerenciada pelo AKS. Em ambos os casos, o cluster tem dependências de saída ou de saída em serviços fora da rede virtual.

Para fins operacionais e de gerenciamento, os nós em um cluster do AKS precisam acessar portas e nomes de domínio totalmente qualificados (FQDNs) específicos. Esses pontos de extremidade são necessários para que os nós se comuniquem com o servidor da API ou para baixar e instalar os principais componentes do cluster do Kubernetes e as atualizações de segurança do nó. Por exemplo, o cluster precisa extrair imagens de contêiner do sistema de base do Microsoft Container Registry (MCR).

As dependências de saída do AKS são quase que totalmente definidas com FQDNs, que não têm endereços estáticos por trás delas. A falta de endereços estáticos significa que você não pode usar grupos de segurança de rede (NSGs) para bloquear o tráfego de saída de um cluster do AKS.

Por padrão, os clusters do AKS têm acesso irrestrito à Internet de saída. Esse nível de acesso à rede permite que os nós e os serviços que você executa acessem recursos externos, conforme necessário. Se quiser restringir o tráfego de saída, um número limitado de portas e endereços precisar estar acessível para manter a integridade das tarefas de manutenção de cluster. A solução mais simples para proteger os endereços de saída é usar um dispositivo de firewall que possa controlar o tráfego de saída com base em nomes de domínio. Firewall do Azure pode restringir o tráfego de HTTP e HTTPS de saída com base no FQDN de destino. Você também pode configurar o firewall e as regras de segurança de sua preferência para permitir as portas e os endereços necessários.

Importante

Este documento aborda apenas como bloquear o tráfego de saída da sub-rede do AKS. Por padrão, o AKS não tem nenhum requisito de entrada. O bloqueio do tráfego interno de sub-rede usando grupos de segurança de rede (NSGs) e firewalls não é suportado. Para controlar e bloquear o tráfego dentro do cluster, consulte Proteger o tráfego entre pods usando políticas de rede no AKS.

Regras de rede de saída e FQDNs necessários para clusters do AKS

As seguintes regras de rede e FQDN/aplicativo são necessárias para um cluster do AKS. Você pode usá-los se desejar configurar uma solução diferente do Firewall do Azure.

  • As dependências de endereço IP são para tráfego não HTTP/S (tráfego TCP e UDP).
  • Pontos de extremidade HTTP/HTTPS do FQDN podem ser colocados em seu dispositivo de firewall.
  • Pontos de extremidade HTTP/HTTPS curinga são dependências que podem variar de acordo com seu cluster do AKS com base em vários qualificadores.
  • O AKS usa um controlador de admissão para injetar o FQDN como uma variável de ambiente para todas as implantações no kube-system e gatekeeper-system. Isso garante que toda a comunicação do sistema entre os nós e o servidor de API use o FQDN do servidor de API e não o IP do servidor de API. Você pode obter o mesmo comportamento em seus próprios pods, em qualquer namespace, anotando a especificação de pod com uma anotação chamada kubernetes.azure.com/set-kube-service-host-fqdn. Se essa anotação estiver presente, o AKS definirá a variável KUBERNETES_SERVICE_HOST como o nome de domínio do servidor de API em vez do IP do serviço no cluster. Isso é útil nos casos em que a saída do cluster é realizada por meio de um firewall de camada 7.
  • Se você tiver um aplicativo ou solução que precise falar com o servidor de API, deverá adicionar uma regra de rede adicional para permitir a comunicação TCP com a porta 443 do IP do servidor de API OU, se você tiver um firewall de camada 7 configurado para permitir o tráfego para o nome de domínio do Servidor de API, defina kubernetes.azure.com/set-kube-service-host-fqdn nas especificações do pod.
  • Em raras ocasiões, se houver uma operação de manutenção, o IP do servidor de API pode alterar. As operações de manutenção planejadas que podem alterar o IP do servidor de API sempre são comunicadas antecipadamente.
  • Em determinadas circunstâncias, pode ser necessário haver tráfego para "md-*.blob.storage.azure.net". Essa dependência ocorre devido a certos mecanismos internos do Azure Managed Disks. É aconselhável usar também a marca de serviço de Armazenamento.

Regras de rede exigidas globais do Azure

Ponto de extremidade de destino Protocolo Porta Use
*:1194
Or
Marca de serviço - AzureCloud.<Region>:1194
Or
CIDRs regionais - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Para uma comunicação segura em túnel entre os nós e o painel de controle. Isso não é necessário para clusters privados ou para clusters com o konnectivity-agent habilitado.
*:9000
Or
Marca de serviço - AzureCloud.<Region>:9000
Or
CIDRs regionais - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Para uma comunicação segura em túnel entre os nós e o painel de controle. Isso não é necessário para clusters privados ou para clusters com o konnectivity-agent habilitado.
*:123 ou ntp.ubuntu.com:123 (se estiver usando regras de rede do Firewall do Azure) UDP 123 Necessário para sincronização de tempo do NTP (Network Time Protocol) nos nós do Linux. Isso não é necessário para os nós provisionados após março de 2021.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Se estiver usando servidores DNS personalizados, você deve garantir que eles possam ser acessados ​​pelos nós de cluster.
APIServerPublicIP:443 (if running pods/deployments that access the API Server) TCP 443 Necessário se estiver executando pods/implantações que acessam o servidor de API. Esses pods/implantações usarão o IP da API. Esta porta não é necessária para clusters privados.

Regras de FQDN/aplicativo globais do Azure necessárias

FQDN de destino Porta Use
*.hcp.<location>.azmk8s.io HTTPS:443 Necessário para a comunicação de nó <-> servidor de API. Substitua <location> pela região em que o cluster do AKS está implantado. Isso não é necessário para clusters com o konnectivity-agent habilitado. O Konnectivity também usa a ALPN (Negociação de Protocolo do Application-Layer) para se comunicar entre o agente e o servidor. Bloquear ou reescrever a extensão ALPN causará uma falha. Isso não é necessário para clusters privados.
mcr.microsoft.com HTTPS:443 Necessário para acessar imagens no Microsoft Container Registry (MCR). Esse registro contém gráficos/imagens internos (por exemplo, coreDNS etc.). Essas imagens são necessárias para a criação e o funcionamento corretos do cluster, incluindo operações de escala e atualização.
*.data.mcr.microsoft.com HTTPS:443 Necessárias para o armazenamento do MCR apoiado pela Rede de Distribuição de Conteúdo (CDN) do Azure.
management.azure.com HTTPS:443 Necessárias para operações de Kubernetes na API do Azure.
login.microsoftonline.com HTTPS:443 Necessário para a autenticação do Microsoft Entra.
packages.microsoft.com HTTPS:443 Esse endereço é o repositório de pacotes da Microsoft usado para as operações app-get. Os pacotes de exemplo incluem Moby, PowerShell e CLI do Azure.
acs-mirror.azureedge.net HTTPS:443 Esse endereço é para o repositório necessário para baixar e instalar os binários necessários, como kubenet e CNI do Azure.

Regras de rede necessárias para o Microsoft Azure operado pela 21Vianet

Ponto de extremidade de destino Protocolo Porta Use
*:1194
Or
Marca de serviço - AzureCloud.Region:1194
Or
CIDRs regionais - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Para uma comunicação segura em túnel entre os nós e o painel de controle.
*:9000
Or
Marca de serviço - AzureCloud.<Region>:9000
Or
CIDRs regionais - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Para uma comunicação segura em túnel entre os nós e o painel de controle.
*:22
Or
Marca de serviço - AzureCloud.<Region>:22
Or
CIDRs regionais - RegionCIDRs:22
Or
APIServerPublicIP:22 (only known after cluster creation)
TCP 22 Para uma comunicação segura em túnel entre os nós e o painel de controle.
*:123 ou ntp.ubuntu.com:123 (se estiver usando regras de rede do Firewall do Azure) UDP 123 Necessário para sincronização de tempo do NTP (Network Time Protocol) nos nós do Linux.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Se estiver usando servidores DNS personalizados, você deve garantir que eles possam ser acessados ​​pelos nós de cluster.
APIServerPublicIP:443 (if running pods/deployments that access the API Server) TCP 443 Necessário se estiver executando pods/implantações que acessam o servidor de API. Esses pods/implantações usarão o IP da API.

Regras de FQDN/aplicativo necessárias para o Microsoft Azure operado pela 21Vianet

FQDN de destino Porta Use
*.hcp.<location>.cx.prod.service.azk8s.cn HTTPS:443 Necessário para a comunicação de nó <-> servidor de API. Substitua <location> pela região em que o cluster do AKS está implantado.
*.tun.<location>.cx.prod.service.azk8s.cn HTTPS:443 Necessário para a comunicação de nó <-> servidor de API. Substitua <location> pela região em que o cluster do AKS está implantado.
mcr.microsoft.com HTTPS:443 Necessário para acessar imagens no Microsoft Container Registry (MCR). Esse registro contém gráficos/imagens internos (por exemplo, coreDNS etc.). Essas imagens são necessárias para a criação e o funcionamento corretos do cluster, incluindo operações de escala e atualização.
.data.mcr.microsoft.com HTTPS:443 Necessárias para o armazenamento do MCR apoiado pela Rede de Distribuição de Conteúdo (CDN) do Azure.
management.chinacloudapi.cn HTTPS:443 Necessárias para operações de Kubernetes na API do Azure.
login.chinacloudapi.cn HTTPS:443 Necessário para a autenticação do Microsoft Entra.
packages.microsoft.com HTTPS:443 Esse endereço é o repositório de pacotes da Microsoft usado para as operações app-get. Os pacotes de exemplo incluem Moby, PowerShell e CLI do Azure.
*.azk8s.cn HTTPS:443 Esse endereço é para o repositório necessário para baixar e instalar os binários necessários, como kubenet e CNI do Azure.

Regras de rede do Azure necessárias para o governo dos EUA

Ponto de extremidade de destino Protocolo Porta Use
*:1194
Or
Marca de serviço - AzureCloud.<Region>:1194
Or
CIDRs regionais - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Para uma comunicação segura em túnel entre os nós e o painel de controle.
*:9000
Or
Marca de serviço - AzureCloud.<Region>:9000
Or
CIDRs regionais - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Para uma comunicação segura em túnel entre os nós e o painel de controle.
*:123 ou ntp.ubuntu.com:123 (se estiver usando regras de rede do Firewall do Azure) UDP 123 Necessário para sincronização de tempo do NTP (Network Time Protocol) nos nós do Linux.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Se estiver usando servidores DNS personalizados, você deve garantir que eles possam ser acessados ​​pelos nós de cluster.
APIServerPublicIP:443 (if running pods/deployments that access the API Server) TCP 443 Necessário se estiver executando pods/implantações que acessam o servidor de API. Esses pods/implantações usarão o IP da API.

Regras de FQDN/aplicativo do Azure necessárias para o governo dos EUA

FQDN de destino Porta Use
*.hcp.<location>.cx.aks.containerservice.azure.us HTTPS:443 Necessário para a comunicação de nó <-> servidor de API. Substitua <location> pela região em que o cluster do AKS está implantado.
mcr.microsoft.com HTTPS:443 Necessário para acessar imagens no Microsoft Container Registry (MCR). Esse registro contém gráficos/imagens internos (por exemplo, coreDNS etc.). Essas imagens são necessárias para a criação e o funcionamento corretos do cluster, incluindo operações de escala e atualização.
*.data.mcr.microsoft.com HTTPS:443 Necessárias para o armazenamento do MCR apoiado pela Rede de Distribuição de Conteúdo (CDN) do Azure.
management.usgovcloudapi.net HTTPS:443 Necessárias para operações de Kubernetes na API do Azure.
login.microsoftonline.us HTTPS:443 Necessário para a autenticação do Microsoft Entra.
packages.microsoft.com HTTPS:443 Esse endereço é o repositório de pacotes da Microsoft usado para as operações app-get. Os pacotes de exemplo incluem Moby, PowerShell e CLI do Azure.
acs-mirror.azureedge.net HTTPS:443 Esse endereço é para o repositório necessário para instalar os binários necessários, como kubenet e CNI do Azure.

As seguintes regras de FQDN / aplicativo não são obrigatórias, mas são recomendadas para os clusters do AKS:

FQDN de destino Porta Use
security.ubuntu.com, azure.archive.ubuntu.com, changelogs.ubuntu.com HTTP:80 Esse endereço permite que os nós de cluster do Linux baixem as atualizações e os patches de segurança necessários.

Se você optar por bloquear/não permitir esses FQDNs, os nós receberão apenas atualizações do sistema operacional quando você fizer uma atualização de imagem do nó ou atualização de cluster. Tenha em mente que as atualizações de imagem do nó também vêm com pacotes atualizados, incluindo correções de segurança.

Os clusters do AKS habilitados para GPU requerem regras de FQDN / aplicativo

FQDN de destino Porta Use
nvidia.github.io HTTPS:443 Esse endereço é usado para a instalação e a operação corretas do driver nos nós baseados em GPU.
us.download.nvidia.com HTTPS:443 Esse endereço é usado para a instalação e a operação corretas do driver nos nós baseados em GPU.
download.docker.com HTTPS:443 Esse endereço é usado para a instalação e a operação corretas do driver nos nós baseados em GPU.

Os pools de nós baseados no Windows Server exigem regras de FQDN/aplicativo

FQDN de destino Porta Use
onegetcdn.azureedge.net, go.microsoft.com HTTPS:443 Para instalar binários relacionados ao Windows
*.mp.microsoft.com, www.msftconnecttest.com, ctldl.windowsupdate.com HTTP:80 Para instalar binários relacionados ao Windows

Se você optar por bloquear/não permitir esses FQDNs, os nós receberão apenas atualizações do sistema operacional quando você fizer uma atualização de imagem do nó ou atualização de cluster. Tenha em mente que as Atualizações de Imagem de Nó também vêm com pacotes atualizados, incluindo correções de segurança.

Complementos e integrações do AKS

Microsoft Defender para Contêineres

Regras de FQDN/aplicativo necessárias

FQDN Porta Use
login.microsoftonline.com
login.microsoftonline.us (Azure Governamental)
login.microsoftonline.cn (Azure operado pela 21Vianet)
HTTPS:443 Necessária para autenticação do Azure Active Directory.
*.ods.opinsights.azure.com
*.ods.opinsights.azure.us (Azure Governamental)
*.ods.opinsights.azure.cn (Azure operado pela 21Vianet)
HTTPS:443 Necessária para que o Microsoft Defender carregue eventos de segurança na nuvem.
*.oms.opinsights.azure.com
*.oms.opinsights.azure.us (Azure Governamental)
*.oms.opinsights.azure.cn (Azure operado pela 21Vianet)
HTTPS:443 Necessária para autenticar com workspaces do LogAnalytics.

Repositório de Segredos da CSI

Regras de FQDN/aplicativo necessárias

FQDN Porta Use
vault.azure.net HTTPS:443 Necessário para que os pods de suplemento do Repositório de Segredos da CSI conversem com o servidor do Azure Key Vault.

Azure Monitor para contêineres

Há duas opções para fornecer acesso ao Azure Monitor para contêineres:

  • Permitir ServiceTag do Azure Monitor.
  • Forneça acesso às regras de FQDN/aplicativo necessárias.

Regras de rede necessárias

Ponto de extremidade de destino Protocolo Porta Use
Marca de serviço - AzureMonitor:443 TCP 443 Este ponto de extremidade é usado para enviar logs e dados de métricas para o Azure Monitor e o Log Analytics.

Regras de FQDN/aplicativo necessárias

FQDN Porta Use
dc.services.visualstudio.com HTTPS:443 Este ponto de extremidade é usado para métricas e telemetria de monitoramento usando o Azure Monitor.
*.ods.opinsights.azure.com HTTPS:443 Este ponto de extremidade é usado pelo Azure Monitor para ingestão de dados de análise de logs.
*.oms.opinsights.azure.com HTTPS:443 Este ponto de extremidade é usado pelo omsagent, que é usado para autenticar o serviço de análise de logs.
*.monitoring.azure.com HTTPS:443 Este ponto de extremidade é usado para enviar dados de métricas ao Azure Monitor.
<cluster-region-name>.ingest.monitor.azure.com HTTPS:443 Esse ponto de extremidade é usado pelo serviço gerenciado do Azure Monitor para ingestão de métricas do Prometheus.
<cluster-region-name>.handler.control.monitor.azure.com HTTPS:443 Esse ponto de extremidade é usado para buscar regras de coleta de dados para um cluster específico.

Regras de FQDN/aplicativo necessárias para o Microsoft Azure operado pela 21Vianet

FQDN Porta Use
dc.services.visualstudio.com HTTPS:443 Este ponto de extremidade é usado para métricas e telemetria de monitoramento usando o Azure Monitor.
*.ods.opinsights.azure.cn HTTPS:443 Este ponto de extremidade é usado pelo Azure Monitor para ingestão de dados de análise de logs.
*.oms.opinsights.azure.cn HTTPS:443 Este ponto de extremidade é usado pelo omsagent, que é usado para autenticar o serviço de análise de logs.
global.handler.control.monitor.azure.cn HTTPS:443 Esse ponto de extremidade é usado pelo Azure Monitor para acessar o serviço de controle.
<cluster-region-name>.handler.control.monitor.azure.cn HTTPS:443 Esse ponto de extremidade é usado para buscar regras de coleta de dados para um cluster específico.

Regras de FQDN/aplicativo do Azure necessárias para o governo dos EUA

FQDN Porta Use
dc.services.visualstudio.com HTTPS:443 Este ponto de extremidade é usado para métricas e telemetria de monitoramento usando o Azure Monitor.
*.ods.opinsights.azure.us HTTPS:443 Este ponto de extremidade é usado pelo Azure Monitor para ingestão de dados de análise de logs.
*.oms.opinsights.azure.us HTTPS:443 Este ponto de extremidade é usado pelo omsagent, que é usado para autenticar o serviço de análise de logs.
global.handler.control.monitor.azure.us HTTPS:443 Esse ponto de extremidade é usado pelo Azure Monitor para acessar o serviço de controle.
<cluster-region-name>.handler.control.monitor.azure.us HTTPS:443 Esse ponto de extremidade é usado para buscar regras de coleta de dados para um cluster específico.

Azure Policy

Regras de FQDN/aplicativo necessárias

FQDN Porta Use
data.policy.core.windows.net HTTPS:443 Esse endereço é usado para extrair as políticas do Kubernetes e relatar o status de conformidade do cluster ao serviço de política.
store.policy.core.windows.net HTTPS:443 Esse endereço é usado para extrair os artefatos do Gatekeeper de políticas internas.
dc.services.visualstudio.com HTTPS:443 Complemento do Azure Policy que envia dados telemétricos para pontos de extremidade de insights de aplicativo.

Regras de FQDN/aplicativo necessárias para o Microsoft Azure operado pela 21Vianet

FQDN Porta Use
data.policy.azure.cn HTTPS:443 Esse endereço é usado para extrair as políticas do Kubernetes e relatar o status de conformidade do cluster ao serviço de política.
store.policy.azure.cn HTTPS:443 Esse endereço é usado para extrair os artefatos do Gatekeeper de políticas internas.

Regras de FQDN/aplicativo do Azure necessárias para o governo dos EUA

FQDN Porta Use
data.policy.azure.us HTTPS:443 Esse endereço é usado para extrair as políticas do Kubernetes e relatar o status de conformidade do cluster ao serviço de política.
store.policy.azure.us HTTPS:443 Esse endereço é usado para extrair os artefatos do Gatekeeper de políticas internas.

Extensões de cluster

Regras de FQDN/aplicativo necessárias

FQDN Porta Uso
<region>.dp.kubernetesconfiguration.azure.com HTTPS:443 Esse endereço é usado para buscar informações de configuração do serviço de Extensões de Cluster e relatar o status da extensão para o serviço.
mcr.microsoft.com, *.data.mcr.microsoft.com HTTPS:443 Esse endereço é necessário para obter imagens de contêiner para instalar agentes de extensão no cluster do AKS.
arcmktplaceprod.azurecr.io HTTPS:443 Este endereço é necessário para efetuar pull de imagens de contêiner para instalar extensões do marketplace no cluster do AKS.
arcmktplaceprod.centralindia.data.azurecr.io HTTPS:443 Este endereço é para o ponto de extremidade de dados regional da Índia Central e é necessário para efetuar pull de imagens de contêiner para instalar extensões do marketplace no cluster do AKS.
arcmktplaceprod.japaneast.data.azurecr.io HTTPS:443 Este endereço é para o ponto de extremidade de dados regional do Leste do Japão e é necessário para efetuar pull de imagens de contêiner para instalar extensões do marketplace no cluster do AKS.
arcmktplaceprod.westus2.data.azurecr.io HTTPS:443 Este endereço é para o ponto de extremidade de dados regional do Oeste dos EUA 2 e é necessário para efetuar pull de imagens de contêiner para instalar extensões do marketplace no cluster do AKS.
arcmktplaceprod.westeurope.data.azurecr.io HTTPS:443 Este endereço é para o ponto de extremidade de dados regional do Oeste da Europa e é necessário para efetuar pull de imagens de contêiner para instalar extensões do marketplace no cluster do AKS.
arcmktplaceprod.eastus.data.azurecr.io HTTPS:443 Este endereço é para o ponto de extremidade de dados regional do Leste dos EUA e é necessário para efetuar pull de imagens de contêiner para instalar extensões do marketplace no cluster do AKS.
*.ingestion.msftcloudes.com, *.microsoftmetrics.com HTTPS:443 Esse endereço é usado para enviar dados de métricas de agentes para o Azure.
marketplaceapi.microsoft.com HTTPS: 443 Esse endereço é utilizado para enviar o uso personalizado baseado em medidores para a API de medição do comércio.

Regras de FQDN/aplicativo do Azure necessárias para o governo dos EUA

FQDN Porta Use
<region>.dp.kubernetesconfiguration.azure.us HTTPS:443 Esse endereço é usado para buscar informações de configuração do serviço de Extensões de Cluster e relatar o status da extensão para o serviço.
mcr.microsoft.com, *.data.mcr.microsoft.com HTTPS:443 Esse endereço é necessário para obter imagens de contêiner para instalar agentes de extensão no cluster do AKS.

Observação

Para quaisquer complementos que não sejam explicitamente declarados aqui, os requisitos principais abrangem isso.

Próximas etapas

Neste artigo, você aprendeu quais portas e endereços permitir se quiser restringir o tráfego de saída para o cluster.

Se você quiser restringir como os pods se comunicam entre si e as restrições de tráfego Leste-Oeste dentro do cluster, consulte Proteger o tráfego entre pods usando as políticas de rede no AKS.