액세스 수준 일괄 변경

Access Context Manager를 사용하면 액세스 수준서비스 경계와 같이 조직의 액세스 정책에 속하는 리소스를 일괄 업데이트할 수 있습니다.

일괄 작업의 모든 부분이 성공한 경우에만 리소스 변경사항이 적용됩니다. 예를 들어 일괄 작업이 서비스 경계에서 사용 중인 액세스 수준을 제거하려고 하면 오류가 발생합니다. 오류가 발생하면 전체 작업이 실패하고 리소스가 업데이트되지 않습니다.

이 주제에서는 액세스 수준 일괄 바꾸기만 설명합니다. 서비스 경계 일괄 바꾸기에 대한 자세한 내용은 VPC 서비스 제어 문서를 참조하세요.

시작하기 전에

일괄 작업은 조직의 모든 액세스 수준에 영향을 미치므로 액세스 수준의 전체 목록을 가져올 수 있습니다. 이 목록의 형식은 YAML로 되어있어 액세스 수준을 더 쉽게 일괄 변경할 수 있습니다.

형식이 지정된 액세스 수준 목록을 가져오려면 액세스 수준(형식 지정됨) 나열을 참조하세요.

액세스 수준 일괄 바꾸기

다음 섹션에서는 액세스 수준을 일괄적으로 바꾸는 방법을 자세히 설명합니다.

gcloud

모든 액세스 수준을 일괄적으로 바꾸려면 replace-all 명령어를 사용합니다.

gcloud access-context-manager levels replace-all \
  --source-file=FILE \
  --etag=ETAG \
  [--policy=POLICY_NAME]

여기에서

  • FILE은 기존 액세스 수준의 새로운 조건을 정의하는 .yaml 파일의 이름입니다.

    예:

    - name: accessPolicies/11271009391/accessLevels/corpnet_access
      title: Corpnet Access
      description: Permit access to corpnet.
      basic:
        combiningFunction: AND
        conditions:
          - ipSubnetworks:
            - 252.0.2.0/24
            - 2001:db8::/32
    - name: accessPolicies/11271009391/accessLevels/prodnet_access
      title: Prodnet Access
      description: Permit access to prodnet.
      basic:
        combiningFunction: OR
        conditions:
          - members:
            - user:exampleuser@example.com
            - serviceAccount:exampleaccount@example.iam.gserviceaccount.com
          - ipSubnetworks:
            - 176.0.2.0/24
    

    YAML 조건 구조의 추가 예시는 YAML 파일 예시를 참조하세요.

  • ETAG(선택사항)는 조직 액세스 정책의 대상 버전을 나타내는 문자열입니다. ETag를 포함하지 않으면 일괄 작업은 최신 버전의 조직 액세스 정책을 타겟팅합니다.

    액세스 정책의 최신 ETag와 list 액세스 정책을 가져옵니다.

  • POLICY_NAME은 조직의 액세스 정책 이름입니다. 이 값은 기본 액세스 정책을 설정하지 않은 경우에만 필요합니다.

API

모든 액세스 수준을 일괄적으로 바꾸려면 accessLevels.replaceAll에 문의하세요.

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

여기에서

  • POLICY_NAME은 조직의 액세스 정책 이름입니다.

요청 본문

요청 본문에는 변경사항을 지정하는 AccessLevel 객체 목록이 포함되어야 합니다.

원하는 경우 ETag를 포함하여 특정 버전의 조직 액세스 정책을 타겟팅할 수 있습니다. ETag를 포함하지 않으면 일괄 작업은 최신 버전의 조직 액세스 정책을 타겟팅합니다.

예:

{
  "accessLevels": [
    object (AccessLevel),
    object (AccessLevel),
    ...
  ]
  "etag": string
}

응답 본문

호출이 성공하면 호출의 응답 본문에 게시 작업에 대한 세부정보를 제공하는 Operation 리소스가 포함됩니다.

응답 예:

{
  "name": "operations/accessPolicies/11271009391/replaceLevels/1583523446234255",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceAccessLevelsResponse",
    "accessLevels": [
      {
        "name": "accessPolicies/11271009391/accessLevels/corpnet_access",
        "title": "Corpnet access",
        "description": "Permit access to corpnet.",
        "basic": {
          "conditions": [
            {
              "ipSubnetworks": [
                "252.0.2.0/24"
              ]
            }
          ]
        }
      },
      {
        "name": "accessPolicies/11271009391/accessLevels/prodnet_access",
        "title": "Prodnet access",
        "description": "Permit access to prodnet.",
        "basic": {
          "conditions": [
            {
              "ipSubnetworks": [
                "176.0.2.0/24"
              ]
            }
          ]
        }
      }
    ]
  }
}