Uso de HashiCorp Vault en GKE en AWS

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:

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?