HashiCorp Vault 是与 Kubernetes 和 GKE on AWS 集成的第三方密钥管理解决方案。
您可以使用以下工具将 Vault 部署在 GKE on AWS 上:
- HashiCorp 的官方 Helm 图表
- Vault on GKE:随 Terraform 一起安装。
您可以使用 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。
后续步骤
- 阅读保险柜注入器文档。
- 查看 vault-k8s GitHub 代码库。