应用工作负载更新

本页介绍了如何为 Assured Workloads 文件夹启用、查看和应用工作负载更新。Assured Workloads 会定期更新其控制包,以提供新设置和一般改进,例如更新后的组织政策约束条件值。借助此功能,您可以根据最新可用配置评估当前的 Assured Workloads 文件夹配置,并选择应用任何建议的更新。

默认情况下,系统会自动为新的“受保工作负载”文件夹启用此功能。对于现有文件夹,我们强烈建议您按照相应步骤启用工作负载更新

此功能不会产生任何额外费用,也不会影响 Assured Workloads Monitoring 的行为;无论是否有配置更新可用,当文件夹不符合其当前配置时,您仍会收到提醒。

工作负载更新概览

创建新的 Assured Workloads 文件夹时,您选择的控制包类型(例如 FedRAMP 中等)决定了系统对您的工作负载应用的各种配置设置。其中一些设置以组织政策限制的形式对外公开显示,但另一些设置仅适用于 Google 的内部系统。Assured Workloads 使用内部配置版本控制系统来维护每个控制包类型的更改。

当有新的内部配置版本可用时,可确保工作负载正常运行的功能会将工作负载的配置与新的内部版本进行比较。系统会分析所有差异,并将获得的增强功能作为更新提供给您,以便您将其应用于工作负载的配置。

可用的 Assured Workloads 更新已通过 Google 验证,符合工作负载控制包的要求。不过,您仍有责任检查每项可用更新,确保其符合贵组织的法规或合规性要求。如需了解详情,请参阅 Assured Workloads 中的共担责任

支持的更新类型

此功能支持在 Assured Workloads 文件夹中查看和应用以下类型的更新:

  • 组织政策限制条件:适用于您的工作负载且由 Assured Workloads 强制执行的任何组织政策限制条件都可以包含在工作负载更新中,但以下情况除外:

    • gcp.resourceLocations
    • gcp.restrictCmekCryptoKeyProjects

准备工作

  • 确定要为其启用更新的 Assured Workloads 文件夹的资源 ID。
  • 对目标 Assured Workloads 文件夹和工作负载分配或验证 IAM 权限

必需的 IAM 权限

如需启用、查看或应用工作负载更新,必须使用以下方法之一向调用者授予 IAM 权限:预定义角色(包含一组更广泛的权限)或自定义角色(限制为必要的最少权限)。请注意,必需的 orgpolicy.policy.set 权限无法在自定义角色中使用。

必须拥有以下权限:

启用工作负载更新

启用工作负载更新后,系统会创建 Assured Workloads 服务代理。然后,系统会向此服务代理授予目标 Assured Workloads 文件夹的 Assured Workloads Service Agent (roles/assuredworkloads.serviceAgent) 角色。借助此角色,服务代理可以检查文件夹是否有任何可用更新。

如需启用工作负载更新,请完成以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往 Assured Workloads 页面。

    转到 Assured Workloads

  2. 在页面顶部的介绍合规性更新窗格中,点击启用合规性更新

  3. 当系统提示启用合规性更新?时,请点击启用

现在,您组织中的所有 Assured Workloads 文件夹都已启用工作负载更新。

REST

借助 enableComplianceUpdates 方法,Assured Workloads 可以通知您单个 Assured Workloads 文件夹的更新。

HTTP 方法、网址和查询参数:

PUT https://[ENDPOINT_URI]/v1beta1/organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]:enableComplianceUpdates

将以下占位符值替换为您自己的值:

  • ENDPOINT_URI:Assured Workloads 服务端点 URI。此 URI 必须是与目标工作负载位置匹配的端点,例如,对于 us-west1 区域中的区域化工作负载,使用 https://us-west1-assuredworkloads.googleapis.com;对于美国境内的多区域工作负载,使用 https://us-assuredworkloads.googleapis.com
  • ORGANIZATION_ID:“受保工作负载”文件夹的组织 ID,例如 919698201234
  • LOCATION_ID:Assured Workloads 文件夹的位置,例如 us-west1us。它对应于工作负载的 data region 值。
  • WORKLOAD_ID:要为其启用更新的 Assured Workloads 工作负载的 ID,例如 00-701ea036-7152-4780-a867-9f5

例如:

PUT https://us-west1-assuredworkloads.googleapis.com/v1beta1/organizations/919698298765/locations/us-west1/workloads/00-701ea036-7152-4781-a867-9f5:enableComplianceUpdates

查看工作负载更新

如需查看工作负载更新,请完成以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往 Assured Workloads 页面。

    转到 Assured Workloads

  2. 名称列中,点击要查看更新的“可靠工作负载”文件夹的名称。或者,如果该文件夹有可用更新,请点击更新列中的链接。

  3. 可用更新下,点击查看可用更新

  4. 组织政策更新(如果有)会显示在组织政策标签页中。查看受影响的组织政策限制条件,然后点击查看更新以预览更新将应用的限制条件设置。

REST

organizations.locations.workloads.updates.list 方法会列出 Assured Workloads 工作负载的可用更新。

HTTP 方法、网址和查询参数:

GET https://[ENDPOINT_URI]/v1beta1/organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]/updates?page_size=[PAGE_SIZE]&page_token=[PAGE_TOKEN]

将以下占位符值替换为您自己的值:

  • ENDPOINT_URI:Assured Workloads 服务端点 URI。此 URI 必须是与目标工作负载位置匹配的端点,例如,对于 us-central1 区域中的区域性工作负载,使用 https://us-central1-assuredworkloads.googleapis.com;对于美国境内的多区域工作负载,使用 https://us-assuredworkloads.googleapis.com
  • ORGANIZATION_ID:“受保工作负载”文件夹的组织 ID,例如 919698201234
  • LOCATION_ID:Assured Workloads 文件夹的位置,例如 us-central1us。它对应于工作负载的 data region 值。
  • WORKLOAD_ID:要为其列出可用更新的 Assured Workloads 工作负载的 ID,例如 00-701ea036-7152-4780-a867-9f5
  • PAGE_SIZE(可选):限制响应中返回的更新数量。如果未指定,则默认值设为 20。最大值为 100
  • PAGE_TOKEN(可选):如果有 1 个或多个页面可用,JSON 响应中会返回下一页的令牌,例如 nextPageToken": "chEKD4IBDAid1e-3BhCo68f6AQ。如果未指定,则不会返回后续页面。

例如:

GET https://us-central1-assuredworkloads.googleapis.com/v1beta1/organizations/919698298765/locations/us-west1/workloads/00-701ea036-7152-4781-a867-9f5/updates

如果成功,您会收到类似于以下示例的 JSON 响应:

{
  "workloadUpdates": [
    {
      "name": "organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/5320de45-6c98-41af-b4a0-2ef930b124c3",
      "state": "AVAILABLE",
      "createTime": "2024-10-01T16:33:10.154368Z",
      "updateTime": "2024-10-01T16:33:10.154368Z",
      "details": {
        "orgPolicyUpdate": {
          "appliedPolicy": {
            "resource": "folders/376585579673",
            "constraint": "constraints/gcp.resourceLocations",
            "rule": {
              "values": {
                "allowedValues": [
                  "us-central1",
                ]
              }
            }
          },
          "suggestedPolicy": {
            "resource": "folders/376585579673",
            "constraint": "constraints/gcp.resourceLocations",
            "rule": {
              "values": {
                "allowedValues": [
                  "us-central1",
                  "us-central2",
                  "us-west1",
                ]
              }
            }
          }
        }
      }
    }
  ],
  "nextPageToken": "chEKD4IBDAid1e-3BhCo68f6AQ"
}

应用工作负载更新

对工作负载应用工作负载更新是一项长时间运行的操作。如果您的工作负载配置在启动操作后且在操作完成之前发生更改,则可能会发生错误。

此外,系统会根据最新可用配置定期重新评估工作负载更新。在这种情况下,您应用更新后可能立即会收到其他更新。

如需应用工作负载更新,请完成以下步骤:

控制台

  1. 在 Google Cloud 控制台中,前往 Assured Workloads 页面。

    转到 Assured Workloads

  2. 名称列中,点击要查看更新的“可靠工作负载”文件夹的名称。或者,如果该文件夹有可用更新,请点击更新列中的链接。

  3. 可用更新下,点击查看可用更新

  4. 组织政策更新(如果有)会显示在组织政策标签页中。查看受影响的组织政策限制条件,然后点击查看更新以预览更新后的限制条件设置。

  5. 点击更新组织政策以应用更新。

系统会开始执行长时间运行的更新操作,并应用文件夹的新组织政策设置。

REST

organizations.locations.workloads.updates.apply 方法会为 Assured Workloads 工作负载应用指定的更新。

HTTP 方法、网址和查询参数:

POST https://[ENDPOINT_URI]/v1beta1/organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]/updates/[UPDATE_ID]:apply

将以下占位符值替换为您自己的值:

  • ENDPOINT_URI:Assured Workloads 服务端点 URI。此 URI 必须是与目标工作负载位置匹配的端点,例如,对于 us-central1 区域中的区域性工作负载,使用 https://us-central1-assuredworkloads.googleapis.com;对于美国境内的多区域工作负载,使用 https://us-assuredworkloads.googleapis.com
  • ORGANIZATION_ID:“受保工作负载”文件夹的组织 ID,例如 919698201234
  • LOCATION_ID:Assured Workloads 文件夹的位置,例如 us-central1us。它对应于工作负载的 data region 值。
  • WORKLOAD_ID:要为其列出可用更新的 Assured Workloads 工作负载的 ID,例如 00-701ea036-7152-4780-a867-9f5
  • UPDATE_ID:要应用的更新的 ID,从 organizations.locations.workloads.updates.list 方法返回的可用更新列表中选择,例如 edb84871-833b-45ec-9c00-c9b5c19d2d87

请求正文:

{
  "name":"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]/updates/[UPDATE_ID]",
  "action": "APPLY"
}

例如:

POST https://us-central1-assuredworkloads.googleapis.com/v1beta1/organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/edb84871-833b-45ec-9c00-c9b5c19d2d87:apply

{
  "name": "organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/edb84871-833b-45ec-9c00-c9b5c19d2d87",
  "action": "APPLY"
}

如果成功,您会收到类似于以下示例的 JSON 响应:

{
  "name": "organizations/919698298765/locations/us-central1/operations/647b1c77-b9a5-45d2-965e-70a1e867fe5b",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.assuredworkloads.v1beta1.ApplyWorkloadUpdateOperationMetadata",
    "update_name": "organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/edb84871-833b-45ec-9c00-c9b5c19d2d87",
    "create_time": "2024-10-01T14:34:30.290896Z",
    "action": "APPLY"
  }
}

如需获取长时间运行的更新操作的状态,请使用 JSON 响应中的 name 值中的操作 ID。使用上一个示例,操作 ID 为 647b1c77-b9a5-45d2-965e-70a1e867fe5b。然后,发出以下请求,将占位符值替换为您自己的值:

GET https://[ENDPOINT_URI]/v1/organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/operations/[OPERATION_ID]

例如:

GET https://us-central1-assuredworkloads.googleapis.com/v1/organizations/919698298765/locations/us-central1/operations/647b1c77-b9a5-45d2-965e-70a1e867fe5b

如果成功,您会收到类似于以下示例的 JSON 响应:

{
  "name": "organizations/919698298765/locations/us-central1/operations/647b1c77-b9a5-45d2-965e-70a1e867fe5b",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.assuredworkloads.v1beta1.ApplyWorkloadUpdateOperationMetadata",
    "updateName": "organizations/919698298765/locations/us-central1/workloads/00-701ea036-7152-4781-a867-9f5/updates/edb84871-833b-45ec-9c00-c9b5c19d2d87",
    "createTime": "2024-10-01T13:33:09Z"
    "action": "APPLY"
  },
  "done": true
  "response": {
    "@type": "type.googleapis.com/google.cloud.assuredworkloads.v1beta1.ApplyWorkloadUpdateResponse",
    "appliedUpdate": {
      "name": "organizations/531459884741/locations/us-central1/workloads/00-0b328e90-da70-431e-befc-a4a/updates/db556beb-ce66-4260-bd3b-28115f1ec300",
      "state": "APPLIED",
      "createTime": "2024-10-01T14:31:24.310323Z",
      "updateTime": "2024-10-01T14:34:30.855792Z",
      "details": {
        "orgPolicyUpdate": {
          "appliedPolicy": {
            "resource": "folders/196232301850",
            "constraint": "constraints/compute.disableInstanceDataAccessApis",
            "rule": {
              "enforce": true
            }
          },
          "suggestedPolicy": {
            "resource": "folders/196232301850",
            "constraint": "constraints/compute.disableInstanceDataAccessApis",
            "rule": {
              "enforce": false
            }
          }
        }
      }
    }
  }
}