Google Cloud 提供 Identity and Access Management (IAM),可让您授予对特定 Google Cloud 资源的更细化访问权限,并防止对其他资源进行不必要的访问。IAM 允许您采用最小权限安全原则,因此您只需授予对您的资源的必要访问权限即可。
通过 IAM,您可以设置 IAM 政策,以控制哪些人(用户)对哪些资源具有什么访问权限(角色),从而授予包含特定权限的特定角色。
本页面介绍可用于管理项目访问权限的 IAM 权限和角色。如需详细了解 IAM,请参阅 IAM 文档。尤其是授予、更改和撤消访问权限部分。
权限和角色
为了控制对资源的访问权限,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 控制台、Cloud Resource Manager API 和 Google Cloud CLI 在项目级层为用户授予角色。如需查看相关说明,请参阅授予、更改和撤消访问权限。
默认角色
当您创建项目时,系统会向您授予项目的角色/所有者角色,为您提供作为创建者的完整控制权。您可以在 IAM 政策中照常更改该默认角色。
VPC Service Controls
使用 Cloud Resource Manager API 时,VPC Service Controls 可供额外的安全保护。如需详细了解 VPC Service Controls,请参阅 VPC Service Controls 概览。
如需了解将 Resource Manager 与 VPC Service Controls 结合使用时目前所存在的限制,请参阅支持的产品和限制页面。