管理嵌套虚拟化限制条件


本文档介绍了如何检查嵌套虚拟化是否已启用,以及如何修改用于控制是否为组织、项目或文件夹启用嵌套虚拟化的布尔值限制条件。

组织政策中的布尔值限制条件决定了如何创建嵌套虚拟机。嵌套虚拟化的布尔值限制条件是一种限制,这意味着实施该规则时,它会指示组织政策限制嵌套虚拟机的创建。如需详细了解布尔值限制条件,请参阅了解限制条件

默认情况下,系统不会强制执行停用虚拟机嵌套虚拟化限制条件,因此您不必修改任何布尔值限制条件即可启用嵌套虚拟化。即便如此,Google 也建议您明确设置限制条件的值,以便您的组织、文件夹和项目不依赖于默认设置。如果您的项目不从属于某个组织,则默认情况下系统不会强制执行限制条件,并且您不能更改限制条件。

准备工作

  • 设置身份验证(如果尚未设置)。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以按如下方式向 Compute Engine 进行身份验证。

    选择标签页以了解您打算如何使用本页面上的示例:

    控制台

    当您使用 Google Cloud 控制台访问 Google Cloud 服务和 API 时,无需设置身份验证。

    gcloud

    1. 安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init
    2. 设置默认区域和可用区

    REST

    如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。

      安装 Google Cloud CLI,然后通过运行以下命令初始化 Google Cloud CLI:

      gcloud init

检查是否允许嵌套虚拟化

使用 Google Cloud 控制台、Google Cloud CLI 或 REST 检查组织、文件夹或项目是否允许嵌套虚拟化。

控制台

通过检查是否未强制执行停用嵌套虚拟化的布尔值限制条件,查看是否可以在组织、文件夹或项目中创建嵌套虚拟机。如果组织政策未强制执行停用虚拟机嵌套虚拟化限制条件,则可以创建嵌套虚拟机。

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

    转到组织政策

  2. 在组织、文件夹和项目选择器中,选择要查看其组织政策的实体。

  3. 选择停用虚拟机嵌套虚拟化限制条件以打开政策详情页面。

  4. 查看强制执行的值:

    • 如果该值为未强制执行,则系统会启用嵌套虚拟化,并且您可以创建嵌套虚拟机。

    • 如果该值为已强制执行,则系统会停用嵌套虚拟化,并且您不能创建嵌套虚拟机。

gcloud

使用 gcloud resource-manager org-policies describe 命令检查 compute.disableNestedVirtualization 布尔值限制条件的值。

如果 Google Cloud CLI 输出未显示 booleanPolicy 的值,则允许嵌套虚拟化,您可以创建嵌套虚拟机。

如果 booleanPolicy 的 Google Cloud CLI 输出值为 enforced: true,则组织政策强制执行停用嵌套虚拟化限制条件,您无法创建嵌套虚拟机。

gcloud resource-manager org-policies \
  describe constraints/compute.disableNestedVirtualization \
  (--organization=ORGANIZATION_ID | --folder=FOLDER_ID |
  --project=PROJECT_ID) --effective

请准确替换以下各项之一:

REST

使用 REST 检查 compute.disableNestedVirtualization 布尔值限制条件的值,该值决定了您是否可以在组织、文件夹或项目中创建嵌套虚拟机。

如果 REST 响应没有为限制条件返回 "booleanPolicy" 的值,则系统不会停用嵌套虚拟化,并且您可以创建嵌套虚拟机。

如果输出中 "booleanPolicy" 的值为 "enforced": true,则系统会停用嵌套虚拟化,并且您不能创建嵌套虚拟机。

POST https://cloudresourcemanager.googleapis.com/v1/RESOURCE/RESOURCE_ID:getOrgPolicy

{
  "constraint": "compute.disableNestedVirtualization"
}

请替换以下内容:

修改嵌套虚拟化组织政策

如果您拥有适当的角色,则可以控制组织、文件夹或项目是否能够创建嵌套虚拟机。可以使用嵌套虚拟化的布尔值限制条件来控制这一强制执行情况。

使用 Google Cloud 控制台、Google Cloud CLI 或 REST 为组织、文件夹或项目启用嵌套虚拟化。

控制台

如需启用嵌套虚拟化,请停用停用虚拟机嵌套虚拟化布尔值限制条件的强制执行;如需停用嵌套虚拟化,请启用布尔值限制条件的强制执行。

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

    转到组织政策

  2. 在组织、文件夹和项目选择器中,选择要修改其组织政策的实体。

  3. 选择停用虚拟机嵌套虚拟化限制条件以打开政策详情页面。

  4. 点击修改,然后选择自定义

  5. 强制执行下,为停用虚拟机嵌套虚拟化布尔值限制条件选择以下强制执行选项之一:

    • 开启:启用强制执行并停用嵌套虚拟化
    • 关闭:停用强制执行并启用嵌套虚拟化
  6. 点击保存

gcloud

使用 gcloud resource-manager org-policies 命令启用或停用 compute.disableNestedVirtualization 组织政策布尔值限制条件的强制执行。

如果您使用 disable-enforce 命令停用 compute.disableNestedVirtualization 限制条件,则可以创建启用了嵌套虚拟化的虚拟机。

如果您使用 enable-enforce 命令启用限制条件,则无法创建启用了嵌套虚拟化的虚拟机。

gcloud resource-manager org-policies \
  ( disable-enforce | enable-enforce ) compute.disableNestedVirtualization \
  (--organization=ORGANIZATION_ID | --folder=FOLDER_ID |
  --project=PROJECT_ID)

请准确替换以下各项之一:

REST

使用 REST 修改 compute.disableNestedVirtualization 布尔值限制条件的值,该值决定了您是否可以在组织、文件夹或项目中创建嵌套虚拟机。

POST https://cloudresourcemanager.googleapis.com/v1/RESOURCE/RESOURCE_ID:setOrgPolicy

{
  "policy": {
    "booleanPolicy": {
      "enforced": ENFORCE
    },
    "constraint": "constraints/compute.disableNestedVirtualization"
  }
}

替换以下内容:

  • RESOURCE:要修改组织政策的资源。请将此项设置为以下任一项:

  • RESOURCE_ID:要检查其停用嵌套虚拟化限制条件的状态的组织、文件夹或项目

  • ENFORCE:确定组织政策是否强制执行 compute.disableNestedVirtualization 布尔值限制条件。设置为以下其中一项:

    • true:强制执行限制条件。使用此设置时,您无法创建已启用嵌套虚拟化的虚拟机。

    • false:不强制执行限制条件。通过此设置,您可以创建已启用嵌套虚拟化的虚拟机。

后续步骤