管理多个组织资源

Google Cloud Platform 资源层次结构中,组织资源会为其下方的项目和文件夹建立所有权。您的 Google Workspace 或 Cloud Identity 账号只能与一个组织资源相关联。每个 Google Workspace 或 Cloud Identity 账号还会与一个主网域关联,例如 example.com。如需详细了解如何使用多个网域,请参阅添加用户网域别名或辅助网域。如需详细了解如何更改 Google Workspace 账号的主域名,请参阅更改 Google Workspace 的主域名

对于大多数使用场景而言,最好使用一个组织资源下的文件夹。如果您希望将公司内的各子组织或部门视为独立实体进行维护,而不实施集中管理,则可以通过设置多个 Google Workspace 或 Cloud Identity 账号来实现此目的。每个账号都将附带一个与主网域关联的组织资源。

使用多个组织资源的影响

如果您不希望来自一个 Google Workspace 或 Cloud Identity 账号的用户访问由来自其他 Google Workspace 或 Cloud Identity 账号的用户创建的资源,可使用多个组织资源来实现此目的。将资源分隔成多个组织资源会产生以下后果:

  • 默认情况下,所有用户都将无法集中查看和控制所有资源。

  • 将需要在每个组织资源上复制子组织之间共有的政策。

  • 将文件夹从一个组织资源移动到另一个组织资源是一项不受支持的操作。遵循此处的指南可以完成将项目从一个组织资源移动到另一个组织资源的操作。

  • 每个组织资源都需要一个 Google Workspace 账号。因此,运营多个组织资源就需要使用多个 Google Workspace 账号,并且需要能够跨账号管理身份。

使用单个组织资源

对于想要维护独立子组织的大多数组织来说,可以使用单个组织资源和文件夹来执行此操作。如果您使用一个 Google Workspace 账号,则该账号会映射到组织资源,并且各子组织会映射到文件夹。

选择 Organization Administrator

选择一个或多个用户作为组织资源的 IAM 组织管理员。

控制台

如需添加 Organization Administrator,请执行以下操作:

  1. 以 Google Workspace 或 Cloud Identity 超级用户身份登录 Google Cloud 控制台,然后导航到 IAM 和管理页面:

    打开“IAM 和管理”页面

  2. 选择要修改的组织资源:

    1. 点击页面顶部的项目下拉列表。

    2. 请选择对话框中,点击组织下拉列表,然后选择要向其中添加组织管理员的组织资源。

    3. 在随即显示的列表中,点击相应组织资源以打开其 IAM 权限页面。

  3. 点击添加,然后输入要设置为组织管理员的一个或多个用户的电子邮件地址。

  4. 选择角色下拉列表中,选择 Resource Manager > Organization Administrator,然后点击保存

    组织管理员可以执行以下操作:

    • 完全控制组织资源。Google Workspace 或 Cloud Identity 超级用户和 Google Cloud 管理员之间已实现职责分离。

    • 分配相关 IAM 角色以委派对关键职能的责任。

为子组织创建文件夹

在组织资源下为每个子组织创建一个文件夹。

要创建文件夹,您必须在父级拥有 Folder AdminFolder Creator 角色。例如,要在组织层级创建文件夹,您必须在组织层级拥有以下某个角色。

作为创建文件夹的一部分,您必须为其分配一个名称。文件夹名称必须符合以下要求:

  • 名称可以包含字母、数字、空格、连字符和下划线。
  • 文件夹显示名的开头和结尾都必须是字母或数字。
  • 名称的长度必须介于 3 到 30 个字符之间。
  • 名称必须与同一父级下的所有其他文件夹不同。

要创建文件夹,请执行以下操作:

控制台

您可以参阅“管理项目和文件夹”部分,在界面中创建文件夹。

  1. 前往 Google Cloud 控制台中的管理资源页面:

    打开“管理资源”页面

  2. 请务必在页面顶部的组织下拉列表中选择您的组织资源名称。

  3. 点击创建文件夹,然后选择以下选项之一:

  4. 文件夹名称框中,输入新文件夹的名称。

  5. 目标位置下,点击浏览,然后选择要在其中创建新文件夹的组织资源或文件夹。

    1. 点击创建

gcloud

您可以使用 Google Cloud CLI 以编程方式创建文件夹。

如需使用 gcloud 命令行工具在组织资源下创建文件夹,请运行以下命令。

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

要创建其父级是另一个文件夹的文件夹,请运行以下命令:

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

其中:

  • [DISPLAY_NAME] 是文件夹的显示名。具有同一父级的两个文件夹的显示名必须不同。显示名的开头和结尾都必须是字母或数字,可以包含字母、数字、空格、连字符和下划线,不能超过 30 个字符。
  • 如果父级是组织资源,则 [ORGANIZATION_ID] 是父级组织资源的 ID。
  • 如果父级是文件夹,则 [FOLDER_ID] 是父级文件夹的 ID。

API

您可以通过 API 请求创建文件夹

请求 JSON:

request_json= '{
  display_name: DISPLAY_NAME,
  parent: ORGANIZATION_NAME
}'

创建文件夹 curl 请求:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders

其中:

  • [DISPLAY_NAME] 是新文件夹的显示名,如“My Awesome Folder”。
  • [ORGANIZATION_NAME] 是您要在其中创建文件夹的组织资源的名称,例如 organizations/123

创建文件夹响应:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

获取操作 curl 请求:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789

获取操作响应:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

授予文件夹管理员角色

对于您创建的每个子组织文件夹,请向一个或多个用户授予文件夹管理员角色。这些用户将拥有文件夹及其代表的子组织的管理控制权。

要配置对文件夹的访问权限,您必须在父层级拥有文件夹 IAM 管理员文件夹管理员角色。

控制台

  1. 在 Google Cloud 控制台中,打开管理资源页面。

    打开“管理资源”页面

  2. 点击左上角的组织下拉列表,然后选择您的组织资源。

  3. 选择要为其更改权限的项目旁边的复选框。

    1. 在右侧信息面板权限下方,输入要添加的成员的电子邮件地址。

    2. 选择角色下拉列表中,选择要为这些成员授予的角色。

    3. 点击添加。此时系统会显示一条通知,确认添加或更新成员的新角色。

gcloud

您可以使用 Google Cloud CLI 或 API 以编程方式配置对文件夹的访问权限。

gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderViewer

或者,您也可以使用:

gcloud resource-manager folders \
  set-iam-policy [FOLDER_ID] [POLICY_FILE]

其中:

  • [FOLDER_ID] 是新文件夹的 ID。
  • [POLICY_FILE] 是文件夹政策文件的路径。

API

setIamPolicy 方法用于设置文件夹的访问权限控制政策,替换现有政策。resource 字段应为文件夹的资源名称,例如 folders/1234

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

Curl 请求:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]:setIamPolicy

其中:

  • [FOLDER_NAME] 是正在设置的 IAM 政策所属的文件夹的名称,例如 folders/123。

限制子组织角色

每个文件夹管理员可以限制只有其子组织的成员才能具备项目创建者角色。他们也可以在组织资源的 IAM 政策中从项目创建者角色移除该网域。

Google Workspace 超级用户具有不可撤消的组织管理员权限。这些超级用户通常管理身份和身份政策,而不管理 Google Cloud 资源和资源政策。

控制台

如需使用 Google Cloud 控制台移除系统默认分配给用户的角色,请执行以下操作:

  1. 前往 Google Cloud 控制台中的管理资源页面:

    打开“管理资源”页面

  2. 点击页面顶部的组织下拉列表,然后选择您的组织资源。

  3. 选择要为其更改权限的组织资源对应的复选框。如果您没有文件夹资源,则组织资源将不可见。请参阅 IAM 页面上的角色撤消说明以继续操作。

  4. 在右侧信息面板权限下方,点击以展开要从中移除用户的角色。

  5. 在展开的角色列表中,找到要从角色中移除的主账号,点击旁边的“移除”。 界面屏幕截图

  6. 在显示的要移除主账号吗?对话框中,点击移除以确认移除指定主账号的相应角色。

  7. 对要移除的每个角色重复前两个步骤。

示例

下图演示的组织使用文件夹区分两个部门。工程部和财务部的主管拥有管理控制权,其他用户无法创建项目。

层次结构图

管理一个主要组织资源下的多个组织

如果您的组织使用多个 Google Workspace 账号,那么默认情况下,您将拥有多个组织资源。要维持集中查看和控制的能力,您应该选择一个组织资源作为主组织资源。与主组织资源关联的 Google Workspace 账号的超级用户将对所有资源拥有管理控制权,包括由来自其他 Google Workspace 账号的用户创建的资源。来自这些 Google Workspace 账号的用户将获得访问主组织资源下的文件夹的权限,因此将能够在其中创建项目。

选择 Organization Administrator

选择一个或多个用户作为组织资源的 IAM 组织管理员。

控制台

如需添加 Organization Administrator,请执行以下操作:

  1. 以 Google Workspace 或 Cloud Identity 超级用户身份登录 Google Cloud 控制台,然后导航到 IAM 和管理页面:

    打开“IAM 和管理”页面

  2. 选择要修改的组织资源:

    1. 点击页面顶部的项目下拉列表。

    2. 请选择对话框中,点击组织下拉列表,然后选择要向其中添加组织管理员的组织资源。

    3. 在随即显示的列表中,点击相应组织资源以打开其 IAM 权限页面。

  3. 点击添加,然后输入要设置为组织管理员的一个或多个用户的电子邮件地址。

  4. 选择角色下拉列表中,选择 Resource Manager > Organization Administrator,然后点击保存

    组织管理员可以执行以下操作:

    • 完全控制组织资源。Google Workspace 或 Cloud Identity 超级用户和 Google Cloud 管理员之间已实现职责分离。

    • 分配相关 IAM 角色以委派对关键职能的责任。

移除 Project Creator 角色

请从组织资源中移除 Project Creator 角色,以确保不在其他组织资源中创建资源。

控制台

如需使用 Google Cloud 控制台移除系统默认分配给用户的角色,请执行以下操作:

  1. 前往 Google Cloud 控制台中的管理资源页面:

    打开“管理资源”页面

  2. 点击页面顶部的组织下拉列表,然后选择您的组织资源。

  3. 选择要为其更改权限的组织资源对应的复选框。如果您没有文件夹资源,则组织资源将不可见。请参阅 IAM 页面上的角色撤消说明以继续操作。

  4. 在右侧信息面板权限下方,点击以展开要从中移除用户的角色。

  5. 在展开的角色列表中,找到要从角色中移除的主账号,点击旁边的“移除”。 界面屏幕截图

  6. 在显示的要移除主账号吗?对话框中,点击移除以确认移除指定主账号的相应角色。

  7. 对要移除的每个角色重复前两个步骤。

为 Google Workspace 账号创建文件夹

在组织资源下为每个 Google Workspace 账号创建一个文件夹。

要创建文件夹,您必须在父级拥有 Folder AdminFolder Creator 角色。例如,要在组织层级创建文件夹,您必须在组织层级拥有以下某个角色。

作为创建文件夹的一部分,您必须为其分配一个名称。文件夹名称必须符合以下要求:

  • 名称可以包含字母、数字、空格、连字符和下划线。
  • 文件夹显示名的开头和结尾都必须是字母或数字。
  • 名称的长度必须介于 3 到 30 个字符之间。
  • 名称必须与同一父级下的所有其他文件夹不同。

要创建文件夹,请执行以下操作:

控制台

您可以参阅“管理项目和文件夹”部分,在界面中创建文件夹。

  1. 前往 Google Cloud 控制台中的管理资源页面:

    打开“管理资源”页面

  2. 请务必在页面顶部的组织下拉列表中选择您的组织资源名称。

  3. 点击创建文件夹,然后选择以下选项之一:

  4. 文件夹名称框中,输入新文件夹的名称。

  5. 目标位置下,点击浏览,然后选择要在其中创建新文件夹的组织资源或文件夹。

    1. 点击创建

gcloud

您可以使用 Google Cloud CLI 以编程方式创建文件夹。

如需使用 gcloud 命令行工具在组织资源下创建文件夹,请运行以下命令。

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

要创建其父级是另一个文件夹的文件夹,请运行以下命令:

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

其中:

  • [DISPLAY_NAME] 是文件夹的显示名。具有同一父级的两个文件夹的显示名必须不同。显示名的开头和结尾都必须是字母或数字,可以包含字母、数字、空格、连字符和下划线,不能超过 30 个字符。
  • 如果父级是组织资源,则 [ORGANIZATION_ID] 是父级组织资源的 ID。
  • 如果父级是文件夹,则 [FOLDER_ID] 是父级文件夹的 ID。

API

您可以通过 API 请求创建文件夹

请求 JSON:

request_json= '{
  display_name: DISPLAY_NAME,
  parent: ORGANIZATION_NAME
}'

创建文件夹 curl 请求:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders

其中:

  • [DISPLAY_NAME] 是新文件夹的显示名,如“My Awesome Folder”。
  • [ORGANIZATION_NAME] 是您要在其中创建文件夹的组织资源的名称,例如 organizations/123

创建文件夹响应:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

获取操作 curl 请求:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789

获取操作响应:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

授予文件夹管理员角色

对于创建的每个文件夹,请向一个或多个用户授予文件夹管理员角色。这些用户将获得对文件夹及其代表的子组织的管理控制权。

要配置对文件夹的访问权限,您必须在父层级拥有文件夹 IAM 管理员文件夹管理员角色。

控制台

  1. 在 Google Cloud 控制台中,打开管理资源页面。

    打开“管理资源”页面

  2. 点击左上角的组织下拉列表,然后选择您的组织资源。

  3. 选择要为其更改权限的项目旁边的复选框。

    1. 在右侧信息面板权限下方,输入要添加的成员的电子邮件地址。

    2. 选择角色下拉列表中,选择要为这些成员授予的角色。

    3. 点击添加。此时系统会显示一条通知,确认添加或更新成员的新角色。

gcloud

您可以使用 Google Cloud CLI 或 API 以编程方式配置对文件夹的访问权限。

gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderViewer

或者,您也可以使用:

gcloud resource-manager folders \
  set-iam-policy [FOLDER_ID] [POLICY_FILE]

其中:

  • [FOLDER_ID] 是新文件夹的 ID。
  • [POLICY_FILE] 是文件夹政策文件的路径。

API

setIamPolicy 方法用于设置文件夹的访问权限控制政策,替换现有政策。resource 字段应为文件夹的资源名称,例如 folders/1234

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

Curl 请求:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]:setIamPolicy

其中:

  • [FOLDER_NAME] 是正在设置的 IAM 政策所属的文件夹的名称,例如 folders/123。

然后,每个 Folder Admin 可为关联网域中的用户授予 Project Creator 角色。

示例

下图演示的组织的主网域与获取的辅助网域保持分离。这两个网域中的每个网域均具备各自的 Google Workspace 账号,其中 hypothetical.com 是主要组织资源。

层次结构图