在 GKE on AWS 上使用 HashiCorp Vault

HashiCorp Vault 是与 Kubernetes 和 GKE on AWS 集成的第三方密钥管理解决方案。

您可以使用以下工具将 Vault 部署在 GKE on AWS 上:

您可以使用 Agent Sidecar 注入器在 pod 内访问 Vault 密钥。注入器是 Kubernetes Mutating Webhook Controller。控制器会拦截 pod 事件并更新 pod 的配置。

Vault Agent 注入器会将 pod 的 Kubernetes 服务账号 (KSA) 与 Vault Kubernetes 身份验证方法配合使用。KSA 账号必须绑定到某个 Vault 角色,且有政策授予对密文的访问权限。

配置完成后,您可以通过为 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 将此配置应用于 Deployment。

后续步骤