我有三个服务帐户
我的云功能使用数据存储区模式中的firestore进行簿记并调用Alert Center API。
在部署云功能时,一个只能分配一个服务帐户。
与AWS相似,可以创建多个内联策略并将其分配给默认服务帐户。
P.S。我尝试创建自定义服务帐户,但不支持数据存储角色。我也不想将凭据存储在环境变量中或上传带有源代码的凭据文件。
答案 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。