服务账户(也称“机器人”)与用户(“人类”)账户相对应,代表了 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 管理的服务账户之间的角色绑定。你可能有权限恢复(重新创建)绑定,但也可能没有权限这样做。