Usa Vault de HashiCorp en GKE on AWS

Vault de HashiCorp es una solución de administración de secretos de terceros que se integra en Kubernetes y GKE en AWS.

Puedes implementar Vault en GKE en AWS a través de lo siguiente:

Puedes acceder a los secretos de Vault dentro de los pods mediante el inyector de sidecar del agente. El inyector es un controlador de webhooks mutables de Kubernetes. El controlador intercepta los eventos de Pod y actualiza la configuración del Pod.

El inyector del agente de Vault usa la cuenta de servicio de Kubernetes (KSA) de un Pod con el método de autenticación de Kubernetes para Vault. La cuenta KSA debe estar vinculada a una función de Vault con una política que otorgue acceso a los secretos.

Una vez realizada la configuración, puedes solicitar secretos mediante la anotación de un Pod.

En el siguiente fragmento, se incluyen anotaciones que agregarías a un Pod. Si la función myapp tiene acceso al Secreto secret/banana, Vault la activa 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 en los siguientes elementos:

  • En un Pod con kubectl edit pod/pod-name
  • En un Deployment con kubectl edit deployment/deployment-name

¿Qué sigue?