在 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 帳戶必須繫結至保管箱角色,並具備授予密鑰存取權的政策。

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

下列程式碼片段包含您要新增至 Pod 的註解。如果 myapp 角色有權存取密鑰 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

後續步驟