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

Este artigo fornece os detalhes necessários que permitem proteger o tráfego de saída do seu Serviço Kubernetes do Azure (AKS). Ele contém os requisitos de cluster para uma implantação base 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.

Fundo

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

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

As dependências de saída do AKS são quase inteiramente definidas com FQDNs, que não têm endereços estáticos por trás. 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 AKS.

Por padrão, os clusters AKS têm acesso irrestrito à Internet de saída. Esse nível de acesso à rede permite que nós e serviços executados acessem recursos externos conforme necessário. Se você deseja restringir o tráfego de saída, um número limitado de portas e endereços deve estar acessível para manter as tarefas de manutenção do cluster íntegras. A solução mais simples para proteger 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. O Firewall do Azure pode restringir o tráfego HTTP e HTTPS de saída com base no FQDN do destino. Você também pode configurar seu firewall preferido e regras de segurança para permitir essas portas e endereços necessários.

Importante

Este documento cobre apenas como bloquear o tráfego que sai da sub-rede AKS. O AKS não tem requisitos de entrada por padrão. Não há suporte para o bloqueio do tráfego interno de sub-rede usando NSGs (grupos de segurança de rede) e firewalls. 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 AKS

As seguintes regras de rede e FQDN/aplicativo são necessárias para um cluster 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).
  • Os pontos de extremidade FQDN HTTP/HTTPS podem ser colocados no seu dispositivo de firewall.
  • Os pontos de extremidade HTTP/HTTPS curinga são dependências que podem variar com seu cluster 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 sob kube-system e gatekeeper-system. Isso garante que toda a comunicação do sistema entre 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 do 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 para 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 é feita através 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 IPOU do servidor de API, se tiver um firewall de camada 7 configurado para permitir o tráfego para o nome de domínio do Servidor de API, definido kubernetes.azure.com/set-kube-service-host-fqdn nas especificações do seu pod.
  • Em raras ocasiões, se houver uma operação de manutenção, o IP do servidor de API pode mudar. As operações de manutenção planejadas que podem alterar o IP do servidor de API são sempre comunicadas com antecedência.
  • Em determinadas circunstâncias, pode acontecer que o tráfego para "md-*.blob.storage.azure.net" seja necessário. Esta dependência deve-se a alguns mecanismos internos dos Discos Geridos do Azure. Você também pode querer usar a tag de serviço de armazenamento.

Regras de rede necessárias do Azure Global

Ponto de extremidade de destino Protocolo Porta Utilizar
*:1194
Or
ServiceTag - AzureCloud.<Region>:1194
Or
CIDRs regionais - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Para comunicação segura em túnel entre os nós e o plano de controle. Isso não é necessário para clusters privados ou para clusters com o konnectivity-agent habilitado.
*:9000
Or
ServiceTag - AzureCloud.<Region>:9000
Or
CIDRs regionais - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Para comunicação segura em túnel entre os nós e o plano 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 NTP (Network Time Protocol) em nós Linux. Isso não é necessário para nós provisionados após março de 2021.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Se você estiver usando servidores DNS personalizados, deverá garantir que eles estejam acessíveis pelos nós do 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 usariam o IP da API. Esta porta não é necessária para clusters privados.

FQDN / regras de aplicativo necessárias do Azure Global

FQDN de destino Porta Utilizar
*.hcp.<location>.azmk8s.io HTTPS:443 Necessário para a comunicação do servidor Node <-> API. Substitua <o local> pela região onde o cluster AKS está implantado. Isso é necessário para clusters com konnectivity-agent habilitado. O Konnectivity também usa a negociação de protocolo de camada de aplicativo (ALPN) 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). Este registo contém imagens/gráficos primários (por exemplo, coreDNS, etc.). Essas imagens são necessárias para a criação e o funcionamento corretos do cluster, incluindo operações de dimensionamento e atualização.
*.data.mcr.microsoft.com HTTPS:443 Necessário para armazenamento MCR apoiado pela CDN (rede de entrega de conteúdo) do Azure.
management.azure.com HTTPS:443 Necessário para operações do Kubernetes na API do Azure.
login.microsoftonline.com HTTPS:443 Necessário para autenticação do Microsoft Entra.
packages.microsoft.com HTTPS:443 Este endereço é o repositório de pacotes da Microsoft usado para operações apt-get armazenadas em cache. 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 binários necessários, como kubenet e Azure CNI.

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

Ponto de extremidade de destino Protocolo Porta Utilizar
*:1194
Or
ServiceTag - AzureCloud.Region:1194
Or
CIDRs regionais - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Para comunicação segura em túnel entre os nós e o plano de controle.
*:9000
Or
ServiceTag - AzureCloud.<Region>:9000
Or
CIDRs regionais - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Para comunicação segura em túnel entre os nós e o plano de controle.
*:22
Or
ServiceTag - AzureCloud.<Region>:22
Or
CIDRs regionais - RegionCIDRs:22
Or
APIServerPublicIP:22 (only known after cluster creation)
TCP 22 Para comunicação segura em túnel entre os nós e o plano 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 NTP (Network Time Protocol) em nós Linux.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Se você estiver usando servidores DNS personalizados, deverá garantir que eles estejam acessíveis pelos nós do 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 usariam o IP da API.

Microsoft Azure operado pela 21Vianet necessário FQDN / regras de aplicativo

FQDN de destino Porta Utilizar
*.hcp.<location>.cx.prod.service.azk8s.cn HTTPS:443 Necessário para a comunicação do servidor Node <-> API. Substitua <o local> pela região onde o cluster AKS está implantado.
*.tun.<location>.cx.prod.service.azk8s.cn HTTPS:443 Necessário para a comunicação do servidor Node <-> API. Substitua <o local> pela região onde o cluster AKS está implantado.
mcr.microsoft.com HTTPS:443 Necessário para acessar imagens no Microsoft Container Registry (MCR). Este registo contém imagens/gráficos primários (por exemplo, coreDNS, etc.). Essas imagens são necessárias para a criação e o funcionamento corretos do cluster, incluindo operações de dimensionamento e atualização.
.data.mcr.microsoft.com HTTPS:443 Necessário para armazenamento MCR apoiado pela CDN (Rede de Entrega de Conteúdo) do Azure.
management.chinacloudapi.cn HTTPS:443 Necessário para operações do Kubernetes na API do Azure.
login.chinacloudapi.cn HTTPS:443 Necessário para autenticação do Microsoft Entra.
packages.microsoft.com HTTPS:443 Este endereço é o repositório de pacotes da Microsoft usado para operações apt-get armazenadas em cache. 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 binários necessários, como kubenet e Azure CNI.

Regras de rede exigidas pelo Azure US Government

Ponto de extremidade de destino Protocolo Porta Utilizar
*:1194
Or
ServiceTag - AzureCloud.<Region>:1194
Or
CIDRs regionais - RegionCIDRs:1194
Or
APIServerPublicIP:1194 (only known after cluster creation)
UDP 1194 Para comunicação segura em túnel entre os nós e o plano de controle.
*:9000
Or
ServiceTag - AzureCloud.<Region>:9000
Or
CIDRs regionais - RegionCIDRs:9000
Or
APIServerPublicIP:9000 (only known after cluster creation)
TCP 9000 Para comunicação segura em túnel entre os nós e o plano 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 NTP (Network Time Protocol) em nós Linux.
CustomDNSIP:53 (if using custom DNS servers) UDP 53 Se você estiver usando servidores DNS personalizados, deverá garantir que eles estejam acessíveis pelos nós do 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 usariam o IP da API.

O Azure US Government exigiu FQDN / regras de aplicativo

FQDN de destino Porta Utilizar
*.hcp.<location>.cx.aks.containerservice.azure.us HTTPS:443 Necessário para a comunicação do servidor Node <-> API. Substitua <o local> pela região onde o cluster AKS está implantado.
mcr.microsoft.com HTTPS:443 Necessário para acessar imagens no Microsoft Container Registry (MCR). Este registo contém imagens/gráficos primários (por exemplo, coreDNS, etc.). Essas imagens são necessárias para a criação e o funcionamento corretos do cluster, incluindo operações de dimensionamento e atualização.
*.data.mcr.microsoft.com HTTPS:443 Necessário para armazenamento MCR apoiado pela CDN (rede de entrega de conteúdo) do Azure.
management.usgovcloudapi.net HTTPS:443 Necessário para operações do Kubernetes na API do Azure.
login.microsoftonline.us HTTPS:443 Necessário para autenticação do Microsoft Entra.
packages.microsoft.com HTTPS:443 Este endereço é o repositório de pacotes da Microsoft usado para operações apt-get armazenadas em cache. 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 binários necessários, como kubenet e Azure CNI.

As seguintes regras de FQDN/aplicativo não são necessárias, mas são recomendadas para clusters AKS:

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

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

Clusters AKS habilitados para GPU exigiam FQDN / regras de aplicativo

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

Pools de nós baseados no Windows Server FQDN necessários / regras de aplicativo

FQDN de destino Porta Utilizar
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 só receberão atualizações do sistema operacional quando você fizer uma atualização de imagem de nó ou atualização de cluster. Lembre-se de que as Atualizações de Imagem de Nó também vêm com pacotes atualizados, incluindo correções de segurança.

Addons e integrações AKS

Microsoft Defender para Contentores

FQDN / regras de aplicação necessárias

FQDN Porta Utilizar
login.microsoftonline.com
login.microsoftonline.us (Azure Government)
login.microsoftonline.cn (Azure operado pela 21Vianet)
HTTPS:443 Necessário para a Autenticação do Ative Directory.
*.ods.opinsights.azure.com
*.ods.opinsights.azure.us (Azure Government)
*.ods.opinsights.azure.cn (Azure operado pela 21Vianet)
HTTPS:443 Necessário para o Microsoft Defender carregar eventos de segurança para a nuvem.
*.oms.opinsights.azure.com
*.oms.opinsights.azure.us (Azure Government)
*.oms.opinsights.azure.cn (Azure operado pela 21Vianet)
HTTPS:443 Necessário para autenticar com espaços de trabalho do LogAnalytics.

Loja Secreta CSI

FQDN / regras de aplicação necessárias

FQDN Porta Utilizar
vault.azure.net HTTPS:443 Necessário para que os pods de complemento do CSI Secret Store conversem com o servidor do Azure KeyVault.

Azure Monitor para contentores

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

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

Regras de rede necessárias

Ponto de extremidade de destino Protocolo Porta Utilizar
ServiceTag - AzureMonitor:443 TCP 443 Esse ponto de extremidade é usado para enviar dados e logs de métricas para o Azure Monitor e o Log Analytics.

FQDN / regras de aplicação necessárias

FQDN Porta Utilizar
dc.services.visualstudio.com HTTPS:443 Esse ponto de extremidade é usado para métricas e telemetria de monitoramento usando o Azure Monitor.
*.ods.opinsights.azure.com HTTPS:443 Esse ponto de extremidade é usado pelo Azure Monitor para ingerir dados de análise de log.
*.oms.opinsights.azure.com HTTPS:443 Esse ponto de extremidade é usado pelo omsagent, que é usado para autenticar o serviço de análise de log.
*.monitoring.azure.com HTTPS:443 Esse ponto de extremidade é usado para enviar dados de métricas para o 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 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.

Microsoft Azure operado pela 21Vianet necessário FQDN / regras de aplicativo

FQDN Porta Utilizar
dc.services.visualstudio.com HTTPS:443 Esse ponto de extremidade é usado para métricas e telemetria de monitoramento usando o Azure Monitor.
*.ods.opinsights.azure.cn HTTPS:443 Esse ponto de extremidade é usado pelo Azure Monitor para ingerir dados de análise de log.
*.oms.opinsights.azure.cn HTTPS:443 Esse ponto de extremidade é usado pelo omsagent, que é usado para autenticar o serviço de análise de log.
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.

O Azure US Government exigiu FQDN / regras de aplicativo

FQDN Porta Utilizar
dc.services.visualstudio.com HTTPS:443 Esse ponto de extremidade é usado para métricas e telemetria de monitoramento usando o Azure Monitor.
*.ods.opinsights.azure.us HTTPS:443 Esse ponto de extremidade é usado pelo Azure Monitor para ingerir dados de análise de log.
*.oms.opinsights.azure.us HTTPS:443 Esse ponto de extremidade é usado pelo omsagent, que é usado para autenticar o serviço de análise de log.
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

FQDN / regras de aplicação necessárias

FQDN Porta Utilizar
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 para o serviço de políticas.
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 de Política do Azure que envia dados de telemetria para o ponto de extremidade do insights de aplicativos.

Microsoft Azure operado pela 21Vianet necessário FQDN / regras de aplicativo

FQDN Porta Utilizar
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 para o serviço de políticas.
store.policy.azure.cn HTTPS:443 Esse endereço é usado para extrair os artefatos do Gatekeeper de políticas internas.

O Azure US Government exigiu FQDN / regras de aplicativo

FQDN Porta Utilizar
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 para o serviço de políticas.
store.policy.azure.us HTTPS:443 Esse endereço é usado para extrair os artefatos do Gatekeeper de políticas internas.

Extensões de cluster

FQDN / regras de aplicação necessárias

FQDN Porto Utilizar
<region>.dp.kubernetesconfiguration.azure.com HTTPS:443 Esse endereço é usado para buscar informações de configuração do serviço 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 extrair imagens de contêiner para instalar agentes de extensão de cluster no cluster AKS.
arcmktplaceprod.azurecr.io HTTPS:443 Este endereço é necessário para extrair imagens de contêiner para instalar extensões de mercado no cluster 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 extrair imagens de contêiner para instalar extensões de mercado no cluster 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 extrair imagens de contêiner para instalar extensões de mercado no cluster AKS.
arcmktplaceprod.westus2.data.azurecr.io HTTPS:443 Este endereço é para o ponto de extremidade de dados regional West US2 e é necessário para extrair imagens de contêiner para instalar extensões de mercado no cluster AKS.
arcmktplaceprod.westeurope.data.azurecr.io HTTPS:443 Este endereço é para o ponto de extremidade de dados regional da Europa Ocidental e é necessário para extrair imagens de contêiner para instalar extensões de mercado no cluster 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 extrair imagens de contêiner para instalar extensões de mercado no cluster 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 é usado para enviar o uso personalizado baseado em medidor para a API de medição de comércio.

O Azure US Government exigiu FQDN / regras de aplicativo

FQDN Porta Utilizar
<region>.dp.kubernetesconfiguration.azure.us HTTPS:443 Esse endereço é usado para buscar informações de configuração do serviço 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 extrair imagens de contêiner para instalar agentes de extensão de cluster no cluster AKS.

Nota

Para quaisquer addons que não estejam explicitamente declarados aqui, os requisitos principais cobrem-no.

Próximos passos

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 a forma 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 políticas de rede no AKS.