对服务边界进行批量更改

使用 Access Context Manager,可以对属于您的组织的访问权限政策的资源进行批量更新,例如访问权限级别服务边界。仅当批量操作的所有部分都成功时,才应用对资源的更改。

本主题仅介绍批量替换服务边界。如需详细了解如何批量替换访问权限级别,请参阅 Access Access Context Manager 文档

准备工作

由于批量操作会影响组织的所有服务边界,因此您可以获取完整的边界列表。此外,您还可以将此列表的格式设置为 YAML,并使用该列表批量更改边界。

如需获取设置了格式的服务边界列表,请参阅列出服务边界(已设置格式)

批量替换服务边界

以下部分详细介绍了如何批量替换服务边界。

gcloud

如需批量替换所有服务边界,请使用 replace-all 命令。

gcloud access-context-manager perimeters replace-all POLICY_NAME \
  --source-file=FILE \
  --etag=ETAG \

其中:

  • POLICY_NAME 是您组织的访问权限政策名称。只有在未设置默认访问权限政策的情况下,才需要指定此值。

  • FILE 是定义现有服务边界的新设置的 .yaml 文件的名称。

    例如:

    - name: accessPolicies/11271009391/servicePerimeters/storage_perimeter
      title: Storage Perimeter
      description: Perimeter to protect Storage resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - storage.googleapis.com
    - name: accessPolicies/11271009391/servicePerimeters/bigquery_perimeter
      title: BigQuery Perimeter
      description: Perimeter to protect BigQuery resources.
      perimeterType: PERIMETER_TYPE_REGULAR
      status:
        restrictedServices:
        - bigquery.googleapis.com
    

    如需详细了解如何设置 YAML 文件的格式,请参阅 Access Context Manager 的 ServicePerimeterConfig 对象的 JSON 结构。

  • ETAG(可选)是一个字符串,表示您的组织的访问权限政策的目标版本。如果不添加 etag,则批量操作将针对您的组织的访问权限政策的最新版本。

    如需获取访问权限政策的最新 etag,请通过 list 列出您的访问权限政策

API

如需批量替换所有服务边界,请调用 servicePerimeters.replaceAll

POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/servicePerimeters.replaceAll?alt=json

其中:

  • POLICY_NAME 是您的组织的访问权限政策的名称。

请求正文

请求正文必须包含 ServicePerimeterConfig 对象的列表,这些对象指定要进行的更改。

(可选)如需针对您的组织的访问权限政策的特定版本,可以添加 etag。如果不添加 etag,则批量操作将针对您的组织的访问权限政策的最新版本。

例如:

{
  "servicePerimeters": [
    object (ServicePerimeterConfig),
    object (ServicePerimeterConfig),
    ...
  ]
  "etag": string
}

响应正文

如果成功,调用的响应正文将包含一个 Operation 资源,用于提供与 post 操作相关的详细信息。

示例响应:

{
  "name": "operations/accessPolicies/11271009391/replacePerimeters/1583523447707087",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceServicePerimetersResponse",
    "servicePerimeters": [
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "Storage Perimeter",
        "description": "Perimeter to protect Storage resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/corpnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      },
      {
        "name": "accessPolicies/11271009391/servicePerimeters/storage_perimeter",
        "title": "BigQuery Perimeter",
        "description": "Perimeter to protect BigQuery resources.",
        "status": {
          "accessLevels": [
            "accessPolicies/11271009391/accessLevels/prodnet_access"
          ],
          "restrictedServices": [
            "bigtable.googleapis.com"
          ]
        }
      }
    ]
  }
}