如何将多个服务帐户凭据分配给 Google Cloud Functions?
How to assign multiple service account credentials to Google Cloud Functions?
我有三个服务帐户:
- App 引擎默认服务帐户
- 数据存储服务帐户
- 警报中心API服务帐户
我的云函数在数据存储模式下使用 Firestore 进行簿记并调用警报中心 API。
在部署云功能时,一个人只能分配一个服务帐户。
有没有类似于 AWS 的方法,可以创建多个内联策略并将其分配给默认服务帐户。
P.S。我尝试创建自定义服务帐户,但不支持数据存储角色。我也不想在环境变量中存储凭据或上传带有源代码的凭据文件。
您对服务帐户的看法有点倒退。
当然,我知道命名如何引导您朝这个方向发展。 "Service" 在这种情况下不是指所提供的服务,而是指试图访问所提供服务的非人类实体(即应用程序、机器等 - 在这种情况下称为服务)。来自 Understanding service accounts:
A service account is a special type of Google account that belongs to
your application or a virtual machine (VM), instead of to an
individual end user. Your application assumes the identity of the
service account to call Google APIs, so that the users aren't
directly involved.
因此,您不应从提供的服务角度(即数据存储区或警报中心 API)来查看服务帐户,而应从他们的 "users" 角度 - 在本例中为您的 CF。
分配给特定 CF 的单个服务帐户只是在访问特定服务时识别该 CF(与其他一些 CF、应用程序、机器、用户等相对)。
如果您希望该 CF 能够访问某个 Google 服务,您需要为该 CF 的服务帐户授予适当的角色 and/or 权限。
要访问数据存储区,您需要查看这些 Permissions and Roles. If the datastore that your CFs need to access is in the same GCP project the default CF service account - 与该项目中的 GAE 应用程序相同 - 已经可以访问数据存储区(当然,如果您没问题使用默认服务帐户)。
我没有使用警报中心 API,但显然它 uses OAuth 2.0, so you probably should go through Service accounts。
我有三个服务帐户:
- App 引擎默认服务帐户
- 数据存储服务帐户
- 警报中心API服务帐户
我的云函数在数据存储模式下使用 Firestore 进行簿记并调用警报中心 API。
在部署云功能时,一个人只能分配一个服务帐户。
有没有类似于 AWS 的方法,可以创建多个内联策略并将其分配给默认服务帐户。
P.S。我尝试创建自定义服务帐户,但不支持数据存储角色。我也不想在环境变量中存储凭据或上传带有源代码的凭据文件。
您对服务帐户的看法有点倒退。
当然,我知道命名如何引导您朝这个方向发展。 "Service" 在这种情况下不是指所提供的服务,而是指试图访问所提供服务的非人类实体(即应用程序、机器等 - 在这种情况下称为服务)。来自 Understanding service accounts:
A service account is a special type of Google account that belongs to your application or a virtual machine (VM), instead of to an individual end user. Your application assumes the identity of the service account to call Google APIs, so that the users aren't directly involved.
因此,您不应从提供的服务角度(即数据存储区或警报中心 API)来查看服务帐户,而应从他们的 "users" 角度 - 在本例中为您的 CF。
分配给特定 CF 的单个服务帐户只是在访问特定服务时识别该 CF(与其他一些 CF、应用程序、机器、用户等相对)。
如果您希望该 CF 能够访问某个 Google 服务,您需要为该 CF 的服务帐户授予适当的角色 and/or 权限。
要访问数据存储区,您需要查看这些 Permissions and Roles. If the datastore that your CFs need to access is in the same GCP project the default CF service account - 与该项目中的 GAE 应用程序相同 - 已经可以访问数据存储区(当然,如果您没问题使用默认服务帐户)。
我没有使用警报中心 API,但显然它 uses OAuth 2.0, so you probably should go through Service accounts。