O HashiCorp Vault é uma solução de gestão de segredos de terceiros que se integra com o Kubernetes e o GKE no AWS.
Pode implementar o Vault no GKE na AWS através do seguinte:
- Gráfico Helm oficial da HashiCorp
- Vault no GKE, que é instalado com o Terraform.
Pode aceder a segredos do Vault dentro de pods através do injetor Agent Sidecar. O injetor é um controlador de webhook de mutação do Kubernetes. O controlador interceta eventos de pods e atualiza a configuração do pod.
O Vault Agent Injector usa a conta de serviço do Kubernetes (KSA) de um pod com o método de autenticação do Kubernetes do Vault. A conta da KSA tem de estar associada a uma função do Vault com uma política que conceda acesso aos segredos.
Depois de configurados, pode pedir segredos anotando um pod.
O fragmento seguinte inclui anotações que adicionaria a um Pod.
Se a função myapp
tiver acesso ao segredo secret/banana
, o Vault
monta-o 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"
Pode aplicar esta configuração:
- Para um agrupamento com
kubectl edit pod/pod-name
. - Para uma implementação com
kubectl edit deployment/deployment-name
.
O que se segue?
- Leia a documentação do Vault Injector.
- Reveja o repositório do GitHub vault-k8s.