Gerenciar segredos de aplicativos

Nesta página, descrevemos algumas práticas recomendadas para gerenciar secrets de aplicativos que você implanta nos clusters do Google Kubernetes Engine ou do GKE Enterprise usando o Cloud Deploy.

Como injetar secrets do aplicativo em artefatos de implantação apresenta riscos de segurança, evite gerenciar secrets nos pipelines do Cloud Deploy.

Os secrets consumidos dessa maneira precisam ser gerados, gerenciados e alternados fora do escopo do Cloud Deploy.

Os secrets, neste contexto, se referem a dados confidenciais, como credenciais de banco de dados, chaves de API, certificados ou senhas.

Secrets do Kubernetes

Os secrets do Kubernetes são objetos seguros que armazenam dados confidenciais, como senhas, tokens OAuth e chaves SSH nos clusters, separados dos pods. Os secrets são semelhantes aos ConfigMaps, mas se destinam a armazenar dados confidenciais.

Como os secrets do Kubernetes não são seguros por padrão, sem criptografia, as abordagens descritas neste documento não os usam.

Como gerenciar secrets para uso com o Cloud Deploy

Nesta seção, descrevemos como gerenciar secrets para aplicativos implantados com o Cloud Deploy.

Veja a seguir duas abordagens para o gerenciamento de secrets com o GKE ou o GKE Enterprise:

Gerenciador de secrets do Google

O Secret Manager é um serviço de várias regiões totalmente gerenciado do Google Cloud que armazena chaves de API, senhas e outros dados confidenciais com segurança.

Os secrets do Secret Manager podem ser acessados no cluster usando a autenticação da biblioteca de cliente e da Identidade da carga de trabalho ou usando o driver CSI do Secrets Store.

Para usar o Secret Manager no seu aplicativo:

  1. Crie um secret usando o Secret Manager.

  2. Faça referência ao secret do código do seu aplicativo usando o SDK.

É possível especificar metadados adicionais para o secret usando variáveis de ambiente, como versão do secret ou ambiente de aplicativo, como dev, staging, prod.

Se o processo de implantação de um recurso específico incluir o provisionamento da infraestrutura, crie ou atualize o secret usando o Gerenciador de secrets como parte do processo de provisionamento, antes de implantar o aplicativo.

Para mais informações sobre como gerenciar secrets do Kubernetes com o Secret Manager, consulte Como usar o Secret Manager com outros produtos .

HashiCorp Vault

O Hashicorp Vault (em inglês) é uma ferramenta de código aberto conhecida e amplamente usada para gerenciar secrets. O Google Cloud tem ampla integração e suporte para o Vault, além de outras ferramentas da Hashicorp, como o Terraform.

Você pode configurar o Vault no cluster do Kubernetes da seguinte maneira:

  1. Acesse secrets do Vault por meio da API e faça a autenticação usando a Identidade da carga de trabalho.

  2. Injete secrets nos pods do Kubernetes usando contêineres do agente do Vault.

  3. Use o provedor CSI do Vault para consumir esses secrets.

A seguir