GCP:GKE中的机器人服务帐户是什么?

3
我正在尝试作为新手提高对GCP-GKE的了解,但在此过程中,我发现一个小概念,我还不太理解。在GKE中,有一个名为service-PROJECT_NUM@container-engine-robot.iam.gserviceaccount.com(其中PROJECT_NUM是我们项目的ID)的服务帐户,经过几个小时的搜索,我找不到任何关于这个东西的文章或定义。所以你们能否向我解释一下:
  • 什么是服务帐户?它是如何创建的(由谁创建)?
  • 这个东西是干什么用的?在GKE中有多重要?
  • 如果我们删除它会发生什么?我们可以手动重新创建吗?

实际上,我发现在GCP中,我们有一些带有“机器人”后缀的服务帐户...robot.iam.gserviceaccount.com/(例如@gcf-admin-robot.iam.gserviceaccount.com/@serverless-robot-prod.iam.gserviceaccount.com等)。请问这是什么意思?

如果我有误解,请指出来,我非常感激。

谢谢!

1个回答

1

服务账户(也称“机器人”)与用户(“人类”)账户相对应,代表了 Google 身份的两种形式。

注意:机器人是服务账户的原始名称,是这些账户意图的一个更加生动的描述,即运行软件。

(Google) 用户账户包括消费者 (Gmail) 例如 you@gmail.com 和 you@employee.com (Workspace) 账户。用户账户由人类用于与 Google 服务进行交互,并且必须使用(或适当的委托)来访问用户拥有的内容,如 Workspace 文档、表格等。

通常情况下,软件(“机器人”)应该作为服务账户而不是用户账户运行。部分原因在于,你不能轻松地使用用户账户运行软件,因为用户 OAuth 流程是三方的,需要与 OAuth 同意屏幕交互以允许应用程序访问数据。

服务账户有两种类型:由 Google 创建和管理的和由用户创建和管理的。区别在于所有者。如果你创建应用程序,通常应为每个应用程序创建一个服务账户,并使用其服务账户运行应用程序。

用户管理的服务账户采用 {something}@{project}.iam.gserviceaccount.com 的形式,其中你可以定义 {something} 的值,并且创建服务账户的 Google 项目(拥有服务账户的项目)由 {project}(实际上是项目 ID)表示。

当 Google 提供应用程序功能时,它还会创建服务账户,并且通常将这些服务账户“绑定”到使用它们的项目中,除了定义服务账户在你的项目中具有的角色之外。

由 Google 管理的服务账户采用 {something}@{label}.iam.gserviceaccount.com 的形式。与用户管理的服务账户不同,Google 使用更详细的标签 ({label}) 来帮助解释服务账户的角色。

注意:对于由 Google 管理的服务账户,{something} 中经常包含(你的!)项目的项目编号(而不是 ID),

无法删除由 Google 管理的服务账户,因为你(的 Google 账户)不拥有该服务账户。

可以(但不应该)删除你的一个项目与由 Google 管理的服务账户之间的角色绑定。你可能有权限恢复(重新创建)绑定,但也可能没有权限这样做。


3
您列出的特定谷歌托管服务帐户是Cloud Functions(gcf-admin-robot)和Cloud Run(gcf-admin-robot)的服务代理。分别由每个服务用于根据需要访问其他服务。您可以在此处找到服务代理列表:https://cloud.google.com/iam/docs/service-agents。 - Gari Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接