本页面介绍了 Identity and Access Management (IAM) 角色,这些角色是 IAM 权限的集合。
一个角色包含一组权限,可让您对Google Cloud 资源执行特定操作。如需向主账号(包括用户、群组和服务账号)提供权限,您可以向主账号授予角色。
准备工作
- 了解 IAM 的基本概念。
角色类型
IAM 中有三种角色:
- 基本角色,可提供对 Google Cloud 资源的广泛访问权限。
- 预定义角色,为特定服务提供精细访问权限,并由 Google Cloud管理。
- 自定义角色:根据用户指定的权限列表提供精细访问权限。
要确定基本角色、预定义角色或自定义角色中是否包含某项权限,您可以使用以下方法之一:
在 Google Cloud 控制台中查看角色。
运行
gcloud iam roles describe命令。使用适当的 REST API 方法获取角色:
- 对于预定义角色,请使用
roles.get()。 - 对于项目级自定义角色,请使用
projects.roles.get()。 - 对于组织级自定义角色,请使用
organizations.roles.get()。
- 对于预定义角色,请使用
仅适用于基本角色和预定义角色:搜索权限参考以查看该角色是否授予权限。
仅适用于预定义角色:搜索预定义角色说明以查看该角色包含的权限。
如需了解何时使用特定角色类型,请参阅选择要使用的角色类型。
角色组成部分
每个角色都包含以下组成部分:
- 标题:人类可读的角色名称。角色名称用于识别 Google Cloud 控制台中的角色。
名称:角色的标识符,采用以下格式之一:
- 预定义角色:
roles/SERVICE.IDENTIFIER - 项目级自定义角色:
projects/PROJECT_ID/roles/IDENTIFIER - 组织级自定义角色:
organizations/ORG_ID/roles/IDENTIFIER
角色名称用于识别允许政策中的角色。
- 预定义角色:
ID:角色的唯一标识符。对于基本角色和预定义角色,ID 与角色名称相同。对于自定义角色,ID 是角色名称中
roles/之后的所有内容。说明:人类可读的角色说明。
阶段:角色在发布生命周期中所处的阶段,例如
ALPHA、BETA或GA。如需详细了解发布阶段,请参阅测试和部署。权限:角色包含的权限。有了权限,主账号便可对 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 控制台中的角色详细信息: |
Writer (roles/writer) |
拥有 Reader 角色的所有权限,此外还有权执行会修改状态的操作(例如更改现有资源)。 Writer 角色的权限可让您创建和删除大多数 Google Cloud 服务的资源。但是,Writer 角色不提供对所有服务执行所有操作的权限。如需详细了解如何检查某个角色是否具有您所需的权限,请参阅本页面中的角色类型。 如需查看 Writer 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息: |
Admin (roles/admin) |
拥有 Writer 角色的所有权限,此外还有权执行以下操作:
Admin 角色不包含所有 Google Cloud 资源的所有权限。例如,它不包含修改 Cloud Billing 支付信息或创建 IAM 拒绝政策的权限。 如需查看 Admin 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息: |
您无法使用 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 控制台中的角色详细信息: |
Editor (roles/editor) |
拥有所有 Viewer 权限,此外还有权执行会修改状态的操作(例如更改现有资源)。 Editor 角色的权限可让您创建和删除大多数 Google Cloud 服务的资源。但是,Editor 角色不提供对所有服务执行所有操作的权限。如需详细了解如何检查某个角色是否具有您所需的权限,请参阅本页面中的角色类型。 如需查看 Editor 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息: |
Owner (roles/owner) |
拥有所有 Editor 权限,此外还有权执行以下操作:
Owner 角色不包含所有 Google Cloud 资源的所有权限。例如,它不包含修改 Cloud Billing 支付信息或创建 IAM 拒绝政策的权限。 如需查看 Owner 角色的权限列表,请参阅 Google Cloud 控制台中的角色详细信息: |
通常,您可以使用 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 角色。如需列出角色中包含的权限,请参阅获取角色元数据。
如需有关选择最合适的预定义角色的帮助,请参阅查找合适的预定义角色。
如需查看预定义角色的列表,请参阅角色参考。