使用 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"
]
}
}
]
}
}