0

GCP シークレット マネージャーを使用して、google-cloud-secretmanagerクライアント ライブラリ (Java) を使用してパスワードを保存します。クライアント ライブラリは、環境変数で gcp プロジェクトのサービス アカウント キー (json) ファイル パスを想定しています。単一のプロジェクトではできますが、複数の GCP プロジェクトのシークレット マネージャーにアクセスしようとすると、環境変数に異なるプロジェクトのキーを設定する方法がわかりません。環境でキーを設定する際に助けが必要か、Java コードを使用して設定する方法があります。

このMaven依存関係を使用しています

  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-secretmanager</artifactId>
  </dependency>

https://cloud.google.com/secret-manager/docs/reference/libraries

前もって感謝します。

4

1 に答える 1

4

ほとんどの Google Cloud サービスと同様に、Google Secret Manager はプロジェクト間の権限をサポートしています。IAM 権限をサービス アカウントに適用することで、サービス アカウントに他のプロジェクトのシークレットへのアクセスを許可できます。サービス アカウントは に存在しますがproject-a、それでも の Secret Manager シークレットにアクセスする権限を与えることができますproject-b

gcloud secrets add-iam-policy-binding "my-secret" \
  --project "project-b"
  --member "serviceAccount:my-service-account@project-a.iam.gserviceaccount.com"

余談ですが、クライアント ライブラリにはJSON サービス アカウント キーへのパスは必要ありません。1 つを受け入れますが、アプリケーションの既定の資格情報(推奨) を含む複数のパスを介して認証を提供できます。

于 2020-12-02T14:45:33.690 に答える