Proteja a implementação do Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) fornece um ambiente Kubernetes gerido para implementar e operar aplicações containerizadas. A Microsoft gere o plano de controlo do Kubernetes, enquanto tu és responsável por proteger as cargas de trabalho, configuração dos nós, rede, identidade e dados nos teus clusters. Quando implementa AKS, é importante seguir as melhores práticas de segurança para proteger esta superfície partilhada ao longo do ciclo de vida do cluster.

Este artigo fornece recomendações de segurança para ajudar a proteger a sua implementação do AKS. Muitos destes controlos estão pré-configurados no AKS Automatic, que inicia clusters a partir de uma base reforçada, e estão disponíveis para ativar e gerir no AKS Standard. Para os conceitos por detrás destes controlos, incluindo como a segurança do AKS funciona ao longo do pipeline build-to-runtime, veja Conceitos de Segurança para aplicações e clusters no AKS.

As recomendações de segurança neste artigo implementam os princípios do Confiança Zero: "Verificar explicitamente", "Usar acesso com privilégios mínimos" e "Assumir violação". Para obter orientações abrangentes sobre Confiança Zero, consulte o Centro de Orientação Confiança Zero.

Segurança específica do serviço

O AKS combina primitivas de segurança Kubernetes com controlos de plataforma Azure. As recomendações seguintes abordam questões relacionadas com o reforço da segurança específicas da execução de um cluster Kubernetes gerido, incluindo a integridade dos nós, a proveniência das imagens e o isolamento das cargas de trabalho.

Endurecimento de clusters e nodos

  • Mantenha clusters numa versão Kubernetes suportada com atualizações automáticas de cluster: Inscreva clusters num canal de atualização automática para que o plano de controlo e os pools de nós recebam patches Kubernetes que corrigem vulnerabilidades conhecidas sem intervenção manual. Para mais informações, consulte Atualizar automaticamente um cluster AKS.
  • Aplicar automaticamente as atualizações de segurança do sistema operativo do nó: Configurar o canal de atualização automática do sistema operativo do nó para que os nós recebam as atualizações de segurança do sistema operativo Linux e Windows numa cadência definida. Para mais informações, consulte Atualizar automaticamente imagens do sistema operativo dos nós do cluster AKS.
  • Impor as normas de admissão de segurança de Pods: Aplique as normas de base ou restritas de segurança de Pods ao nível do namespace para impedir pods privilegiados, a partilha do namespace do anfitrião e montagens de volumes inseguras. Para mais informações, consulte Proteger os seus pods no AKS.
  • Implementar pools de nós com FIPS para cargas de trabalho reguladas: Permitir pools de nós com FIPS, que utilizam módulos criptográficos validados pelo FIPS 140-3, quando as cargas de trabalho devem cumprir requisitos como a conformidade com o FedRAMP. Para mais informações, consulte Ativar a Norma Federal de Processamento de Informação (FIPS) nos conjuntos de nós do AKS.
  • Não execute cargas de trabalho hostis multitenant num cluster partilhado: Um cluster Kubernetes padrão não é uma fronteira de segurança rígida entre inquilinos não confiáveis, porque o domínio de segurança é o cluster inteiro e não um nó individual. Para cargas de trabalho que exijam isolamento rigoroso, utilize clusters fisicamente isolados, tamanhos de nó de VM isolados ou isolamento de pods em sandbox. Para mais informações, consulte Melhores práticas para isolamento de clusters no AKS.

Imagem de contentores e segurança da cadeia de abastecimento

  • Restringa as implementações a registos de contentores confiáveis: Use o add-on Azure Policy para garantir que os pods só possam puxar imagens de registos aprovados, como o seu Azure Container Registry privado, para que imagens públicas não confiáveis não possam correr no cluster. Para mais informações, consulte Proteja os seus clusters AKS com Azure Policy.
  • Remover imagens vulneráveis não utilizadas com o Image Cleaner: Ative o Image Cleaner para remover automaticamente imagens obsoletas dos nós e reduzir a superfície de ataque deixada por imagens vulneráveis. Para mais informações, consulte Usar Limpador de Imagens para limpar imagens vulneráveis no AKS.
  • Digitalizar registos e executar cargas de trabalho com Microsoft Defender for Containers: Detetar imagens vulneráveis e configurações incorretas no seu registo e clusters antes e depois da implementação. Para mais informações, consulte Visão Geral do Microsoft Defender para Containers.

Segurança de rede

Por predefinição, o servidor da API do AKS está acessível por um ponto final público, e o tráfego de saída do cluster não tem restrições. Restringir tanto o acesso de entrada ao plano de controlo como o tráfego de saída das cargas de trabalho é uma das alterações mais eficazes que pode fazer para reduzir a superfície de ataque de rede do seu cluster.

  • Implemente um cluster privado para remover o endpoint do servidor API público: Crie um cluster privado para que o servidor API Kubernetes só seja acessível a partir da sua rede virtual através de um endpoint privado. Para mais informações, consulte Criar um cluster privado do Azure Kubernetes Service (AKS).
  • Integre o servidor API com a sua rede virtual: Use a integração da rede virtual do servidor API para que o tráfego do plano de controlo permaneça numa sub-rede privada sem necessidade de componentes de tunelamento. Para obter mais informações, consulte Criar um cluster AKS com integração de rede virtual do servidor API.
  • Impor políticas de rede para controlar o tráfego entre pods: Aplique políticas de rede do Kubernetes para restringir o tráfego este-oeste entre pods apenas ao necessário para as suas cargas de trabalho. Para obter mais informações, consulte Proteger o tráfego entre pods usando políticas de rede no AKS.
  • Restringir o tráfego de saída do cluster: Defina um tipo de saída definido pelo utilizador e roteie a saída através do Azure Firewall para filtrar e inspecionar os destinos que as suas cargas de trabalho podem alcançar. Para obter mais informações, consulte Controlar o tráfego de saída dos nós do cluster no AKS.
  • Filtrar o tráfego de saída por nome de domínio totalmente qualificado: Use filtragem baseada em FQDN nos Advanced Container Networking Services para permitir a saída apenas para domínios aprovados. Para mais informações, consulte filtragem FQDN para Serviços Avançados de Rede de Contentores.

Gestão de identidade e acesso

O AKS autentica as identidades de clusters e cargas de trabalho através do Microsoft Entra ID e autoriza o acesso através do Azure RBAC e Kubernetes RBAC. Use identidades geridas e autorização apoiada pelo Entra em vez de credenciais estáticas ou contas Kubernetes autónomas.

  • Utilize uma identidade gerida para o cluster: Configure o cluster para utilizar uma identidade gerida para que o AKS possa aceder aos recursos do Azure sem credenciais estáticas da entidade de serviço que tenha de alternar. Para mais informações, consulte Use a managed identity in Azure Kubernetes Service (AKS).
  • Utilize a identidade de carga de trabalho para o acesso dos pods a recursos do Azure: Federa contas de serviço do Kubernetes com identidades de carga de trabalho do Microsoft Entra para que os pods obtenham tokens para recursos do Azure sem armazenar segredos. Para mais informações, consulte Use ID de carga de trabalho Microsoft Entra com AKS.
  • Integrar autenticação em cluster com o Microsoft Entra ID: Permitir a integração com o Microsoft Entra para que utilizadores e grupos se autentiquem no cluster com as suas identidades Entra em vez de certificados partilhados. Para obter mais informações, consulte Integração do Microsoft Entra gerenciada pelo AKS.
  • Autorize o acesso à API do Kubernetes com o Azure RBAC: Utilize o Azure RBAC para a autorização do Kubernetes e atribua as funções incorporadas do AKS (Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin e Azure Kubernetes Service RBAC Cluster Admin) ao nível do cluster ou do namespace para conceder acesso com o menor nível de privilégios. Para mais informações, consulte Conceitos de autorização de cluster.
  • Desative as contas Kubernetes locais: Desligue as contas locais para que todo o acesso ao cluster passe pelo Microsoft Entra ID e não possa contornar a autorização apoiada pelo Entra com a credencial estática de administrador do cluster. Para mais informações, consulte Gerir contas locais com integração Microsoft Entra gerida pelo AKS.
  • Aplicar o Acesso Condicional para administradores de clusters: Aplicar políticas de Acesso Condicional que exijam autenticação multifator e dispositivos compatíveis para as identidades Entra que possam criar, atualizar ou eliminar clusters AKS e gerir os seus pools de nós, redes e atribuições de funções. Para mais informações, consulte Exigir MFA para gestão do Azure.

Proteção de dados

O AKS encripta, por defeito, os dados armazenados em discos geridos. Configure os seguintes controlos para proteger os segredos do Kubernetes e para trazer as suas próprias chaves onde os requisitos de conformidade o exigirem.

  • Encripte segredos Kubernetes em etcd com um serviço de gestão de chaves: Ative a encriptação de dados KMS para que os objetos secretos Kubernetes sejam encriptados na camada de aplicação antes de serem escritos no etcd, usando chaves geridas pela plataforma ou as suas próprias chaves geridas pelo cliente no Azure Key Vault. Para mais informações, consulte conceitos de encriptação de dados em repouso para AKS.
  • Armazene segredos de aplicação no Azure Key Vault: Use o fornecedor Azure Key Vault para o Secrets Store CSI Driver para montar segredos, chaves e certificados do Key Vault em vez de os armazenar como segredos Kubernetes em texto simples. Para mais informações, consulte Utilizar o fornecedor do Azure Key Vault para o Secrets Store CSI Driver no AKS.
  • Use chaves geridas pelo cliente para discos de nós e dados: Encripte o sistema operativo e os discos de dados com as suas próprias chaves no Key Vault quando precisar de controlo sobre o ciclo de vida da chave de encriptação. Para mais informações, consulte Traga as suas próprias chaves (BYOK) com discos Azure no AKS.
  • Ativar a encriptação baseada no host: Ativar a encriptação baseada no host para que os discos temporários e as caches do SO/dados na VM do nó fiquem encriptados em repouso no host. Para mais informações, veja Encriptação baseada em host no AKS.

Registo e monitorização

Recolhe telemetria de clusters, planos de controlo e carga de trabalho para poderes detetar e investigar ameaças contra os teus clusters AKS.

  • Monitorize os clusters com o Container insights: Ative o Container insights para recolher métricas e registos dos nós e contentores dos seus clusters num espaço de trabalho do Log Analytics. Para mais informações, consulte Monitor Azure Kubernetes Service (AKS).
  • Recolha registos de auditoria do plano de controlo com definições de diagnóstico: Configure as definições de diagnóstico para enviar as categorias de registos do servidor API Kubernetes e de auditoria (kube-audit, kube-audit-admin, e guard) para o Log Analytics para investigação de segurança. Para mais informações, consulte Referência de dados de monitorização do AKS.
  • Ative a deteção de ameaças com o Microsoft Defender for Containers: Ative o Defender for Containers para receber alertas de deteção de ameaças em tempo de execução para nós de cluster, cargas de trabalho e o plano de controlo Kubernetes. Para mais informações, consulte Visão Geral do Microsoft Defender para Containers.

Conformidade e governança

Use o Azure Policy para impor configurações de segurança de forma consistente em todos os seus clusters AKS e para evitar que cargas de trabalho não compatíveis sejam implementadas.

  • Impor a configuração do cluster e da carga de trabalho com o Azure Policy for AKS: Ative o add-on Azure Policy e atribua a iniciativa de política incorporada do AKS para auditar e aplicar controlos como registos aprovados, limites de recursos e contentores privilegiados bloqueados. Para mais informações, consulte Proteja os seus clusters AKS com Azure Policy.
  • Aplicar salvaguardas de implantação para as melhores práticas do Kubernetes: Ative as salvaguardas de implantação para validar os recursos do cluster de acordo com as melhores práticas do AKS, no modo de aviso ou de imposição. Para mais informações, consulte Utilizar salvaguardas de implantação para fazer cumprir as melhores práticas no AKS.
  • Atribuir definições de políticas incorporadas ao AKS para impor controlos específicos: Atribuir definições incorporadas do Azure Policy para o AKS para impor controlos individuais, como exigir intervalos de IP autorizados ou clusters privados, desativar containers privilegiados e aplicar balanceadores de carga internos. Para mais informações, consulte as definições incorporadas do Azure Policy para AKS.

Backup e recuperação

Proteja o estado do cluster e os dados da aplicação para que possa recuperar de eliminação acidental, corrupção ou atualização falhada.

  • Efetue cópias de segurança do estado do cluster e dos volumes persistentes com a Cópia de Segurança do AKS: Utilize a Cópia de Segurança do AKS com um cofre de cópias de segurança para agendar cópias de segurança dos recursos do cluster e dos volumes persistentes suportados pelo Azure Disk e pelo Ficheiros do Azure (SMB), e para restaurar um espaço de nomes ou um cluster inteiro. Para mais informações, consulte O que é a cópia de segurança do Azure Kubernetes Service (AKS)?.
  • Conceder acesso de backup com Acesso Confiável em vez de permissões amplas: Ativar o Acesso Confiável para que o cofre de Backup chegue ao cluster com permissões definidas, em vez de exigir acesso administrativo permanente. Para mais informações, consulte Permitir que os recursos do Azure acedam a clusters AKS usando o Acesso Confiável.

Passos seguintes