HashiCorp Vault es una solución de gestión de secretos de terceros que se integra con Kubernetes y GKE en AWS.
Puedes desplegar Vault en GKE en AWS de las siguientes formas:
- El gráfico de Helm oficial de HashiCorp
- Vault en GKE, que se instala con Terraform.
Puedes acceder a los secretos de Vault dentro de los pods mediante el inyector de sidecar del agente. El inyector es un controlador de webhook de mutación de Kubernetes. El controlador intercepta los eventos de Pod y actualiza la configuración del Pod.
Vault Agent Injector usa la cuenta de servicio de Kubernetes (KSA) de un pod con el método de autenticación de Kubernetes de Vault. La cuenta de KSA debe estar vinculada a un rol de Vault con una política que conceda acceso a los secretos.
Una vez configurado, puedes solicitar secretos anotando un pod.
El siguiente fragmento incluye las anotaciones que añadirías a un pod.
Si el rol myapp
tiene acceso al secreto secret/banana
, Vault lo monta en /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"
Puedes aplicar esta configuración:
- A un pódcast con
kubectl edit pod/pod-name
. - A una implementación con
kubectl edit deployment/deployment-name
.
Siguientes pasos
- Consulta la documentación de Vault Injector.
- Consulta el repositorio de GitHub vault-k8s.