首页 > 解决方案 > 为什么启用 Cloud Run API 会创建这么多服务帐号?为什么他们有这么多特权?

问题描述

启用 Cloud Run API(开发控制台→Cloud Run→启用)会创建五个服务帐户。我想了解他们的目的。我需要知道将它们配置为最低权限访问是否是我的责任。

Default compute service account作用Editor。这是Cloud Run 运行时服务帐号。它的目的很明确,我知道我有责任将其配置为最低特权访问。

App Engine default service account作用Editor。这与Cloud Functions 运行时服务帐户的描述相匹配。鉴于 Cloud Run 运行时服务帐户的存在,其目的尚不清楚。我不知道是否有责任将其配置为最低特权访问。

( role) 和Google Container Registry Service Agent( role )都是Google 管理的服务帐户“用于访问 Google Cloud Platform 服务的 API”:EditorGoogle Cloud Run Service AgentCloud Run Service Agent

我希望看到配置为最低权限访问的 Google 管理的服务帐户。我还希望能够在 GCP 控制台的 IAM 部分过滤 Google 管理的服务帐户。也就是说,我知道我应该忽略它们。

未命名的{project-number}{at}cloudbuild.gserviceaccount.com服务帐户具有该Cloud Build Service Account角色。此服务帐号“可以执行构建”,但未出现在 Cloud Run Building Containers文档中。它用于持续部署——但如果没有额外的用户配置就无法做到这一点。它不是 Google 管理的服务帐户,但它不像运行时服务帐户那样出现在 GCP 控制台的“服务帐户”部分中。其目的尚不清楚。我不知道是否有责任将其配置为最低特权访问。

标签: google-cloud-platformgoogle-cloud-run

解决方案


云跑 PM:

  1. 是的,完全正确。
  2. 如果您只使用 Run,我们可能不应该创建它(并且可能没有启用 App Engine API,这就是创建它的原因)。在 Alpha 期间,这是运行时服务帐户,很可能没有清理干净。
  3. 我感觉它被卡住了,Editor因为它访问了云存储,奇怪的是“不可Editor访问”(我仍在尝试追查确切的问题,但看起来与Editor需要它的旧角色有联系) .
  4. 从它的角度来看,它已经是“最低特权”了,因为它只具有执行 Run 需要执行的操作以代表您设置资源的权限。
  5. 这是 Cloud Build 的运行时服务帐户等效项,属于与 1,2 相同的类别。如果您需要将构建部署到 Cloud Run,您必须授予此帐户类似Cloud Run Deployer的权限(加上允许构建服务帐户充当您的运行时服务帐户的额外步骤,以防止 [或至少确认] 权限升级) .

我也希望更好地过滤“谷歌创建”和“谷歌管理”,并且一直在与 Cloud IAM 团队讨论这个问题。


推荐阅读