在 GKE on AWS 上使用 HashiCorp Vault

HashiCorp Vault 是第三方密鑰管理解決方案,可與 Kubernetes 和 GKE on AWS 整合。

您可以使用下列方式,在 GKE on AWS 上部署 Vault:

您可以使用 Agent Sidecar 注入器,在 Pod 內存取 Vault 密鑰。注入器是 Kubernetes Mutating Webhook 控制器。控制器會攔截 Pod 事件,並更新 Pod 的設定。

Vault Agent Injector 會搭配 Vault Kubernetes 驗證方法,使用 Pod 的 Kubernetes 服務帳戶 (KSA)。KSA 帳戶必須繫結至保管箱角色,並透過政策授予 Secret 存取權。

設定完成後,您就可以為 Pod 加入註解,要求存取密鑰。

下列程式碼片段包含您要新增至 Pod 的註解。如果 myapp 角色有權存取 Secret secret/banana,Vault 會將其掛接至 /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"

您可以套用這項設定:

  • 使用 kubectl edit pod/pod-name 傳送至 Pod。
  • 部署項目,並使用 kubectl edit deployment/deployment-name

後續步驟