GKE on AWS での HashiCorp Vault の使用

HashiCorp Vault は、Kubernetes と GKE on AWS を統合するサードパーティの Secret 管理ソリューションです。

次のコマンドを使用して、GKE on AWS に Vault をデプロイできます。

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 に適用。

次のステップ