Access Context Manager를 사용하면 액세스 수준 및 서비스 경계와 같이 조직의 액세스 정책에 속하는 리소스를 일괄 업데이트할 수 있습니다. 일괄 작업의 모든 부분이 성공한 경우에만 리소스 변경사항이 적용됩니다.
이 주제에서는 서비스 경계의 일괄 교체만 설명합니다. 액세스 수준의 일괄 교체에 대한 자세한 내용은 Access Context Manager 문서를 참조하세요.
서비스 경계 목록 가져오기
일괄 작업은 조직의 모든 서비스 경계에 영향을 주므로 경계의 전체 목록을 가져올 수 있습니다. 또한 이 목록을 YAML 형식으로 지정하고 이를 사용하여 경계를 일괄 변경할 수 있습니다.
형식이 지정된 서비스 경계 목록을 가져오려면 서비스 경계 나열(형식 지정됨)을 참조하세요.
replace-all
명령어로 모든 서비스 경계 구성을 재정의할 때는 경계 내에 etag
필드를 설정하면 안 됩니다. 경계를 가져오고 업데이트하는 간에 e태그가 변경될 수 있으므로 replace-all
명령어에서 e태그 불일치 오류가 반환될 수 있습니다. 그러나 etag 확인을 적용하려면 최상위 --etag
매개변수를 사용하여 전체 replace-all
요청에 etag
를 설정할 수 있습니다.
경계 내의 각 etag
속성을 수동으로 삭제하는 대신 etag
를 제외한 모든 필드가 포함된 --format
를 지정하여 etag
속성 없이 경계를 가져올 수 있습니다.
gcloud access-context-manager perimeters list \ --policy=POLICY_NAME \ --format="json(name,title,description,perimeterType,status,spec,useExplicitDryRunSpec)"
서비스 경계 일괄 바꾸기
다음 섹션에서는 서비스 경계를 대량으로 바꾸는 방법을 자세히 설명합니다.
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
리소스가 포함됩니다.
응답 예시:
{
"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"
]
}
}
]
}
}