【问题标题】:Is it possible to attach a Service account from another GCP project to a GCP Cloud Function?是否可以将另一个 GCP 项目的服务帐户附加到 GCP 云功能?
【发布时间】:2020-06-12 07:52:16
【问题描述】:
我想在 GCP 项目 A 中创建一个 GCP 云函数 (function-in-A-project)。
我想将在项目 B 中创建的服务帐户 (service-account-created-in-B-project) 附加到 function-in-A-project。
有可能吗?
【问题讨论】:
-
根据文档here:“正在部署的服务帐户必须与它所附加的功能在同一个项目中创建。”
标签:
google-cloud-platform
google-cloud-functions
service-accounts
google-iam
google-cloud-iam
【解决方案1】:
如果您想在 Google Cloud Console 中或通过 CLI 部署参数分配服务帐号,并通过元数据 (ADC) 获取密钥,则必须在同一项目中指定服务帐号。原因是服务帐户私钥是在签署请求时为您处理的,并且不提供给客户端应用程序。
您可以通过向您的代码提供服务帐号 JSON 密钥材料,在 Cloud Functions 中手动使用任何服务帐号。在这种情况下,我建议将服务帐号存储在 Google Secrets Manager 中。
您甚至可以混合使用这两种方法,以便使用 ADC(应用程序默认凭据),然后使用自定义服务帐户进行特殊用途。