GCP 默认服务帐户最佳安全实践

stk*_*flw 5 service-accounts google-cloud-platform google-iam

因此,我们有一个“Compute Engine 默认服务帐户”,一切都清楚了:

  • 这是一个具有过多权限的旧帐户
  • 它曾经受到分配给每个 GCE 实例或实例组的“范围”的限制
  • 建议删除该账户,并以最小权限原则为每项服务使用自定义服务账户。
  1. 文档中提到的第二个“默认服务帐户”是“App Engine 默认服务帐户”。据推测,它已分配给 App Engine 实例,并且它也是一个旧事物,需要与 Compute Engine 默认服务帐户类似地对待。正确的?

  2. 那么“Google API 服务代理”又如何呢?它具有“编辑器”角色。据我了解,此帐户由 GCP 内部使用,我作为用户创建的任何自定义资源都不会访问该帐户。这是否意味着没有理由为了遵守最佳安全实践而减少其权限?

Woj*_*k_B 3

您不必删除默认服务帐户,但在某些时候,最好创建具有​​作业所需的最低权限的帐户,并优化权限以满足您的需求,而不是使用默认帐户。

您对此帐户拥有完全控制权,因此您可以随时更改其权限,甚至删除它:

Google 创建 Compute Engine 默认服务帐户并将其自动添加到您的项目中,但您可以完全控制该帐户。

Compute Engine 默认服务帐号是使用 IAM 基本编辑者角色创建的,但您可以修改服务帐号的角色以控制服务帐号对 Google API 的访问权限。

您可以从项目中禁用或删除此服务帐户,但这样做可能会导致依赖于该服务帐户凭据的任何应用程序失败

如果出现问题,您最多可以在 90 天内恢复帐户

还建议在开发过程中完全不要使用服务帐户,因为这可能会在将来带来安全风险。

Google API 服务代理

此服务帐户专为代表您运行内部 Google 流程而设计。该帐号归 Google 所有,未在 Cloud Console 的服务帐号部分列出

另外:

某些资源依赖于此服务帐户以及授予该服务帐户的默认编辑器权限。例如,托管实例组和自动扩展使用此帐户的凭据来创建、删除和管理实例。如果您撤销对服务帐户的权限,或以不授予创建实例的权限的方式修改权限,这将导致托管实例组和自动扩展停止工作。

由于这些原因,您不应修改此服务帐户的角色,除非角色建议明确建议您修改它们。

话虽如此,我们可以得出结论,删除默认服务帐户或 Google API 服务代理都是有风险的,并且需要大量准备(尤其是后者)。

查看最佳实践文档,其中描述了管理服务帐户时推荐的内容和不推荐的内容。

您还可以查看保护它们免受任何攻击更改实例的服务帐户和访问范围