管理多个组织资源

组织资源在 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. 请选择:对话框中,点击组织下拉列表,然后选择要添加 Organization Administrator 的组织资源。

    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. 点击 Add(添加)。系统会显示一条通知,确认添加或更新成员的新角色。

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. 请选择:对话框中,点击组织下拉列表,然后选择要添加 Organization Administrator 的组织资源。

    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. 点击 Add(添加)。系统会显示一条通知,确认添加或更新成员的新角色。

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 是主要组织资源。

层次结构图