HashiCorp Vault es una solución de gestión de secretos de terceros que se integra con Kubernetes y GKE en AWS.
Puede implementar Vault en GKE en AWS usando:
- Gráfico oficial de Helm de HashiCorp
- Bóveda 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. Este inyector es un controlador de webhook mutante de Kubernetes . El controlador intercepta los eventos del pod y actualiza su configuración.
El inyector de agente de Vault utiliza 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 otorgue acceso a los secretos.
Una vez configurado, puedes solicitar secretos anotando un Pod.
El siguiente fragmento incluye anotaciones que se agregarían a un pod. Si el rol myapp
tiene acceso al 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:
- Para crear un Pod con
kubectl edit pod/ pod-name
. - Para realizar una implementación con
kubectl edit deployment/ deployment-name
.
¿Qué sigue?
- Lea la documentación de Vault Injector .
- Revise el repositorio de GitHub vault-k8s .