O HashiCorp Vault (em inglês) é uma solução de gerenciamento de secrets de terceiros que se integra ao Kubernetes e aos clusters Anthos na AWS.
É possível implantar o Vault nos cluster do Anthos na AWS usando:
- Gráfico Helm (em inglês) oficial da HashiCorp
- Vault no GKE, instalado com o Terraform.
É possível acessar os secrets do Vault nos pods usando o injetor do arquivo secundário do agente. O injetor é um controlador de webhook mutante do Kubernetes. O controlador intercepta os eventos do pod e atualiza a configuração do pod.
O injetor do agente do Vault usa a conta de serviço do Kubernetes (KSA, na sigla em inglês) de um pod com o método de autenticação do Kubernetes no Vault. A conta de KSA precisa estar vinculada a um papel do Vault com uma política que conceda acesso aos secrets.
Depois de configurado, é possível solicitar secrets anotando um pod.
O snippet a seguir inclui anotações que você adicionaria a um pod.
Se o papel myapp
tiver acesso ao secret secret/banana
, o Vault
o ativará em /vault/secrets/apple
.
spec:
template:
metadata:
annotations:
vault.hashicorp.com/agent-inject: "true"
vault.hashicorp.com/agent-inject-secret-apple: "secrets/banana"
vault.hashicorp.com/role: "myapp"
É possível aplicar esta configuração:
- em um pod com
kubectl edit pod/pod-name
; - em uma implantação com
kubectl edit deployment/deployment-name
.
A seguir
- Leia a documentação do Injetor do Vault (em inglês).
- Revise o repositório do GitHub vault-k8s (em inglês).