Compartilhar via


Clusters isolados de rede do AKS (Serviço de Kubernetes do Azure)

As organizações geralmente têm requisitos de segurança e conformidade rigorosos para regular o tráfego de rede de saída de um cluster para eliminar riscos de exfiltração de dados. Por padrão, os clusters padrão do AKS (Serviço de Kubernetes do Azure) do SKU 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 precisam estar acessíveis para manter saudáveis as tarefas de manutenção do cluster. O documento conceitual sobre a rede de saída e as regras de FQDN (nome de domínio totalmente qualificado) para clusters do AKS fornece uma lista de pontos de extremidade necessários para o cluster do AKS e seus complementos e recursos opcionais.

Uma solução comum para restringir o tráfego de saída do cluster é usar um dispositivo de firewall para restringir o tráfego com base em regras de firewall. O firewall é aplicável quando seu aplicativo requer acesso de saída, mas quando as solicitações de saída precisam ser inspecionadas e protegidas. Configurar manualmente um firewall com as regras de saída necessárias e FQDNs é um processo complicado, especialmente se o único requisito for criar um cluster de AKS isolado, sem dependências de saída para a inicialização do cluster.

Para reduzir o risco de exfiltração de dados, o cluster isolado de rede permite inicializar o cluster do AKS sem nenhuma dependência de rede de saída, mesmo para buscar componentes/imagens de cluster do Registro de Artefatos da Microsoft (MAR). O operador de cluster pode configurar incrementalmente o tráfego de saída permitido para cada cenário que deseja habilitar.

Como funciona um cluster isolado de rede

O diagrama a seguir mostra a comunicação de rede entre dependências de um cluster isolado de rede.

Diagrama de tráfego do cluster isolado de rede do AKS.

Os clusters do AKS buscam artefatos necessários para o cluster e seus recursos ou complementos do Registro de Artefatos da Microsoft (MAR). Essa extração de imagem permite que o AKS forneça versões mais recentes dos componentes do cluster e também resolva vulnerabilidades críticas de segurança. Um cluster isolado de rede tenta baixar essas imagens e binários de uma instância privada do Registro de Contêiner do Azure, conectada ao cluster, em vez de fazer o download do MAR. Se as imagens não estiverem presentes, o ACR privado as extrairá do MAR e as servirá por meio de seu ponto de extremidade privado, eliminando a necessidade de ativar a saída do cluster para o ponto de extremidade público do MAR.

As duas opções a seguir têm suporte para um ACR privado associado a clusters isolados de rede:

  • ACR gerenciado pelo AKS - O AKS cria, gerencia e reconcilia um recurso ACR nessa opção. Não há nada que você precise fazer.

    Observação

    O recurso ACR gerenciado pelo AKS é criado em sua assinatura. Se você excluir o cluster com o ACR gerenciado pelo AKS para a origem do artefato de inicialização. Recursos relacionados, como o ACR gerenciado pelo AKS, o link privado e o ponto de extremidade privado, também são excluídos automaticamente. Se você alterar o tipo de saída em um cluster para qualquer tipo diferente de none ou block com --bootstrap-artifact-source retido como Cache. Em seguida, os recursos relacionados não são excluídos.

  • Traga seu próprio ACR (BYO) - A opção BYO ACR requer a criação de um ACR com um link privado entre o recurso ACR e o cluster do AKS. Confira Conectar-se de forma privada a um registro de contêiner do Azure usando o Link Privado do Azure para entender como configurar um ponto de extremidade privado para seu registro. Você também precisa atribuir permissões e gerenciar as regras de cache, o link privado e o ponto de extremidade privado usados no cluster.

    Observação

    Quando você exclui o cluster do AKS ou depois de desabilitar o recurso. O ACR BYO, o link privado e o ponto de extremidade privado não são excluídos automaticamente. Se você adicionar imagens personalizadas e regras de cache ao BYO ACR, elas persistirão após a reconciliação do cluster.

Para criar um cluster isolado de rede, primeiro você precisa garantir que o tráfego de rede entre o servidor de API e os pools de nós permaneça apenas na rede privada, você pode escolher um dos seguintes modos de cluster privado:

  • Cluster do AKS baseado em link privado - o plano de controle ou servidor de API está em um grupo de recursos do Azure gerenciado pelo AKS, e seu pool de nós está no seu grupo de recursos. O servidor e o pool de nós podem se comunicar entre si por meio do serviço de Link Privado do Azure na rede virtual do servidor de API e um ponto de extremidade privado que é exposto na sub-rede do seu cluster do AKS.
  • Cluster configurado para Integração VNet do Servidor de API – um cluster configurado com Integração VNet do Servidor de API projeta o endpoint do servidor de API diretamente em uma sub-rede delegada na rede virtual onde o AKS está implantado. A Integração de VNet do Servidor de API permite a comunicação de rede entre o servidor de API e os nós de cluster, sem a necessidade de um túnel ou um link privado.

Você também precisa garantir que o caminho de saída para o cluster do AKS seja controlado e limitado, você pode escolher um dos seguintes tipos de saída de rede:

  • Tipo de saída de none - Se none estiver definido. O AKS não configura automaticamente caminhos de saída e uma rota padrão não é necessária. O tipo de saída tem suporte em cenários de rede virtual BYO (traga seu próprio) e cenários de rede virtual gerenciada. Para trazer seu próprio cenário de rede virtual, você deve estabelecer caminhos de saída explícitos, se necessário.
  • O tipo de saída de block -Ifblock (versão prévia) está definido. O AKS configura regras de rede para bloquear ativamente todo o tráfego de saída do cluster. Esta opção é útil para ambientes altamente seguros em que a conectividade de saída deve ser restrita. Ele tem suporte no cenário de rede virtual gerenciada. Você também pode obter efeito semelhante bloqueando todo o tráfego de saída adicionando regras de grupo de segurança de rede (NSG) com none em um cenário de rede virtual bring-your-own.

Observação

O tipo de saída none geralmente está disponível. O tipo de saída block está em versão prévia.

Importante

As versões prévias de recursos do AKS estão disponíveis em uma base de autoatendimento e aceitação. As versões prévias são fornecidas "como estão" e "conforme disponíveis" e são excluídas dos contratos de nível de serviço e da garantia limitada. As versões prévias do AKS são parcialmente cobertas pelo suporte ao cliente em uma base de melhor esforço. Dessa forma, esses recursos não são destinados ao uso em produção. Para obter mais informações, consulte os seguintes artigos:

Limitações

  • Unmanaged não há suporte para o canal.
  • Ainda não há suporte para pools de nós do Windows.
  • Não há suporte para a rede kubenet.

Cuidado

Se você estiver usando o IP Público do Nó em clusters do AKS isolados de rede, ele permitirá o tráfego de saída com o tipo none de saída.

Usando recursos, complementos e extensões que exigem saída

Para clusters isolados de rede com BYO ACR:

Perguntas frequentes

Qual é a diferença entre o cluster isolado de rede e o Firewall do Azure?

Um cluster isolado de rede não requer nenhum tráfego de saída além da VNet durante todo o processo de inicialização do cluster. Um cluster isolado de rede terá o tipo de saída como none ou block. Se o tipo de saída estiver definido como none, o AKS não configurará nenhuma conexão de saída para o cluster, permitindo que o usuário as configure por conta própria. Se o tipo de saída estiver definido como block, todas as conexões de saída serão bloqueadas.

Normalmente, um firewall forma uma barreira entre uma rede confiável e uma rede não confiável, como a Internet. O Firewall do Azure, por exemplo, pode restringir o tráfego HTTP e HTTPS de saída com base no destino. Ele fornece controle refinado do tráfego de saída, mas ao mesmo tempo permite que você forneça acesso aos FQDNs que abrangem as dependências de saída de um cluster do AKS. Isso é algo que os NSGs não podem fazer. Por exemplo, você pode definir o tipo de saída do cluster para userDefinedRouting para forçar o tráfego de saída através do firewall e, em seguida, configurar restrições de FQDN no tráfego de saída. Há muitos casos em que você ainda deseja um firewall. Como você tem tráfego de saída de qualquer maneira do seu aplicativo ou deseja controlar, inspecionar e proteger o tráfego de cluster, tanto a saída quanto a entrada.

Em resumo, enquanto o Firewall do Azure pode ser usado para definir restrições de saída em clusters com solicitações de saída, os clusters isolados de rede vão além na postura segura por padrão, eliminando ou bloqueando as solicitações de saída por completo.

Preciso configurar algum endpoint na lista de permissões para o cluster isolado de rede funcionar?

As etapas de criação e inicialização do cluster não requerem nenhum tráfego de saída do cluster isolado de rede. As imagens necessárias para os componentes e complementos do AKS são extraídas do ACR privado conectado ao cluster, em vez de serem extraídas do Registro de Artefato da Microsoft (MAR) por meio de pontos de extremidade públicos.

Depois de configurar um cluster isolado de rede. Se você quiser habilitar recursos ou complementos que precisam fazer solicitações de saída para seus pontos de extremidade de serviço, você pode configurar pontos de extremidade privados para os serviços alimentados pelo Link Privado do Azure.

Posso atualizar pacotes manualmente para atualizar a imagem do pool de nodes?

Não é recomendável atualizar manualmente pacotes com base na saída para repositórios de pacotes. Em vez disso, você pode atualizar manualmente ou atualizar automaticamente as imagens do sistema operacional do nó. Atualmente, apenas os canais de atualização NodeImage e None têm suporte para clusters isolados de rede.

E se eu alterar o tipo de saída para algo diferente de none ou block, isso ainda formará um cluster isolado de rede?

Os únicos tipos de saída com suporte para um cluster isolado de rede são none e block. Se você usar qualquer outro tipo de saída, o cluster ainda poderá efetuar pull de artefatos do ACR privado associado, no entanto, isso pode gerar tráfego de saída.

Próximas etapas