Segurança

Nesta página, descrevemos os recursos de segurança incluídos nos clusters do Anthos no VMware (GKE no local), incluindo cada camada da infraestrutura, e como você pode configurá-los para atender às suas necessidades.

Visão geral

Os clusters do Anthos no VMware oferecem vários recursos para ajudar a proteger as cargas de trabalho, incluindo o conteúdo da imagem do contêiner, o ambiente de execução do contêiner, a rede do cluster e o acesso ao servidor da API do cluster.

É melhor adotar uma abordagem em camadas para proteger clusters e cargas de trabalho. É possível aplicar o princípio do menor privilégio (em inglês) ao nível de acesso fornecido aos usuários e cargas de trabalho. Talvez seja necessário fazer concessões para permitir o nível certo de flexibilidade e segurança.

Autenticação e autorização

Você se autentica em clusters do Anthos em clusters do VMware usando o OpenID Connect (OIDC) ou um token da conta de serviço do Kubernetes por meio do Console do Cloud.

Para configurar um acesso mais granular aos recursos do Kubernetes no nível do cluster ou nos namespaces do Kubernetes, use o controle de acesso baseado em papéis (RBAC, na sigla em inglês) do Kubernetes. O RBAC permite criar políticas detalhadas que definem quais operações e recursos você quer permitir que usuários e contas de serviço acessem. Com o RBAC, é possível controlar o acesso de qualquer identidade validada fornecida.

Para simplificar e agilizar ainda mais sua estratégia de autenticação e autorização do Kubernetes Engine, os clusters do Anthos no VMware desativam o controle de acesso baseado em atributos (ABAC, na sigla em inglês) legado.

Segurança do plano de controle

Os componentes do plano de controle incluem o programador, os controladores e o servidor da API Kubernetes, além do banco de dados etcd (em inglês) em que a configuração do Kubernetes é mantida. Assim como no Kubernetes Engine, os componentes do plano de controle do Kubernetes são gerenciados e mantidos pelo Google, os administradores locais gerenciam os componentes do plano de controle nos clusters do Anthos no VMware.

Nos clusters do Anthos no VMware, os componentes do plano de controle são executados na rede corporativa. É possível proteger clusters do Anthos no servidor de API da VMware usando as políticas e os firewalls atuais da sua rede corporativa. Também é possível atribuir um endereço IP particular ao servidor da API e limitar o acesso ao endereço particular.

Toda a comunicação nos clusters do Anthos no VMware é feita por canais TLS, que são regidos por três autoridades de certificação (CAs): etcd, cluster e organização:

  • A CA etcd protege a comunicação do servidor da API com as réplicas do etcd e também o tráfego entre as réplicas do etcd. Essa CA é autoassinada.
  • A CA cluster protege a comunicação entre o servidor da API e todos os clientes internos da API Kubernetes (kubelets, controladores, programadores). Essa CA é autoassinada.
  • A CA org é uma CA externa usada para exibir a API Kubernetes para usuários externos. Você gerencia essa CA.

Para planos de controle do administrador, as chaves são armazenadas no (em inglês) do plano de controle. Para clusters de usuários, as chaves são armazenadas como secrets do Kubernetes no plano de controle de administrador. O servidor da API é configurado com um certificado fornecido pelo usuário e assinado pela CA org. O servidor da API usa a indicação de nome do servidor (SNI, na sigla em inglês) para determinar qual chave assinada será usada, a da CA cluster ou a da CA org.

A autenticação de cluster em clusters do Anthos no VMware é processada por certificados e tokens do portador da conta de serviço. Como administrador, você se autentica no plano de controle usando o OIDC ou o certificado administrativo (usado para a criação da vinculação de papel inicial ou para fins de emergência).

A rotação de certificados é processada das maneiras a seguir:

  • Para planos de controle, nós e o servidor de API, os certificados são criados ou alternados a cada upgrade.
  • As CAs podem ser alternados raramente ou sob demanda.

Segurança de nós

Os clusters do Anthos no VMware implantam as cargas de trabalho nas instâncias do VMware, que são anexadas aos clusters como nós. As seções a seguir mostram como aproveitar os recursos de segurança no nível do nó disponíveis nos clusters do Anthos no VMware.

Ubuntu

Os clusters do Anthos no VMware usam uma versão otimizada do Ubuntu como sistema operacional em que o plano de controle e os nós do Kubernetes são executados. O Ubuntu inclui um conjunto avançado de recursos de segurança modernos. Os clusters do Anthos no VMware implementam vários recursos de aprimoramento de segurança para clusters, incluindo:

Há guias de segurança extras disponíveis para o Ubuntu, como estae (links em inglês):

Upgrades de nós

Atualize seus nós regularmente. Às vezes, pode ser necessário fazer upgrade dos nós com mais urgência por conta de problemas de segurança no ambiente de execução do contêiner, no próprio Kubernetes ou no sistema operacional dos nós. Quando você faz o upgrade do cluster, cada software do nó é atualizado para as versões mais recentes.

Como proteger suas cargas de trabalho

O Kubernetes permite que os usuários provisionem, escalonem e atualizem rapidamente as cargas de trabalho baseadas em contêiner. Nesta seção, descrevemos as táticas que os administradores e usuários podem usar para limitar a capacidade dos contêineres em execução que afetam outros contêineres no cluster, os hosts em que eles são executados e os serviços do GCP ativados no projeto.

Como limitar os privilégios de processos em contêiner de pod

A limitação dos privilégios de processos em contêiner é importante para a segurança geral do cluster. O Kubernetes Engine permite que você defina opções relacionadas à segurança por meio do contexto de segurança em pods e contêineres. Com essas configurações, é possível alterar as configurações de segurança dos seus processos, como:

  • usuário e grupo de execução;
  • recursos disponíveis do Linux;
  • escalonamento de privilégios.

Os clusters padrão do Anthos no sistema operacional de nós do VMware, Ubuntu, aplicam as políticas de segurança padrão do Docker AppArmor a todos os contêineres iniciados pelo Kubernetes. É possível ver o modelo do perfil no GitHub (em inglês). Entre outras coisas, o perfil nega os seguintes recursos aos contêineres:

  • Gravar em arquivos diretamente em um diretório de ID do processo (/proc/)
  • Gravar em arquivos que não estão em /proc/
  • Gravar em arquivos em /proc/sys em vez de /proc/sys/kernel/shm*
  • Montar sistemas de arquivos

Audit logging

Com a geração de registros de auditoria do Kubernetes, os administradores podem reter, consultar, processar e alertar sobre eventos que ocorrem nos clusters do Anthos nos ambientes VMware. Os administradores podem usar as informações registradas para fazer análises forenses, emitir alertas em tempo real ou catalogar como e por quem uma frota de clusters do Kubernetes Engine está sendo usada.

Por padrão, os clusters do Anthos no VMware registram a atividade do administrador. Se quiser, também é possível registrar eventos de acesso a dados, dependendo dos tipos de operações que você quer inspecionar.

O agente do Connect se comunica apenas com o servidor da API local em execução no local, e cada cluster precisa ter o próprio conjunto de registros de auditoria. Todas as ações que os usuários realizam a partir da IU por meio do Connect são registradas por esse cluster.

Encryption

Se os clusters do Anthos em clusters e cargas de trabalho do VMware se conectarem com segurança aos serviços do Google Cloud por meio do Cloud VPN, você poderá usar o Cloud Key Management Service (Cloud KMS) para gerenciamento de chaves. O Cloud KMS é um serviço de gerenciamento de chaves hospedado na nuvem que permite gerenciar a criptografia dos serviços. Você pode gerar, usar, alternar e destruir chaves criptográficas AES256, RSA 2048, RSA 3072, RSA 4096, EC P256 e EC P384. O Cloud KMS é integrado ao gerenciamento de identidade e acesso (IAM) e ao Cloud Audit Logging, o que permite gerenciar permissões em chaves individuais e monitorar como elas são usadas. Use o Cloud KMS para proteger secrets e outros dados confidenciais que você precisa armazenar. Se não, use uma das alternativas a seguir:

  • Secrets do Kubernetes
  • HashiCorp Vault
  • HSM de rede Thales Luna
  • Módulo de segurança de hardware do Google Cloud (HSM)

Secrets do Kubernetes

Os recursos secrets do Kubernetes armazenam nos clusters dados confidenciais, como senhas, tokens OAuth e chaves SSH. Armazenar dados confidenciais em secrets é mais seguro do que armazená-los em ConfigMaps de texto simples ou nas especificações do pod. Com os secrets, você controla como os dados confidenciais são usados e reduz o risco de expô-los a usuários não autorizados.

HashiCorp Vault

Módulo de segurança de hardware