管理共享预留创建

默认情况下,项目无法创建或修改共享预留。本文档介绍如何允许或限制 Google Cloud 组织中的项目创建和修改共享预留。共享预留可帮助您最大限度地提高各项目中预留容量的使用率,并只需管理一个预留,而不是多个预留。

如需详细了解创建和使用共享预留的最佳实践,请参阅共享预留的最佳实践

准备工作

  • 如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

      gcloud init

      如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

    2. Set a default region and zone.

所需的角色

如需获得允许或限制项目创建共享预留所需的权限,请让您的管理员向您授予组织的 Organization Policy Administrator (roles/orgpolicy.policyAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含允许或限制项目创建共享预留所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

必须拥有以下权限才能允许或限制项目创建共享预留:

  • 修改组织政策:针对组织的 orgpolicy.policy.set 权限
  • 查看组织政策:针对组织的 orgpolicy.policy.get 权限

您也可以使用自定义角色或其他预定义角色来获取这些权限。

允许或限制项目创建共享预留

如需允许或限制项目创建共享预留,请修改共享预留所有者项目 (compute.sharedReservationsOwnerProjects) 组织政策限制条件中的许可名单。

以下部分介绍了如何在项目或组织中查看或修改共享预留政策限制条件。

查看共享预留组织政策限制条件

如需查看您的项目或组织是否已启用“共享预留所有者项目”compute.sharedReservationsOwnerProjects 限制条件,请选择以下选项之一:

控制台

  1. 在 Google Cloud 控制台中,转到组织政策页面。

    转到组织政策

  2. 在项目选择器中,选择要查看组织政策的项目或组织。

  3. 过滤条件字段中,输入 constraints/compute.sharedReservationsOwnerProjects

  4. 名称列中,点击共享预留的所有者项目。 系统随即会显示政策详情页面。

  5. 有效政策部分,验证您的项目或组织是否可以创建和修改共享预留。

gcloud

如要查看 compute.sharedReservationsOwnerProjects 限制条件允许哪些项目创建和修改共享预留,请执行以下操作:

  1. 如需将组织的政策下载为名为 policy.yaml 的文件,请使用 gcloud resource-manager org-policies describe 命令

    gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
        --organization=ORGANIZATION_ID > policy.yaml
    

    ORGANIZATION_ID 替换为您的组织的 ID

  2. 在您选择的文本编辑器中打开 policy.yaml 文件。

  3. 查看 compute.sharedReservationsOwnerProjects 限制条件。可以创建和修改共享预留的项目列在 allowedValues 字段中,如以下示例所示:

    ...
    constraint: constraints/compute.sharedReservationsOwnerProjects
    listPolicy:
      allowedValues:
      - projects/EXAMPLE_PROJECT_NUMBER1
      - projects/EXAMPLE_PROJECT_NUMBER2
      - projects/EXAMPLE_PROJECT_NUMBER3
      ...
    ...
    
  4. 可选:如需删除 policy.yaml 文件,请执行以下任一操作:

    • 如果您使用的是 Linux 或 macOS 终端,请运行以下命令:

      rm policy.yaml
      
    • 如果您使用的是 Windows 终端,请运行以下命令:

      del policy.yaml
      

修改共享预留组织政策限制条件

如需修改组织中哪些项目可以创建和修改共享预留,请选择以下选项之一:

控制台

  1. 在 Google Cloud 控制台中,转到组织政策页面。

    转到组织政策

  2. 在项目选择器中,选择要为其修改组织政策的组织。

  3. 过滤条件字段中,输入 constraints/compute.sharedReservationsOwnerProjects

  4. 名称列中,点击共享预留的所有者项目。 系统随即会显示政策详情页面。

  5. 点击 管理政策。系统随即会显示政策详情页面。

  6. 选择覆盖父资源的政策。然后,在政策执行部分中,选择您希望如何应用该政策:

    • 与父级合并:此选项会将项目级政策与组织级政策合并。任一级别允许的项目都可以创建共享预留。

    • 替换:此选项会覆盖从更高级别继承的任何政策。只有在此级别明确允许的项目才能创建共享预留。

  7. 点击 添加规则

  8. 政策值列表中,选择自定义

  9. 政策类型列表中,选择以下选项之一:

    • 如需授权一个或多个项目创建或修改共享预留,请选择允许

    • 如需禁止一个或多个项目创建或修改共享预留,请选择拒绝

  10. 自定义值字段中,输入要应用相应规则的项目编号。对于要应用相应规则的每个其他项目,请点击添加值,然后重复此步骤。

  11. 如需应用这些更改,请点击设置政策。系统会显示组织政策页面。

gcloud

如需修改 compute.sharedReservationsOwnerProjects 限制条件允许创建和修改共享预留的项目,请使用以下方法之一:

  • 如需向单个项目授予权限以创建和修改共享预留,请使用 gcloud resource-manager org-policies allow 命令。您可以为要授予此权限的每个项目重复此命令。

    gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \
        --organization=ORGANIZATION_ID
    

    替换以下内容:

  • 如需授予或撤消多个项目创建和修改共享预留的权限,请替换组织政策限制条件。为此,请完成以下步骤:

    1. 如需将组织的政策下载为名为 policy.yaml 的文件,请使用 gcloud resource-manager org-policies describe 命令

      gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects \
          --organization=ORGANIZATION_ID > policy.yaml
      
    2. 在您选择的文本编辑器中打开 policy.yaml 文件。

    3. 修改 allowedValues 字段,以列出所有可以创建和修改共享预留的项目。

      • 对于要授予权限的每个项目,请在 allowedValues 字段内的新行中添加项目编号。

      • 对于您要撤消创建和修改共享预留权限的每个项目,请从 allowedValues 字段中移除该项目编号。

      policy.yaml 文件类似于以下示例:

      ...
      constraint: constraints/compute.sharedReservationsOwnerProjects
      listPolicy:
        allowedValues:
        - projects/EXAMPLE_PROJECT_NUMBER1
        - projects/EXAMPLE_PROJECT_NUMBER2
        - projects/EXAMPLE_PROJECT_NUMBER3
        ...
      ...
      
    4. 保存 policy.yaml 文件并关闭文本编辑器。

    5. 如需更新组织的政策,请使用 gcloud resource-manager org-policies set-policy 命令

      gcloud resource-manager org-policies set-policy \
          --organization=ORGANIZATION_ID policy.yaml
      
    6. 可选:如需删除 policy.yaml 文件,请执行以下任一操作:

      • 如果您使用的是 Linux 或 macOS 终端,请运行以下命令:

        rm policy.yaml
        
      • 如果您使用的是 Windows 终端,请运行以下命令:

        del policy.yaml
        

更改最长可能需要 15 分钟才能生效。

后续步骤