Responda à pesquisa State of DevOps 2023 (em inglês) e molde o futuro da entrega de software.

Gerenciar secrets do aplicativo

Nesta página, você verá algumas práticas recomendadas para gerenciar secrets em aplicativos implantados nos clusters do Google Kubernetes Engine ou do Anthos usando o Google Cloud Deploy.

Como a injeção de secrets do aplicativo nos artefatos de implantação apresenta riscos de segurança, evite gerenciar secrets dentro dos pipelines do Google Cloud Deploy.

Os secrets consumidos dessa maneira precisam ser gerados, gerenciados e alternados fora do escopo do Google 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 Google Cloud Deploy

Nesta seção, você verá como gerenciar secrets para aplicativos implantados usando o Google Cloud Deploy.

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

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 com a biblioteca de cliente e a autenticação da Identidade da carga de trabalho ou com o Driver CSI do Secret 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