我使用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
提前谢谢。
发布于 2020-12-02 06:45:33
与大多数谷歌云服务一样,谷歌秘密管理器也支持跨项目权限。您可以将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服务帐户密钥的路径。它接受一个,但您可以通过多个路径(包括应用程序默认凭据 (首选))提供身份验证。
https://stackoverflow.com/questions/65109947
复制