管理多个组织资源

通过多个 Google Cloud 组织资源,您可以将业务单位或部门作为独立实体进行维护,而无需集中管理。对于大多数使用场景,请在Google Cloud 资源层次结构中的单个组织资源下使用文件夹。组织资源会确立其下属项目和文件夹的所有权。每个 Google Workspace 或 Cloud Identity 账号都会映射到一个主网域(例如 example.com),并创建一个组织资源。如需详细了解身份网域选项,请参阅添加用户网域别名或辅助域名和更改 Google Workspace 的主域名。或者,您也可以使用独立组织,这些组织独立运行,不需要 Cloud Identity 或 Google Workspace 账号。

使用多个组织资源的影响

如果您不希望一个 Google Cloud、Google Workspace 或 Cloud Identity 账号的用户访问另一个账号的用户创建的资源,请使用多个组织资源。将资源分离到多个组织资源会导致以下情况:

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

  • 需要在每个组织资源上复制子组织通用的政策。

  • 不支持将文件夹从一个组织资源移至另一个组织资源。如需了解详情,请参阅在组织资源之间迁移项目。

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

使用单个组织资源

大多数希望维护单独子组织的组织都可以使用单个组织资源和文件夹来实现此目的。如果您只有一个 Google Workspace 账号,则此账号会映射到组织资源,而子组织会映射到文件夹。

选择 Organization Administrator

Google Workspace 和 Cloud Identity 用户可以按照以下说明选择一个或多个用户作为组织资源的 IAM Organization Administrator。

如需了解如何为独立组织配置 IAM,请参阅添加组织所有者。

如需添加 Organization Administrator,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Resource Manager API。

控制台

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

    打开“IAM 和管理”页面

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

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

    2. 在从下项选择对话框中,点击组织下拉列表,然后选择要向其添加 Organization Administrator 的组织资源。

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

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

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

    Organization Administrator 可以执行以下操作:

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

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

gcloud

如需添加 Organization Administrator,请运行 gcloud organizations add-iam-policy-binding 命令:

gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member="user:EMAIL_ADDRESS" \
    --role="roles/resourcemanager.organizationAdmin"

替换以下内容:

  • ORGANIZATION_ID:组织资源的唯一 ID。
  • EMAIL_ADDRESS:您要添加为 Organization Administrator 的用户的邮箱。

API

如需添加 Organization Administrator,请对组织资源调用 setIamPolicy 方法。

  1. 获取组织资源的当前 IAM 政策:

    POST https://cloudresourcemanager.googleapis.com/v3/organizations/ORGANIZATION_ID:getIamPolicy
    
  2. 更新返回的政策,将成员添加到 roles/resourcemanager.organizationAdmin 角色。

  3. 设置更新后的政策:

    POST https://cloudresourcemanager.googleapis.com/v3/organizations/ORGANIZATION_ID:setIamPolicy
    {
      "policy": {
        "bindings": [
          {
            "role": "roles/resourcemanager.organizationAdmin",
            "members": [
              "user:EMAIL_ADDRESS"
            ]
          }
        ],
        "etag": "ETAG_VALUE"
      }
    }
    

    替换以下内容:

    • ORGANIZATION_ID:组织资源的唯一 ID。
    • EMAIL_ADDRESS:您要添加为 Organization Administrator 的用户的邮箱。
    • ETAG_VALUE:第一步中返回的政策中的 etag 值。

为子组织创建文件夹

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

要创建文件夹,您必须在父级拥有 Folder Admin 或 Folder Creator 角色。例如,如需在组织级层创建文件夹,您必须在组织级层拥有以下角色之一。

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

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

如需创建文件夹,请按以下步骤操作:

控制台

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

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

    打开“管理资源”页面

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

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

  4. 在父级资源下,点击浏览,然后选择要在其下创建新文件夹的组织资源或文件夹。

    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:新文件夹的显示名称,例如“我的超棒文件夹”。
  • ORGANIZATION_NAME:您要在其下创建文件夹的组织资源的名称,例如 organizations/123。

创建文件夹响应:

如果调用成功注册了操作,则响应正文会包含一个 Operation 实例。

{
  "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"
  }
}

授予文件夹管理员角色

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

如需配置对文件夹的访问权限,您必须在父级拥有 Folder IAM Administrator 或 Folder Admin 角色。

控制台

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

    打开“管理资源”页面

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

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

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

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

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

gcloud

您可以使用 Google Cloud CLI 或 REST 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_ID:setIamPolicy

将 FOLDER_ID 替换为要设置其 IAM 政策的文件夹的名称,例如 folders/123。

限制下级组织角色

每个 Folder Admin 都可以将 Project Creator 角色限制为其子组织的成员。他们还可以从组织资源的允许政策中的 Project Creator 角色中移除该网域。

Google Workspace 超级用户拥有不可撤销的 Organization Administrator 权限。这些超级用户通常负责管理身份和身份政策,而不是管理 Google Cloud 资源和资源政策。

控制台

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

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

    打开“管理资源”页面

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

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

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

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

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

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

示例

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

层次结构图

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

如果您的组织有多个 Google Workspace 账号,则默认情况下您有多个组织资源。为了保持集中可见性和控制,您应选择一个组织资源作为主要组织资源。与您的主要组织资源关联的 Google Workspace 账号的超级用户对该组织中的所有资源拥有管理控制权。他们不会自动拥有对其他组织中资源的控制权。您可以向其他 Google Workspace 账号中的用户授予对主组织资源下的文件夹的访问权限,以便他们在其中创建项目。

选择 Organization Administrator

选择一个或多个用户作为组织资源的 IAM Organization Administrator。

如需添加 Organization Administrator,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Resource Manager API。

控制台

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

    打开“IAM 和管理”页面

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

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

    2. 在从下项选择对话框中,点击组织下拉列表,然后选择要向其添加 Organization Administrator 的组织资源。

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

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

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

    Organization Administrator 可以执行以下操作:

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

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

gcloud

如需添加 Organization Administrator,请运行 gcloud organizations add-iam-policy-binding 命令:

gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
    --member="user:EMAIL_ADDRESS" \
    --role="roles/resourcemanager.organizationAdmin"

替换以下内容:

  • ORGANIZATION_ID:组织资源的唯一 ID。
  • EMAIL_ADDRESS:您要添加为 Organization Administrator 的用户的邮箱。

API

如需添加 Organization Administrator,请对组织资源调用 setIamPolicy 方法。

  1. 获取组织资源的当前 IAM 政策:

    POST https://cloudresourcemanager.googleapis.com/v3/organizations/ORGANIZATION_ID:getIamPolicy
    
  2. 更新返回的政策,将成员添加到 roles/resourcemanager.organizationAdmin 角色。

  3. 设置更新后的政策:

    POST https://cloudresourcemanager.googleapis.com/v3/organizations/ORGANIZATION_ID:setIamPolicy
    {
      "policy": {
        "bindings": [
          {
            "role": "roles/resourcemanager.organizationAdmin",
            "members": [
              "user:EMAIL_ADDRESS"
            ]
          }
        ],
        "etag": "ETAG_VALUE"
      }
    }
    

    替换以下内容:

    • ORGANIZATION_ID:组织资源的唯一 ID。
    • EMAIL_ADDRESS:您要添加为 Organization Administrator 的用户的邮箱。
    • ETAG_VALUE:第一步中返回的政策中的 etag 值。

移除 Project Creator 角色

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

控制台

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

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

    打开“管理资源”页面

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

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

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

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

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

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

为 Google Workspace 账号创建文件夹

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

要创建文件夹,您必须在父级拥有 Folder Admin 或 Folder Creator 角色。例如,如需在组织级层创建文件夹,您必须在组织级层拥有以下角色之一。

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

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

如需创建文件夹,请按以下步骤操作:

控制台

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

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

    打开“管理资源”页面

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

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

  4. 在父级资源下,点击浏览,然后选择要在其下创建新文件夹的组织资源或文件夹。

    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:新文件夹的显示名称,例如“我的超棒文件夹”。
  • ORGANIZATION_NAME:您要在其下创建文件夹的组织资源的名称,例如 organizations/123。

创建文件夹响应:

如果调用成功注册了操作,则响应正文会包含一个 Operation 实例。

{
  "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"
  }
}

授予文件夹管理员角色

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

如需配置对文件夹的访问权限,您必须在父级拥有 Folder IAM Administrator 或 Folder Admin 角色。

控制台

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

    打开“管理资源”页面

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

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

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

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

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

gcloud

您可以使用 Google Cloud CLI 或 REST 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_ID:setIamPolicy

将 FOLDER_ID 替换为要设置其 IAM 政策的文件夹的名称,例如 folders/123。

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

示例

下图展示了一个组织,其主域名与收购的辅助域名保持隔离。这两个网域都有各自的 Google Workspace 账号,其中 hypothetical.com 是主要组织资源。

层次结构图