借助 Identity and Access Management (IAM),您可以授予对特定 Google Cloud 资源的精细访问权限,并防止对其他资源进行不必要的访问。此模型可帮助您采用最小权限原则,从而确保您仅授予对资源的必要访问权限。
通过设置允许政策,您可以控制谁(用户)对哪些资源具有什么访问权限(角色)。如需管理对项目的访问权限,您可以配置 IAM 角色和权限,或使用拒绝政策来防止主账号使用特定权限。如需了解详情,请参阅管理对项目、文件夹和组织的访问权限。
如果您刚开始使用 Google Cloud,则可以在 Google Cloud 设置过程中建立资源层次结构并授予初始访问权限。
权限和角色
为了控制对资源的访问权限, Google Cloud 要求发出 API 请求的账号具有适当的 IAM 角色。IAM 角色包含允许用户对Google Cloud 资源执行特定操作的权限。例如,resourcemanager.projects.delete 权限允许用户删除项目。
您并非直接向用户授予权限,而是向其授予角色(角色本身会具有一项或多项权限)。您可以针对特定资源授予这些角色,但这些角色也适用于资源层次结构中此资源的所有子级。
权限
如需管理项目,调用方必须具有具有以下权限的角色。该角色是在包含项目的组织资源或文件夹中授予的:
| 方法 | 所需权限 |
|---|---|
resourcemanager.projects.create |
resourcemanager.projects.create |
resourcemanager.projects.delete |
resourcemanager.projects.delete |
resourcemanager.projects.get |
resourcemanager.projects.get授予此权限还将授予通过 Billing API 方法 billing.projects.getBillingInfo 获取与项目关联的结算账号的名称的权限。 |
resourcemanager.projects.getIamPolicy |
resourcemanager.projects.getIamPolicy |
resourcemanager.projects.list |
resourcemanager.projects.list |
resourcemanager.projects.search |
resourcemanager.projects.get |
resourcemanager.projects.setIamPolicy |
resourcemanager.projects.setIamPolicy |
resourcemanager.projects.testIamPermissions |
不需要任何权限。 |
resourcemanager.projects.undelete |
resourcemanager.projects.undelete |
resourcemanager.projects.patch |
如需更新项目的元数据,您需要具有 resourcemanager.projects.update 权限。如需更新项目的父级并将项目移至组织资源,需要对组织资源拥有 resourcemanager.projects.create 权限。 |
projects.move |
projects.move |
使用预定义角色
借助 IAM 预定义角色,您可以管理用户可用的权限。如需查看可在项目级层授予的角色的完整列表,请参阅了解角色。
下表列出了可用于授予项目访问权限的预定义角色。每个角色都包含其用途和所含权限的说明。
| 角色 | 权限 |
|---|---|
Project Creator( 提供创建新项目的权限。用户创建项目后,系统会自动为其授予该项目的所有者角色。 您可以授予此角色的最低级层资源:
|
|
Project Deleter( 提供删除 Google Cloud 项目的权限。 您可以授予此角色的最低级层资源:
|
|
Project Mover( 提供更新和移动项目的权限。 您可以授予此角色的最低级层资源:
|
|
Project IAM Admin( 提供管理项目的允许政策的权限。 您可以授予此角色的最低级层资源:
|
|
浏览器( 拥有浏览项目层次结构(包括文件夹、组织和允许政策)所需的读取权限。此角色不具备查看项目内资源的权限。 您可以授予此角色的最低级层资源:
|
|
基本角色
仅在必要时使用基本角色。这些角色具有高权限,可授予对所有 Google Cloud 服务的广泛权限。如需详细了解何时使用基本角色,请参阅基本角色。
| 角色 | 说明 | 权限 |
|---|---|---|
roles/owner |
对所有资源拥有完整访问权限。 | 所有资源的所有权限。 |
roles/editor |
拥有对大多数资源的修改权限。 | 有权创建和更新大部分资源。 |
roles/viewer |
有权读取大部分资源。 | 有权获取并列出大部分资源。 |
创建自定义角色
除了本主题中介绍的预定义角色之外,您还可以创建自定义角色,这些角色是您根据需要定制的权限集合。创建要与 Resource Manager 搭配使用的自定义角色时,请注意以下几点:- 列出和获取权限(如
resourcemanager.projects.get/list)应始终成对授予。 - 如果您的自定义角色包含
folders.list和folders.get权限,则还应包含projects.list和projects.get。 - 请注意,组织、文件夹和项目资源的
setIamPolicy权限允许用户授予所有其他权限,因此应谨慎分配。
项目级访问权限控制措施
您可以使用 Google Cloud console、Cloud Resource Manager API 和 Google Cloud CLI 在项目级层为用户授予角色。如需查看相关说明,请参阅授予、更改和撤消访问权限。
默认角色
创建项目时,您会获得 roles/owner 角色,该角色可让您完全控制项目。您可以在允许政策中更改此默认角色。
VPC Service Controls
VPC Service Controls 可以在使用 Cloud Resource Manager API 时提供额外的安全保障。如需详细了解 VPC Service Controls,请参阅 VPC Service Controls 概览。
如需了解将 Resource Manager 与 VPC Service Controls 结合使用时目前所存在的限制,请参阅支持的产品和限制页面。