Google cloud platform 服务帐户可以访问的项目是否有最大数量?

Google cloud platform 服务帐户可以访问的项目是否有最大数量?,google-cloud-platform,service-accounts,google-iam,Google Cloud Platform,Service Accounts,Google Iam,我正在写一个应用程序,在gcp上的不同项目中做一些小工作。用户以IAM策略中的成员身份通过电子邮件将服务帐户(来自我的项目)添加到其项目中。然后他分配一些权限,应用程序就可以完成它的工作了 该应用程序可以在连接的项目中增长,因此我的问题是: 服务帐户可以作为成员的项目是否有最大数量 我读到服务帐户不应该以“每个用户”为基础创建,也不应该创建太多。所以我不认为我应该为每个项目创建一个服务帐户。另一方面,对我来说,拥有一个拥有不同客户项目权利的帐户似乎很奇怪 是否有以可扩展和安全的方式处理“多项目”

我正在写一个应用程序,在gcp上的不同项目中做一些小工作。用户以IAM策略中的成员身份通过电子邮件将服务帐户(来自我的项目)添加到其项目中。然后他分配一些权限,应用程序就可以完成它的工作了

该应用程序可以在连接的项目中增长,因此我的问题是:

服务帐户可以作为成员的项目是否有最大数量

我读到服务帐户不应该以“每个用户”为基础创建,也不应该创建太多。所以我不认为我应该为每个项目创建一个服务帐户。另一方面,对我来说,拥有一个拥有不同客户项目权利的帐户似乎很奇怪

是否有以可扩展和安全的方式处理“多项目”服务帐户的最佳做法?

“是否有一个服务帐户最多可以处理的项目数 成员?”

服务帐户用于调用服务的Google API。由于您必须从另一个项目(称此项目B)添加服务帐户作为项目成员(称此项目a),以便在项目a中分配it角色/权限,因此我相信以下限制也适用于您的问题

我可以在一个帐户中拥有的最大服务帐户数是多少 项目

您可以在一个项目中创建100个服务帐户。联系您的帐户 如果您需要在同一时间内创建100个以上的服务帐户,请选择manager 项目

每个项目最多可以创建100个服务帐户(包括 默认计算引擎服务帐户和应用引擎服务 帐户)使用IAM API、GCP控制台或gcloud 命令行工具。这些默认服务帐户和服务 您显式创建的帐户是用户管理的服务帐户

最佳实践

  • 限制谁可以充当服务帐户。作为服务帐户的服务帐户用户的用户可以间接访问该服务帐户有权访问的所有资源。因此,向用户授予serviceAccountUser角色时要小心

  • 仅向服务帐户授予实现其目标所需的最低权限集。了解如何将角色授予特定资源的服务帐户

  • 为每个服务创建仅具有该服务所需权限的服务帐户

  • 使用服务帐户的显示名称来跟踪服务帐户。创建服务帐户时,使用服务帐户的用途填充其显示名称

  • 为您的服务帐户定义命名约定

  • 实施流程以自动轮换用户管理的服务帐户密钥

  • 利用IAM服务帐户API实现密钥轮换

  • 使用serviceAccount.keys.list()方法或控制台中的日志查看器页面审核服务帐户和密钥

  • 不要删除在Google App Engine或Google Compute Engine上运行的实例正在使用的服务帐户


感谢谷歌文档的回复。也许我不够清楚,问题是:如果我有一个创建服务帐户的项目a。我可以将该服务帐户作为成员添加到多少个项目X中?这有限制吗?我读到一些关于服务帐户上的600个刷新令牌的限制。如果这个帐户是1k+项目的成员,并且在2分钟内他对所有这些项目进行身份验证以运行作业,这会在身份验证等方面产生问题吗?谷歌删除了600刷新令牌限制文档,所以我不知道这一点。然而,您误解了什么是服务帐户以及如何使用它。它用于发出API调用。这意味着访问令牌将被生成并用于该API调用。API调用将是对服务的调用。这项服务将在一个项目中提供。令牌不会针对1K+项目进行身份验证,在该时间点仅使用一个服务。访问令牌的有效期为一小时(可更改),因此我不确定可以执行哪些缓存,但访问令牌可以反复使用。您应该能够将相同的用户帐户(此处为服务帐户)添加到不同的项目中。尽管帮助中心的文章与企业规模的组织相关,对于您的用例来说,它仍然是一个很好的参考。如上所述,服务帐户可以被授予对多个项目的访问权限,但在提供对多个项目的访问权限的同时,请注意该帐户在该项目上分配的必要角色/权限。@JohnHanley感谢您的解释,我将仅使用服务帐户启动API调用,但可能在许多项目中。这只是GCP没有提供的一个简单功能,我想为它构建一个服务。在这种情况下,在项目中执行的每个操作在任务队列中都有自己的任务,该任务队列将启动appengine调用,其中服务帐户用于在项目x中执行调用。我从来没有说过我想将令牌用于多个项目。问题是,我是否必须创建多个服务帐户,以及是否有多项目帐户的最佳实践