Google Cloud 资源层次结构提供了一种结构化方式来整理云资源。除层次结构中的最高资源外,所有资源都只有一个父级。该层次结构由顶部的组织(根)组成,后跟用于分组的文件夹(可选),然后是包含实际服务资源(例如 Compute Engine 虚拟机和存储桶)的项目。
使用结构化层次结构具有以下优势:
- 所有权:将资源的生命周期绑定到其直接父级。项目属于组织,而不属于创建项目的个别员工。如果员工离职,项目仍会保持活跃和安全。
- 继承:它为访问权限控制和组织政策提供连接点,这些政策会沿层次结构向下传递。您可以在较高级层(例如组织或文件夹)授予角色。这些角色会被所有子资源继承,从而减少了为每个单独项目手动配置权限的需求。
下图展示了 Google Cloud 资源层次结构。
组织资源
组织资源代表一个实体(例如公司),是Google Cloud 资源层次结构的根节点。它提供以下关键功能:
- 组织是所有文件夹和项目资源的父级。
- 在此级别应用的访问权限控制政策(例如 Identity and Access Management [IAM] 角色)和组织政策会由组织中的每个资源继承。
- 虽然并非所有 Google Cloud 用户都必须使用组织资源,但要使用特定的 Resource Manager 功能,组织资源是必不可少的。
与 Google Workspace 或 Cloud Identity 账号的关联
Google Workspace 或 Cloud Identity 账号是访问组织资源的前提条件。
- 一个 Google Workspace 或 Cloud Identity 账号只能与一个组织资源关联。
- 对于拥有 Google Workspace 或 Cloud Identity 账号的用户,在创建 Google Cloud 项目资源时,系统会自动为其预配组织资源。
下图显示了 Google Workspace 账号、Cloud Identity 和 Google Cloud 资源层次结构之间的关联。
Google Workspace 超级用户负责网域所有权验证,并担任需要执行恢复时的联系人。因此,默认情况下,系统会向 Google Workspace 超级用户授予分配 IAM 角色的能力。Google Workspace 超级用户在 Google Cloud 方面的主要职责是向其网域中的适当用户分配 Organization Administrator IAM 角色。这样可以实现用户通常希望的 Google Workspace 和 Google Cloud管理职责分离。
受管理用户的项目创建规则
网域存在组织资源后,项目创建将遵循严格的规则:
- 受管理用户(账号网域的成员)必须在组织内创建项目。与组织资源关联的账号无法创建不与组织资源关联的项目资源。
- 默认情况下,新项目属于与用户关联的组织。
- 如果用户拥有适当的权限,则可以在创建项目期间指定其他组织资源;否则,系统会默认使用其主组织。
组织资源的优势
有了组织资源,您的项目资源将归属于您的组织,而不是创建这些资源的员工。这意味着,当员工离开公司时,您的组织会保留项目资源。项目资源遵循 Google Cloud上的组织资源的生命周期。
此外,组织管理员可以集中控制所有资源。他们可以查看和管理贵公司的所有项目资源。这样可以防止出现影子项目或流氓管理员。
您还可以在组织级层授予角色,组织资源下的所有项目和文件夹资源都会继承这些角色。例如,您可以在组织级层向网络团队授予 Network Admin 角色,以便他们管理公司所有项目资源中的所有网络,而无需为每个项目资源单独授予该角色。
组织资源由以下属性定义:
- 组织资源 ID,它是组织的唯一标识符。
- 显示名称,根据 Google Workspace 或 Cloud Identity 中的主域名生成。
- 组织资源的创建时间。
- 组织资源的上次修改时间。
- 组织资源的所有者,即 Directory API 中的 Google Workspace 客户 ID。您在创建组织资源时指定所有者,且无法更改。
以下代码段展示了组织资源的结构:
{
"creationTime": "2020-01-07T21:59:43.314Z",
"displayName": "my-organization",
"lifecycleState": "ACTIVE",
"name": "organizations/34739118321",
"owner": {
"directoryCustomerId": "C012ba234"
}
}
新组织资源的初始允许政策会向整个 Google Workspace 网域授予 Project Creator 和 Billing Account Creator 角色。这意味着,用户可以像在组织资源存在之前那样,继续创建项目资源和结算账号。创建组织资源时,不会创建其他资源。允许政策、拒绝政策和组织政策均通过层次结构继承,层次结构中每个资源的有效政策是对该资源直接应用的政策与从其祖先继承而来的政策组合的结果。
文件夹资源
文件夹资源是组织资源和项目资源之间的一种可选分组机制。必须有组织资源才能使用文件夹。文件夹资源及其子项目资源位于组织资源下。
文件夹资源可在项目之间提供隔离边界。它们在组织资源中充当子组织。文件夹资源可用于为公司内的不同法律实体、部门和团队建模。例如,文件夹的第一级可代表您组织中的主要部门。由于文件夹可以包含项目及其他文件夹,因此每个文件夹可以包含子文件夹以代表不同的团队。每个团队文件夹可以包含其他子文件夹以代表不同的应用。如需详细了解如何使用文件夹资源,请参阅创建文件夹。
如果您的组织资源具有文件夹资源,并且您拥有适当的查看权限,则可以在 Google Cloud 控制台中查看这些资源。如需了解更详细的说明,请参阅查看、更新和删除文件夹。
借助文件夹资源,您可以委派管理权限。例如,您可以向每位部门主管授予其部门内所有 Google Cloud 资源的完整所有权。同样,文件夹资源可以限制对资源的访问, 这意味着一个部门的用户只能访问该文件夹资源中的资源,或者在该文件夹资源中创建 Google Cloud 资源。
以下代码段展示了文件夹资源的结构:
{
"createTime": "2030-01-07T21:59:43.314Z",
"displayName": "Engineering",
"lifecycleState": "ACTIVE",
"name": "folders/634792535758",
"parent": "organizations/34739118321"
}
与组织和项目资源一样,文件夹资源也充当允许、拒绝和组织政策的政策继承点。在文件夹资源上授予的 IAM 角色由该文件夹中的所有项目和文件夹资源继承。
项目资源
项目资源是基本的组织实体。组织和文件夹资源可以包含多个项目。您需要一个项目资源才能使用 Google Cloud。它是创建、启用和使用所有Google Cloud 服务、管理 API、启用结算功能、添加和移除协作者以及管理权限的基础。
所有项目资源都包含以下内容:
- 两个标识符:
- 项目资源 ID,它是项目资源的唯一标识符。
- 项目资源编号,在您创建项目时自动分配。项目编号只读。
- 一个可变显示名称。
- 项目资源的生命周期状态;例如 ACTIVE 或 DELETE_REQUESTED。
- 可用于过滤项目的标签集合。
- 项目资源的创建时间。
以下代码段展示了项目资源的结构:
{
"createTime": "2020-01-07T21:59:43.314Z",
"lifecycleState": "ACTIVE",
"name": "my-project",
"parent": {
"id": "634792535758",
"type": "folder"
},
"projectId": "my-project",
"labels": {
"my-label": "prod"
},
"projectNumber": "464036093014"
}
如要与大多数 Google Cloud 资源交互,您必须为每个请求提供项目资源标识符。您可以通过两种方式标识项目资源:项目资源 ID 或项目资源编号。在代码段中,这些值分别为 projectId 和 projectNumber。
项目资源 ID 是您在创建项目时选择的自定义名称。如果您激活需要项目的 API,则可以创建新项目,也可以使用项目资源 ID 选择现有项目。name 字符串(显示在界面中)与项目资源 ID 不同。
Google Cloud 会自动生成项目资源编号。您可以在Google Cloud 控制台中的项目信息中心找到项目资源 ID 和编号。如需了解如何获取项目标识符以及项目资源的其他管理任务,请参阅创建项目。
新创建的项目资源的初始 IAM 政策会向项目创建者授予所有者角色。