如何为Google云功能分配多个服务帐户凭据?

时间:2019-03-26 09:48:33

标签: google-cloud-platform google-cloud-datastore google-cloud-functions service-accounts

我有三个服务帐户

  1. App引擎默认服务帐户
  2. 数据存储服务帐户
  3. 警报中心API服务帐户

我的云功能使用数据存储区模式中的firestore进行簿记并调用Alert Center API。

在部署云功能时,一个只能分配一个服务帐户。

与AWS相似,可以创建多个内联策略并将其分配给默认服务帐户。

P.S。我尝试创建自定义服务帐户,但不支持数据存储角色。我也不想将凭据存储在环境变量中或上传带有源代码的凭据文件。

1 个答案:

答案 0 :(得分:1)

您正在查看的服务帐户有些倒退。

当然,我知道命名如何引导您朝这个方向发展。在这种情况下,“服务”不是指要提供的服务,而是指试图访问提供的服务的非人类实体(即应用,机器等,在这种情况下称为服务)。来自Understanding service accounts

  

服务帐户是属于的一种特殊类型的Google帐户   您的应用程序或虚拟机(VM),而不是   个人最终用户。您的应用assumes the identity of the service account to call Google APIs,这样用户就不会   直接参与。

因此,您不应从提供的服务角度(即数据存储区或Alert Center API)查看服务帐户,而应从它们的“用户”角度(在这种情况下为您的CF)查看服务帐户。

分配给特定CF的单一服务帐户只是在访问特定服务时识别该CF(与某些其他CF,应用,机器,用户等相对)。

如果您希望CF能够访问某些Google服务,则需要为该CF的服务帐户赋予适当的角色和/或权限。

要访问数据存储,您需要查看这些Permissions and Roles。如果您的CF需要访问的数据存储在同一个GCP项目the default CF service account中-与该项目的GAE应用程序相同-已经可以访问该数据存储(当然,如果您同意使用默认服务帐户)。

我没有使用Alert Center API,但显然它是uses OAuth 2.0,因此您可能应该使用Service accounts