Faça a gestão de segredos de aplicações

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:

  1. Crie um Secret com o Secret Manager.

  2. 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:

  1. Aceda aos segredos do Vault através da API e autentique-se com o Workload Identity.

  2. Injete segredos nos seus pods do Kubernetes através de contentores do Vault Agent.

  3. Use o fornecedor de CSI do Vault para consumir esses segredos.

O que se segue?