应用工作负载更新
本页面介绍了如何为 Assured Workloads 文件夹启用、查看和应用工作负载更新。Assured Workloads 会定期使用新 设置和一般改进(例如更新后的组织政策 限制条件值)更新其 控制软件包。借助此功能,您可以根据最新的可用配置评估当前的 Assured Workloads 文件夹配置,并选择应用任何建议的更新。
默认情况下,此功能会自动为新的 Assured Workloads 文件夹启用。对于现有文件夹,我们强烈建议 您按照以下步骤启用工作负载更新。
此功能不会产生任何额外费用,也不会影响 行为 Assured Workloads 监控; 无论是否有可用的配置更新,当您的文件夹不符合其 当前配置时,您仍会收到提醒。
工作负载更新概览
创建新的 Assured Workloads 文件夹时,您选择的 控制软件包类型(例如 FedRAMP 中等风险级别)决定了应用于工作负载的各种配置 设置。其中一些设置以组织政策限制条件的形式在外部可见,而另一些设置仅适用于 Google 的内部系统。Assured Workloads 使用内部配置版本控制系统来维护每种控制软件包类型的更改。
当新的内部配置版本可用时,Assured Workloads 会将工作负载的配置与新的内部版本进行比较。系统会对所有差异进行分析,并将生成的增强功能作为更新提供给您,您可以将其应用于工作负载的配置。当此类增强功能包含对新服务的支持时,该服务所需的任何组织政策限制条件也可能会应用于您的工作负载。
Google 已验证可用的 Assured Workloads 更新是否符合工作负载控制软件包的要求。但是,您仍有责任查看每个可用更新,以验证其是否符合组织的法规或合规性要求。如需了解详情,请参阅 Assured Workloads 中的 责任共担 。
支持的更新类型
借助此功能,您可以查看 Assured Workloads 文件夹并应用以下类型的更新:
组织政策限制条件:适用于您的工作负载且由 Assured Workloads 强制执行的任何组织政策限制条件都可以包含在工作负载更新中,但以下情况除外:
gcp.resourceLocationsgcp.restrictCmekCryptoKeyProjects
控制软件包发布阶段:仅当给定控制软件包与您首次部署时处于同一发布阶段时,此功能才支持查看和应用更新。例如,如果您在控制软件包处于“预览版”发布阶段时为其部署工作负载,并且该控制软件包稍后正式发布,则必须先使用正式版重新部署工作负载,然后才能应用更新。如果您不重新部署工作负载,则在尝试应用更新后可能会遇到错误或违规情况。
准备工作
- 确定要为其启用更新的 Assured Workloads 文件夹的资源 ID。
- 在目标 Assured Workloads 文件夹和工作负载上分配或验证 IAM 权限。
必需的 IAM 权限
如需启用、查看或应用工作负载更新,必须使用以下方法之一向调用者授予
IAM 权限:
预定义角色(包含一组更广泛的权限)或
自定义角色(限制为必要的最少
权限)。请注意,必需的 orgpolicy.policy.set 权限无法在自定义角色中使用。
必须拥有以下权限:
- 针对目标工作负载的
assuredworkloads.workload.update权限,用于启用更新。此权限包含在 Assured Workloads Editor (roles/assuredworkloads.editor) 和 Assured Workloads Admin (roles/assuredworkloads.admin) 预定义角色中。 - 针对目标工作负载的
assuredworkloads.updates.list权限,用于查看可用更新。此权限包含在 Assured Workloads Reader (roles/assuredworkloads.reader)、 Assured Workloads Editor (roles/assuredworkloads.editor)、 和 Assured Workloads Admin (roles/assuredworkloads.admin) 预定义角色中。 - 针对目标工作负载的
assuredworkloads.updates.update权限,用于应用可用更新。此权限包含在 Assured Workloads Editor (roles/assuredworkloads.editor)、 和 Assured Workloads Admin (roles/assuredworkloads.admin) 预定义角色中。 - 针对目标工作负载的
assuredworkloads.operations.get权限,用于获取更新操作的状态和结果。此权限包含在 Assured Workloads Reader (roles/assuredworkloads.reader)、 Assured Workloads Editor (roles/assuredworkloads.editor)、 和 Assured Workloads Admin (roles/assuredworkloads.admin) 预定义角色中。 - 针对目标文件夹的
orgpolicy.policy.get权限,用于应用可用更新。此 权限包含在 Organization Policy Viewer (roles/orgpolicy.policyViewer) 和 Organization Policy Administrator (roles/orgpolicy.policyAdmin) 预定义角色中。 - 针对目标文件夹的
orgpolicy.policy.set权限,用于应用可用更新。自定义角色不支持此 权限,但 Organization Policy Administrator (roles/orgpolicy.policyAdmin) 预定义角色包含此权限。 - 针对目标文件夹的
resourcemanager.folders.getIamPolicy和resourcemanager.folders.setIamPolicy权限,用于启用更新。这些权限包含在 Folder IAM Admin (roles/resourcemanager.folderIamAdmin) 角色和其他高度宽松的预定义角色中。
启用工作负载更新
启用工作负载更新后,系统会创建
Assured Workloads Service Agent
。然后,系统会向此服务代理授予目标 Assured Workloads 文件夹的
Assured Workloads Service Agent (roles/assuredworkloads.serviceAgent)
角色。借助此角色,服务代理可以检查文件夹中是否有任何可用更新。
如需启用工作负载更新,请完成以下步骤:
控制台
在 Google Cloud 控制台中,前往 Assured Workloads 页面。
在页面顶部的合规性更新简介 窗格中,点击启用合规性更新 。
在系统提示启用合规性更新?时,点击启用。
现在,您的组织中的所有 Assured Workloads 文件夹都已启用工作负载更新。
REST
借助
enableComplianceUpdates
方法,Assured Workloads 可以向您通知
单个 Assured Workloads 文件夹的更新。
HTTP 方法、网址和查询参数:
PUT https://[ENDPOINT_URI]/v1/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:Assured Workloads 文件夹的组织 ID,例如
919698201234。 - LOCATION_ID:Assured Workloads
文件夹的位置,例如
us-west1或us。它与工作负载的data region值相对应。 - WORKLOAD_ID:要为其启用更新的 Assured Workloads 工作负载的 ID,例如
00-701ea036-7152-4780-a867-9f5。
例如:
PUT https://us-west1-assuredworkloads.googleapis.com/v1/organizations/919698298765/locations/us-west1/workloads/00-701ea036-7152-4781-a867-9f5:enableComplianceUpdates查看工作负载更新
如需查看工作负载更新,请完成以下步骤:
控制台
在 Google Cloud 控制台中,前往 Assured Workloads 页面。
在名称 列中,点击要查看其更新的 Assured Workloads 文件夹的名称。或者,如果文件夹有可用更新,请点击更新 列中的链接。
在可用更新下,点击查看可用更新。
如果有可用的组织政策更新,则会在组织政策 标签页中显示。查看受影响的组织政策限制条件,然后点击查看更新 以预览更新将应用的限制条件设置。
REST
借助
organizations.locations.workloads.updates.list
方法,您可以列出 Assured Workloads 工作负载的可用更新。
HTTP 方法、网址和查询参数:
GET https://[ENDPOINT_URI]/v1/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:Assured Workloads 文件夹的组织 ID,例如
919698201234。 - LOCATION_ID:Assured Workloads
文件夹的位置,例如
us-central1或us。它与工作负载的data region值相对应。 - WORKLOAD_ID:要为其列出可用更新的 Assured Workloads 工作负载的 ID,例如
00-701ea036-7152-4780-a867-9f5。 - PAGE_SIZE(可选):限制响应中返回的更新数量。
如果未指定,则默认值设置为
20。最大值为100。 - PAGE_TOKEN(可选):当有一个或多个页面可用时,
系统会在 JSON 响应中返回下一页的令牌,例如
nextPageToken": "chEKD4IBDAid1e-3BhCo68f6AQ。如果未指定,则不会返回后续页面。
例如:
GET https://us-central1-assuredworkloads.googleapis.com/v1/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" }
应用工作负载更新
向工作负载应用工作负载更新是一项长时间运行的操作。如果在开始操作后和完成操作之前工作负载配置发生更改,则可能会发生错误。
此外,系统还会根据最新的可用配置定期重新评估工作负载更新。在这种情况下,您应用更新后可能会立即有其他更新可用。
如需应用工作负载更新,请完成以下步骤:
控制台
在 Google Cloud 控制台中,前往 Assured Workloads 页面。
在名称 列中,点击要查看其更新的 Assured Workloads 文件夹的名称。或者,如果文件夹有可用更新,请点击更新 列中的链接。
在可用更新下,点击查看可用更新。
如果有可用的组织政策更新,则会在组织政策 标签页中显示。查看受影响的组织政策限制条件,然后点击查看更新 以预览更新后的限制条件设置。
点击更新组织政策 以应用更新。
长时间运行的更新操作开始,文件夹的新组织政策设置将应用。
REST
借助
organizations.locations.workloads.updates.apply
方法,您可以为 Assured Workloads
工作负载应用指定的更新。
HTTP 方法、网址和查询参数:
POST https://[ENDPOINT_URI]/v1/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:Assured Workloads 文件夹的组织 ID,例如
919698201234。 - LOCATION_ID:Assured Workloads
文件夹的位置,例如
us-central1或us。它与工作负载的data region值相对应。 - WORKLOAD_ID:要为其列出可用更新的 Assured Workloads 工作负载的 ID,例如
00-701ea036-7152-4780-a867-9f5。 - UPDATE_ID:要应用的更新的 ID,从
方法返回的可用更新列表中选择,例如
edb84871-833b-45ec-9c00-c9b5c19d2d87。organizations.locations.workloads.updates.list
请求正文:
{ "name":"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/workloads/[WORKLOAD_ID]/updates/[UPDATE_ID]", "action": "APPLY" }
例如:
POST https://us-central1-assuredworkloads.googleapis.com/v1/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.v1.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.v1.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.v1.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 } } } } } } }