Esta página descreve algumas práticas recomendadas para gerir segredos para aplicações que implementa em clusters do Google Kubernetes Engine ou GKE Enterprise através do Cloud Deploy.
Uma vez que a injeção de segredos de aplicações em artefactos de implementação introduz riscos de segurança, evite gerir segredos a partir de pipelines do Cloud Deploy.
Os segredos consumidos desta forma devem ser gerados, geridos e alternados fora do âmbito do Cloud Deploy.
Neste contexto, os segredos referem-se a dados confidenciais, como credenciais de bases de dados, chaves de API, certificados ou palavras-passe.
Segredos do Kubernetes
Os segredos do Kubernetes são objetos seguros que armazenam dados confidenciais, como palavras-passe, tokens OAuth e chaves SSH nos seus clusters, separados dos pods. Os segredos são semelhantes aos ConfigMaps, mas destinam-se a conter dados confidenciais.
Como os segredos do Kubernetes não são seguros por predefinição, sem encriptação, as abordagens descritas neste documento não os usam.
Gerir segredos para utilização com o Cloud Deploy
Esta secção descreve como gerir segredos para aplicações que implementa com o Cloud Deploy.
Seguem-se duas abordagens à gestão de segredos com o GKE ou o GKE Enterprise:
Google Secret Manager
O Secret Manager é um serviço multirregião totalmente gerido que armazena em segurança chaves de API, palavras-passe e outros dados confidenciais. Google Cloud
Pode aceder aos Secrets do Secret Manager a partir do cluster através da biblioteca de cliente e da autenticação Workload Identity ou através do controlador CSI Secrets Store.
Para usar o Secret Manager na sua aplicação:
Referencie o segredo a partir do código da aplicação através do SDK.
Pode especificar metadados adicionais para o segredo através de variáveis de ambiente, por exemplo, a versão do segredo ou o ambiente da aplicação (como dev, staging ou prod).
Se o processo de implementação de uma funcionalidade específica incluir o aprovisionamento de infraestrutura, crie ou atualize o segredo através do Secret Manager como parte do processo de aprovisionamento, antes de implementar a aplicação.
Para mais informações sobre a gestão de segredos do Kubernetes com o Secret Manager, consulte o artigo Usar o Secret Manager com outros produtos .
Hashicorp Vault
O Hashicorp Vault é uma ferramenta de código aberto popular e amplamente usada para gerir segredos. Google Cloud Tem integrações extensivas e suporte para o Vault, juntamente com outras ferramentas Hashicorp, como o Terraform.
Pode configurar o Vault no seu cluster do Kubernetes da seguinte forma:
Aceda aos segredos do Vault através da API e autentique-se com o Workload Identity.
Injete segredos nos seus pods do Kubernetes através de contentores do Vault Agent.
Use o fornecedor de CSI do Vault para consumir esses segredos.
O que se segue?
Saiba mais sobre as práticas recomendadas do Secret Manager.
Leia uma publicação no blogue sobre as práticas recomendadas de segurança que usam o HashiCorp Vault e o Terraform no Google Cloud.