【问题标题】:App needs access to customer google cloud project应用需要访问客户谷歌云项目
【发布时间】:2020-10-07 04:03:54
【问题描述】:

我想建立一些服务,一个客户/公司可以提供一个谷歌云存储桶 + firestore db,我想对桶文件和 firestore 执行一些操作(读/写),但我不确定是什么访问他们的资源的最佳方式。

[my gc project] -> [customer 1 gc project: bucket + firestore]
                -> [customer 2 gc project: bucket + firestore]
                -> [customer n gc project: bucket + firestore]

我能想到的解决方案:

  • 使用 OAuth 请求访问权限,但之后更像是用户授予我权限而不是公司授予我权限
  • 客户创建了一个服务帐户并给了我“json”
  • 我为每个客户创建了一个服务帐户,他必须将其添加到他的项目中,我不知道这是否可能,我认为每个客户的服务帐户限制为 100 个左右
  • 我创建了一个服务帐户,每个客户都必须将其添加到他的项目中

其他一些要求:

  • 我需要以能够在后台运行计划作业的方式访问客户项目
  • 我必须使用谷歌云功能访问客户项目

什么最适合我,或者我错过了什么?

【问题讨论】:

标签: google-cloud-platform google-cloud-firestore google-cloud-datastore


【解决方案1】:

如果项目将由您代表他们创建,我建议创建一个组织。在组织中,项目被分类在文件夹中,类似于文件系统。然后,您可以将特定元素的访问控制添加到里面的所有项目中。 https://cloud.google.com/iam/docs/resource-hierarchy-access-control

否则,您将不得不手动(或创建脚本)请求服务帐户(第二个点)或创建唯一服务帐户并将此唯一服务帐户添加到每个客户项目(第三个点)。

【讨论】:

  • 为了遵守一些政策,我希望他们是项目的所有者。所以当我创建它们时,我必须让它们成为所有者,然后删​​除我的大部分权限。如果是选项 2. 和 3. 你会推荐什么?
  • 我个人会专注于创建一个向一个服务帐户授予权限的脚本。该脚本可以从 Cloud Shell 运行,以方便您的客户
猜你喜欢
  • 2017-11-23
  • 2023-03-31
  • 2018-03-26
  • 1970-01-01
  • 2019-12-24
  • 2014-09-04
  • 2019-05-15
  • 2015-09-08
  • 1970-01-01
相关资源
最近更新 更多