O Google Cloud inclui controles para proteger seus recursos de computação e recursos de contêiner do Google Kubernetes Engine (GKE). Este documento no Framework da arquitetura do Google Cloud descreve os principais controles e práticas recomendadas para usá-los.
Use imagens de VM protegidas e selecionadas
O Google Cloud inclui uma VM protegida, que permite aumentar a proteção das instâncias de VM. A VM protegida foi projetada para evitar que códigos maliciosos sejam carregados durante o ciclo de inicialização. Ele fornece segurança de inicialização, monitora a integridade e usa o Módulo da plataforma virtual confiável (vTPM). Use VMs protegidas para cargas de trabalho confidenciais.
Além de usar a VM protegida, é possível usar as soluções do Google Cloud Partner para proteger ainda mais suas VMs. Muitas soluções de parceiros oferecidas no Google Cloud se integram ao Security Command Center, que oferece detecção de ameaças a eventos e monitoramento de integridade. Use parceiros para análise avançada de ameaças ou segurança extra no ambiente de execução.
Use a Computação confidencial para processar dados confidenciais
Por padrão, o Google Cloud criptografa dados em repouso e em trânsito na rede, mas eles não são criptografados enquanto estão em uso na memória. Se sua organização lida com dados confidenciais, você precisa reduzir as ameaças que comprometem a confidencialidade e a integridade do aplicativo ou dos dados na memória do sistema. Os dados confidenciais incluem informações de identificação pessoal (PII), dados financeiros e informações de saúde.
A computação confidencial é criada com base na VM protegida. Ele protege os dados em uso ao executar a computação em um ambiente de execução confiável baseado em hardware. Esse tipo de ambiente seguro e isolado ajuda a evitar o acesso ou a modificação não autorizado de aplicativos e dados enquanto esses dados estão em uso. Um ambiente de execução confiável também aumenta as garantias de segurança para organizações que gerenciam dados confidenciais e regulamentados.
No Google Cloud, é possível ativar a Computação confidencial executando VMs confidenciais ou nós confidenciais do GKE. Ative a Computação confidencial ao processar cargas de trabalho confidenciais ou quando você tiver dados confidenciais (por exemplo, secrets) que precisam ser expostos durante o processamento. Para mais informações, consulte o Consórcio para computação confidencial.
Proteger VMs e contêineres
O Login do SO permite que os funcionários se conectem às VMs usando as permissões do gerenciamento de identidade e acesso (IAM, na sigla em inglês) como a fonte confiável, em vez de confiar Chaves SSH. Portanto, não é necessário gerenciar chaves SSH em toda a organização. O login do SO vincula o acesso de um administrador ao ciclo de vida do funcionário. Isso significa que, se os funcionários mudarem para outro papel ou sairem da organização, o acesso deles será revogado com a conta. O Login do SO também é compatível com a autenticação de dois fatores, que adiciona uma camada extra de segurança contra ataques de invasão de conta.
No GKE, o App Engine executa instâncias de aplicativos em contêineres do Docker. Para ativar um perfil de risco definido e impedir que os funcionários façam alterações nos contêineres, verifique se os contêineres são sem estado e imutáveis. O princípio de imutabilidade significa que os funcionários não modificam o contêiner nem o acessam interativamente. Se precisar mudá-la, crie uma nova imagem e implante novamente. Ative o acesso SSH aos contêineres subjacentes somente em cenários de depuração específicos.
Desative os endereços IP externos, a menos que eles sejam necessários.
Para desativar a alocação de endereços IP externos (vídeo) das VMs de produção e para impedir o uso de balanceadores de carga externos, use as políticas da organização. Se você precisar que suas VMs acessem a Internet ou o data center no local, ative um gateway da Cloud NAT.
É possível implantar clusters particulares no GKE. Em um cluster particular, os nós têm endereços IP internos, o que significa que os nós e os pods estão isolados da Internet por padrão. Também é possível definir a política de rede para gerenciar a comunicação entre pods no cluster. Para mais informações, consulte Opções de acesso privado para serviços.
Monitorar o uso da instância de computação e do GKE
Os registros de auditoria do Cloud são ativados automaticamente para o Compute Engine e o GKE. Os registros de auditoria permitem que você capture automaticamente todas as atividades com seu cluster e monitore qualquer atividade suspeita.
Integre o GKE a produtos de parceiros para garantir a segurança do ambiente de execução. É possível integrar essas soluções ao Security Command Center para disponibilizar uma única interface para monitorar os aplicativos.
Mantenha suas imagens e clusters atualizados
O Google Cloud fornece imagens de SO selecionadas que são corrigidas regularmente. É possível trazer imagens personalizadas e executá-las no Compute Engine. No entanto, se fizer isso, você mesmo precisará corrigi-las. O Google Cloud atualiza regularmente as imagens do SO para mitigar novas vulnerabilidades, conforme descrito nos boletins de segurança, e fornece soluções para corrigir vulnerabilidades de implantações atuais.
Se você estiver usando o GKE, recomendamos ativar o upgrade automático do nó para que o Google atualize os nós do cluster com os patches mais recentes. O Google gerencia planos de controle do GKE, que são atualizados e corrigidos automaticamente. Além disso, na implantação, use imagens otimizadas para contêineres selecionadas pelo Google. O Google corrige e atualiza essas imagens regularmente.
Controlar o acesso a imagens e clusters
É importante saber quem pode criar e iniciar instâncias. É possível controlar esse acesso usando o IAM. Para informações sobre como determinar qual é o acesso às cargas de trabalho, consulte Planejar as identidades das cargas de trabalho.
Além disso, é possível usar o VPC Service Controls para definir cotas personalizadas em projetos a fim de limitar quem pode iniciar imagens. Para mais informações, consulte a seção Proteger sua rede.
Para garantir a segurança da infraestrutura do cluster, o GKE permite usar o IAM com controle de acesso baseado em papéis (RBAC, na sigla em inglês) para gerenciar o acesso ao cluster e aos namespaces.
Isolar contêineres em um sandbox
Use o GKE Sandbox para implantar aplicativos multilocatários que precisam de uma camada extra de segurança e isolamento do kernel do host Por exemplo, use o GKE Sandbox quando estiver executando código desconhecido ou não confiável. O GKE Sandbox é uma solução de isolamento de contêineres que aplica uma segunda camada de defesa entre cargas de trabalho em contêineres no GKE.
O GKE Sandbox foi criado para aplicativos com poucos requisitos de E/S, mas altamente escalonáveis. Essas cargas de trabalho em contêiner precisam manter o desempenho e a velocidade, mas também podem envolver códigos não confiáveis que demandam mais segurança. Use o gVisor, um sandbox de ambiente de execução de contêiner, para fornecer isolamento de segurança extra entre aplicativos e o kernel do host. O gVisor fornece verificações adicionais de integridade e limita o escopo de acesso a um serviço. Ele não é um serviço de proteção de contêiner contra ameaças externas. Para mais informações sobre o gVisor, consulte gVisor: proteger o GKE e usuários sem servidor no mundo real.
A seguir
Saiba mais sobre segurança de contêineres e computação com os seguintes recursos:
- Proteger sua rede (próximo documento desta série)
- Por que a segurança do contêiner é importante (PDF)
- Lista de verificação do lançamento do Google Cloud
- Como verificar a identidade das instâncias
- A federação de identidade da carga de trabalho para o GKE
- VM protegida
- Práticas recomendadas para snapshots de disco permanente
- Práticas recomendadas de gerenciamento de imagens