HashiCorp Vault est une solution tierce de gestion des secrets qui s'intègre à Kubernetes et à GKE sur AWS.
Vous pouvez déployer Vault sur GKE sur AWS à l'aide des ressources suivantes :
- Le chart Helm officiel de HashiCorp
- Vault sur GKE, qui est installé avec Terraform
Vous pouvez accéder aux secrets Vault à l'intérieur des pods à l'aide de l'injecteur side-car d'agent. L'injecteur est un contrôleur webhook à mutation Kubernetes. Le contrôleur intercepte les événements du pod et met à jour sa configuration.
L'injecteur d'agent Vault utilise le compte de service Kubernetes (KSA) d'un pod avec la méthode d'authentification Vault Kubernetes. Le compte KSA doit être associé à un rôle Vault avec une stratégie accordant l'accès aux secrets.
Une fois configuré, vous pouvez demander des secrets en annotant un pod.
L'extrait suivant inclut les annotations pouvant être ajoutées à un pod.
Si le rôle myapp
a accès au secret secret/banana
, Vault l'installe à l'adresse /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"
Vous pouvez appliquer cette configuration :
- à un pod avec
kubectl edit pod/pod-name
; - dans un déploiement avec
kubectl edit deployment/deployment-name
.
Étapes suivantes
- Consultez la documentation de l'injecteur Vault.
- Consultez le dépôt GitHub vault-k8s.