HashiCorp Vault è una soluzione di gestione dei secret di terze parti che si integra con Kubernetes e GKE su AWS.
Puoi eseguire il deployment di Vault su GKE su AWS utilizzando:
- Grafico Helm ufficiale di HashiCorp
- Vault su GKE, che viene installato con Terraform.
Puoi accedere ai secret di Vault all'interno dei pod utilizzando lo strumento di inserimento di Agent Sidecar. L'injector è un controller webhook di mutazione di Kubernetes. Il controller intercetta gli eventi del pod e aggiorna la configurazione del pod.
Vault Agent Injector utilizza il service account Kubernetes (KSA) di un pod con il metodo di autenticazione Kubernetes di Vault. L'account KSA deve essere associato a un ruolo Vault con un criterio che concede l'accesso ai secret.
Una volta configurati, puoi richiedere i secret annotando un pod.
Il seguente snippet include le annotazioni che aggiungeresti a un pod.
Se il ruolo myapp
ha accesso al secret secret/banana
, Vault
lo monta in /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"
Puoi applicare questa configurazione:
- A un pod con
kubectl edit pod/pod-name
. - A un deployment con
kubectl edit deployment/deployment-name
.
Passaggi successivi
- Leggi la documentazione Vault Injector.
- Esamina il repository GitHub vault-k8s.