角色与权限

本页面介绍了 Identity and Access Management (IAM) 角色,这些角色是 IAM 权限的集合。

一个角色包含一组权限,可让您对Google Cloud 资源执行特定操作。如需向主账号(包括用户、群组和服务账号)提供权限,您可以向主账号授予角色。

准备工作

角色类型

IAM 中有三种角色:

  • 基本角色,可提供对 Google Cloud 资源的广泛访问权限。
  • 预定义角色,为特定服务提供精细访问权限,并由 Google Cloud管理。
  • 自定义角色:根据用户指定的权限列表提供精细访问权限。

要确定基本角色、预定义角色或自定义角色中是否包含某项权限,您可以使用以下方法之一:

如需了解何时使用特定角色类型,请参阅选择要使用的角色类型

角色组成部分

每个角色都包含以下组成部分:

  • 标题:人类可读的角色名称。角色名称用于识别 Google Cloud 控制台中的角色。
  • 名称:角色的标识符,采用以下格式之一:

    • 预定义角色:roles/SERVICE.IDENTIFIER
    • 项目级自定义角色:projects/PROJECT_ID/roles/IDENTIFIER
    • 组织级自定义角色:organizations/ORG_ID/roles/IDENTIFIER

    角色名称用于识别允许政策中的角色。

  • ID:角色的唯一标识符。对于基本角色和预定义角色,ID 与角色名称相同。对于自定义角色,ID 是角色名称中 roles/ 之后的所有内容。

  • 说明:人类可读的角色说明。

  • 阶段:角色在发布生命周期中所处的阶段,例如 ALPHABETAGA。如需详细了解发布阶段,请参阅测试和部署

  • 权限:角色包含的权限。有了权限,主账号便可对 Google Cloud 资源执行特定操作。当您向主账号授予角色时,主账号会获得该角色中的所有权限。

    权限采用以下格式:

    SERVICE.RESOURCE.VERB
    

    例如,拥有 compute.instances.list 权限的用户可以列出他们拥有的 Compute Engine 实例,而拥有 compute.instances.stop 权限的用户则可以停止虚拟机。

    权限通常(但不总是)与 REST 方法一一对应。也就是说,每项 Google Cloud 服务都有与其公开的每个 REST 方法相关联的权限。要调用方法,调用者需要具备关联的权限。例如,如需调用 Pub/Sub API 的 projects.topics.publish 方法,您需要拥有 pubsub.topics.publish 权限。

  • ETag:角色版本的标识符,有助于防止并发更新相互覆盖。基本角色和预定义角色始终具有 ETag AA==。每次修改角色时,自定义角色的 ETag 都会更改。

基本角色

基本角色是权限较高的角色,可授予对Google Cloud 资源的广泛访问权限。

IAM 中的基本角色包括 Admin (roles/admin)、Writer (roles/writer) 和 Reader (roles/reader)。IAM 还具有引入 IAM 之前就存在的三个旧版基本角色:Owner (roles/owner)、Editor (roles/editor) 和 Viewer (roles/viewer)。如需详细了解这些角色,请参阅本页面上的旧版基本角色

下表总结了 Admin、Writer 和 Reader 在所有 Google Cloud 服务中为正文提供的权限:

基本角色 权限
Reader (roles/reader)

有权执行不会影响状态的只读操作,例如查看(但不是修改)现有资源或数据。

如需查看 Reader 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息:

前往 Reader 角色

Writer (roles/writer)

拥有 Reader 角色的所有权限,此外还有权执行会修改状态的操作(例如更改现有资源)。

Writer 角色的权限可让您创建和删除大多数 Google Cloud 服务的资源。但是,Writer 角色不提供对所有服务执行所有操作的权限。如需详细了解如何检查某个角色是否具有您所需的权限,请参阅本页面中的角色类型

如需查看 Writer 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息:

前往 Writer 角色

Admin (roles/admin)

拥有 Writer 角色的所有权限,此外还有权执行以下操作:

  • 完成敏感任务,例如管理 Compute Engine 资源的标记绑定
  • 管理项目的角色和权限,以及项目中的所有资源
  • 为项目设置结算

Admin 角色不包含所有 Google Cloud 资源的所有权限。例如,它不包含修改 Cloud Billing 支付信息或创建 IAM 拒绝政策的权限。

如需查看 Admin 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息:

前往 Admin 角色

您无法使用 Google Cloud 控制台授予 Reader、Writer 或 Admin 角色。请改用 API 或 gcloud CLI。您还可以使用 Privileged Access Manager 为这些角色创建权限。

如需查看相关说明,请参阅授予、更改和撤消访问权限

旧版基本角色

旧版基本角色在引入 IAM 之前就已存在。它们最初称为原初角色。与其他基本角色不同,您无法为旧版基本角色的角色绑定添加条件

旧版基本角色包括 Owner (roles/owner)、Editor (roles/editor) 和 Viewer (roles/viewer)。

当您向主账号授予旧版基本角色时,主账号会获得该角色中的所有权限。主账号还会获得服务为拥有旧版基本角色的主账号提供的所有权限,例如,通过 Cloud Storage 便利值BigQuery 特殊群组成员资格获得的权限。

下表总结了旧版基本角色在所有 Google Cloud 服务中授予主账号的权限:

旧版基本角色 权限
Viewer (roles/viewer)

有权执行不会影响状态的只读操作,例如查看(但不是修改)现有资源或数据。

如需查看 Viewer 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息:

前往 Viewer 角色

Editor (roles/editor)

拥有所有 Viewer 权限,此外还有权执行会修改状态的操作(例如更改现有资源)。

Editor 角色的权限可让您创建和删除大多数 Google Cloud 服务的资源。但是,Editor 角色不提供对所有服务执行所有操作的权限。如需详细了解如何检查某个角色是否具有您所需的权限,请参阅本页面中的角色类型

如需查看 Editor 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息:

前往 Editor 角色

Owner (roles/owner)

拥有所有 Editor 权限,此外还有权执行以下操作:

  • 完成敏感任务,例如管理 Compute Engine 资源的标记绑定
  • 管理项目的角色和权限,以及项目中的所有资源
  • 为项目设置结算

Owner 角色不包含所有 Google Cloud 资源的所有权限。例如,它不包含修改 Cloud Billing 支付信息或创建 IAM 拒绝政策的权限。

如需查看 Owner 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息:

前往 Owner 角色

通常,您可以使用 Google Cloud 控制台、API 或 gcloud CLI 授予旧版基本角色。不过,在以下情况下,您必须使用Google Cloud 控制台授予 Owner 角色:

  • 您要向其授予 Owner 角色的用户不属于您的组织。
  • 您要授予其 Owner 角色的项目不属于任何组织。

此外,您只能向以下类型的主账号授予 Owner 角色:

  • Google 账号
  • 组织中的服务账号
  • 组织中的 Google 群组

如需了解如何授予角色,请参阅授予、更改和撤消访问权限

预定义角色

除了基本角色之外,IAM 还提供其他预定义角色,这些角色可提供对特定 Google Cloud资源的精细访问权限。这些角色由 Google 创建和维护。Google 会根据需要自动更新其权限,例如Google Cloud 添加新功能或服务时。

您可以在资源层次结构的任何级层向同一用户授予多个角色。例如,同一位用户可以拥有项目上的 Compute Network Admin 和 Logs Viewer 角色,并且对该项目中的 Pub/Sub 主题具有 Pub/Sub Publisher 角色。如需列出角色中包含的权限,请参阅获取角色元数据

如需有关选择最合适的预定义角色的帮助,请参阅查找合适的预定义角色

如需查看预定义角色的列表,请参阅角色参考