Usar o HashiCorp Vault no GKE na AWS

O HashiCorp Vault é uma solução de gestão de segredos de terceiros que se integra com o Kubernetes e o GKE no AWS.

Pode implementar o Vault no GKE na AWS através do seguinte:

Pode aceder a segredos do Vault dentro de pods através do injetor Agent Sidecar. O injetor é um controlador de webhook de mutação do Kubernetes. O controlador interceta eventos de pods e atualiza a configuração do pod.

O Vault Agent Injector usa a conta de serviço do Kubernetes (KSA) de um pod com o método de autenticação do Kubernetes do Vault. A conta da KSA tem de estar associada a uma função do Vault com uma política que conceda acesso aos segredos.

Depois de configurados, pode pedir segredos anotando um pod.

O fragmento seguinte inclui anotações que adicionaria a um Pod. Se a função myapp tiver acesso ao segredo secret/banana, o Vault monta-o em /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"

Pode aplicar esta configuração:

  • Para um agrupamento com kubectl edit pod/pod-name.
  • Para uma implementação com kubectl edit deployment/deployment-name.

O que se segue?