HashiCorp Vault 是第三方密鑰管理解決方案,可與 Kubernetes 和 GKE on AWS 整合。
您可以使用下列方式,在 GKE on AWS 上部署 Vault:
- HashiCorp 的官方 Helm 資訊套件
- GKE 上的 Vault, 使用 Terraform 安裝。
您可以使用 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
。
後續步驟
- 參閱 Vault Injector 說明文件。
- 查看 vault-k8s GitHub 存放區。