如何在 Google Cloud Function 中将非默认 Google 服务帐户凭据与 SecretManagerService 一起使用?
How to use non-default Google Service Account credentials with SecretManagerService in Google Cloud Function?
如何在 Google Cloud Function 生产环境中将非默认 Google 服务帐户凭据传递给 SecretManagerService
或 SecretManagerServiceClient
? Docs are here.
当 运行 在本地时,我可以使用 from google.oauth2.service_account import Credentials
然后 credentials = Credentials.from_service_account_file("some-file.json")
最后 secret_client = SecretManagerServiceClient(credentials)
但是当部署到 GCP 时我不希望凭证文件存储为 json/txt 源代码旁边的文件。
如果我为 App Engine 默认服务帐户提供秘密访问者角色并使用 SecretManagerServiceClient()
而不带参数,那么脚本可以访问部署中的秘密,但它是通过默认服务帐户。我想使用范围有限的非默认帐户 Secret Manager Secret Accessor 只是为了进一步的安全。
我发现 but Quick Search of googleapis.dev 没有找到 SecretManagerServiceClientBuilder
。
我不知道你的案例的所有细节,但我不确定它是从代码内部完成的。
如果您知道执行云函数的服务帐户,您可能希望分配(至少)一个Secret Manager Secret Accessor IAM role,以便您的服务帐户可以读取所需的秘密值。
如果您更喜欢使用控制台 - 可以在列出和编辑机密权限的页面上完成。
理想情况下(从我的角度来看)它应该在 CICD 管道内完成,当您的云功能与所有其他相关资源一起部署时。
您必须在云函数中使用 ADC (Application Default Credential),并且不提供服务帐户密钥文件。
确实,Cloud Functions 的默认服务帐户是使用的 App Engine 默认服务帐户。要使用其他服务帐户,您可以选择更改 cloud function identity 并将秘密访问者权限仅授予该服务帐户
如何在 Google Cloud Function 生产环境中将非默认 Google 服务帐户凭据传递给 SecretManagerService
或 SecretManagerServiceClient
? Docs are here.
当 运行 在本地时,我可以使用 from google.oauth2.service_account import Credentials
然后 credentials = Credentials.from_service_account_file("some-file.json")
最后 secret_client = SecretManagerServiceClient(credentials)
但是当部署到 GCP 时我不希望凭证文件存储为 json/txt 源代码旁边的文件。
如果我为 App Engine 默认服务帐户提供秘密访问者角色并使用 SecretManagerServiceClient()
而不带参数,那么脚本可以访问部署中的秘密,但它是通过默认服务帐户。我想使用范围有限的非默认帐户 Secret Manager Secret Accessor 只是为了进一步的安全。
我发现 SecretManagerServiceClientBuilder
。
我不知道你的案例的所有细节,但我不确定它是从代码内部完成的。
如果您知道执行云函数的服务帐户,您可能希望分配(至少)一个Secret Manager Secret Accessor IAM role,以便您的服务帐户可以读取所需的秘密值。
如果您更喜欢使用控制台 - 可以在列出和编辑机密权限的页面上完成。
理想情况下(从我的角度来看)它应该在 CICD 管道内完成,当您的云功能与所有其他相关资源一起部署时。
您必须在云函数中使用 ADC (Application Default Credential),并且不提供服务帐户密钥文件。
确实,Cloud Functions 的默认服务帐户是使用的 App Engine 默认服务帐户。要使用其他服务帐户,您可以选择更改 cloud function identity 并将秘密访问者权限仅授予该服务帐户