使用java中的googlecloudsecretmanager客户端库访问多个googlecloud项目的secretmanager

h9vpoimq  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(337)

我使用gcp secret manager存储密码,使用googlecloudsecretmanager客户端库(java)。客户端库在环境变量中需要gcp项目的服务帐户密钥(json)文件路径。我可以为单个项目设置密钥,但是当我尝试访问多个gcp项目的secretmanager时,我不知道如何在环境变量中为不同的项目设置密钥。在设置环境中的键时需要帮助,或者有没有一种方法可以使用java代码来设置它。
我使用的是maven依赖

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

https://cloud.google.com/secret-manager/docs/reference/libraries
提前谢谢。

zyfwsgd6

zyfwsgd61#

像大多数google云服务一样,googlesecretmanager支持跨项目权限。通过对服务帐户应用iam权限,您可以授予服务帐户访问其他项目中的机密的权限。即使服务帐户位于 project-a ,它仍然可以在中被授予访问机密管理器机密的权限 project-b :

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

另外,客户机库不需要json服务帐户密钥的路径。它接受一个,但您可以通过多个路径提供身份验证,包括应用程序默认凭据(首选)。

相关问题