HashiCorp Vault は、Kubernetes と GKE on AWS を統合するサードパーティの Secret 管理ソリューションです。
次のコマンドを使用して、GKE on AWS に Vault をデプロイできます。
- HashiCorp の公式 Helm チャート
- Vault on GKE。Terraform と一緒にインストールされます。
Agent Sidecar インジェクタを使用して、Pod 内の Vault Secret にアクセスできます。インジェクタは Kubernetes Mutating Webhook Controller です。このコントローラは Pod イベントをインターセプトし、Pod の構成を更新します。
Vault Agent Injector は、Pod の Kubernetes サービス アカウント(KSA)と Vault Kubernetes Auth メソッドを使用します。KSA アカウントは Vault ロールにバインドし、Secret へのアクセス権を付与するポリシーを設定する必要があります。
構成が完了すると、Pod にアノテーションを付けて Secret をリクエストできます。
次のスニペットには、Pod に追加するアノテーションが含まれています。myapp
ロールが Secret secret/banana
にアクセスできる場合、Vault は /vault/secrets/apple
に Secret をマウントします。
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 Injector のドキュメントを読む。
- vault-k8s GitHub リポジトリを確認する。