이 페이지에서는 기존 액세스 수준을 관리하는 방법을 설명합니다. 다음과 같은 작업을 할 수 있습니다.
시작하기 전에
Google Cloud CLI를 사용하기 위한 기본 액세스 정책을 설정합니다.
-또는-
정책 이름 가져오기. gcloud CLI를 사용하고 API를 호출하는 명령어에는 정책 이름이 필요합니다. 기본 액세스 정책을 설정하면 gcloud CLI에 정책을 지정할 필요가 없습니다.
조직 수준에서 액세스 수준을 관리할 수 있게 해주는 Identity and Access Management(IAM) 역할이 있는지 확인합니다. 관리자에게 다음 역할 중 하나 또는 동일한 권한을 갖는 커스텀 역할을 부여하도록 요청합니다.
액세스 수준 보기: Access Context Manager 리더(
roles/accesscontextmanager.policyReader)액세스 수준을 보기 및 변경: Access Context Manager 편집자(
roles/accesscontextmanager.policyEditor) 또는 Access Context Manager 관리자(roles/accesscontextmanager.policyAdmin)
액세스 수준 나열
콘솔
모든 액세스 수준을 나열하려면 Google Cloud 콘솔에서 Access Context Manager 페이지를 열고 메시지가 표시되면 조직을 선택합니다. 이 페이지에는 각 액세스 수준의 구성 세부정보와 함께 조직의 액세스 수준이 그리드에 표시됩니다.
gcloud
list 명령어를 사용하여 모든 액세스 수준을 나열할 수 있습니다.
gcloud access-context-manager levels list \ [--policy=POLICY_NAME]
다음을 바꿉니다.
POLICY_NAME: 조직의 액세스 정책 이름입니다. 이 값은 기본 액세스 정책을 설정하지 않은 경우에만 필요합니다.
출력은 다음과 비슷합니다.
NAME TITLE LEVEL_TYPE Device_Trust Device_Trust Extended Basic Service_Group_A Service_Group_A Basic
API
정책의 모든 액세스 수준을 나열하려면 accessLevels.list를 호출합니다.
GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels
다음을 바꿉니다.
POLICY_NAME: 조직의 액세스 정책 이름입니다.
요청 본문
요청 본문은 비어 있어야 합니다.
선택적 매개변수
선택적으로 다음 쿼리 매개변수 중 하나 이상을 포함합니다.
| 매개변수 | |
|---|---|
pageSize
|
기본적으로 이 매개변수를 사용하면 페이지별로 반환되는 액세스 수준의 수를 수정할 수 있습니다. |
pageToken
|
호출에서 반환된 액세스 수준 수가 페이지 크기를 초과하면 응답 본문에 페이지 토큰이 포함됩니다. 후속 호출에서 이 매개변수를 사용하면 결과의 다음 페이지를 가져올 수 있습니다. |
accessLevelFormat
|
일반적으로 액세스 수준은
이 매개변수 값을 |
응답 본문
호출이 성공하면 호출의 응답 본문에 액세스 수준을 나열하는 AccessLevels 객체와 nextPageToken 문자열이 포함됩니다. nextPageToken은 반환된 액세스 수준 수가 페이지 크기를 초과한 경우에만 값을 갖습니다. 그렇지 않으면 nextPageToken은 빈 문자열로 반환됩니다.
액세스 수준 나열(형식 지정됨)
gcloud CLI를 사용하여 YAML 또는 JSON 형식으로 액세스 수준 목록을 가져올 수 있습니다.
형식이 지정된 액세스 수준 목록을 가져오려면 list 명령어를 사용합니다.
gcloud access-context-manager levels list \ --format=FORMAT \ [--policy=POLICY_NAME]
다음을 바꿉니다.
FORMAT: 다음 값 중 하나입니다.list(YAML 형식)json(JSON 형식)
POLICY_NAME: 조직의 액세스 정책 이름입니다. 이 값은 기본 액세스 정책을 설정하지 않은 경우에만 필요합니다.
YAML 출력은 다음과 비슷합니다.
- basic: {'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]} description: Level for corp access. name: accessPolicies/123456789012/accessLevels/corp_level title: Corp Level - basic: {'combiningFunction': 'OR', 'conditions': [{'ipSubnetworks': ['192.0.2.0/24']}]} description: Level for net access. name: accessPolicies/123456789012/accessLevels/net_level title: Net Level
JSON 출력은 다음과 비슷합니다.
[ { "basic": { "conditions": [ { "ipSubnetworks": [ "192.0.2.0/24" ] } ] }, "description": "Level for corp access.", "name": "accessPolicies/123456789012/accessLevels/corp_level", "title": "Corp Level" }, { "basic": { "combiningFunction": "OR", "conditions": [ { "ipSubnetworks": [ "192.0.2.0/24" ] } ] }, "description": "Level for net access.", "name": "accessPolicies/123456789012/accessLevels/net_level", "title": "Net Level" } ]
액세스 수준 설명
콘솔
Google Cloud 콘솔에서 액세스 수준을 나열하는 단계를 참조하세요. 액세스 수준을 나열하면 나타나는 그리드에서 세부정보가 제공됩니다.
gcloud
액세스 수준을 나열하면 해당 이름, 제목, 수준 유형만 제공됩니다. 특정 수준의 기능이 무엇인지 자세히 알아보려면 describe 명령어를 사용합니다.
gcloud access-context-manager levels describe LEVEL_NAME \ [--policy=POLICY_NAME]
다음을 바꿉니다.
LEVEL_NAME: 설명하려는 액세스 수준의 이름입니다.POLICY_NAME: 조직의 액세스 정책 이름입니다. 이 값은 기본 액세스 정책을 설정하지 않은 경우에만 필요합니다.
이 명령어를 실행하면 수준에 대한 정보가 YAML 형식으로 출력됩니다. 예를 들어 해당 수준에서 액세스를 특정 운영체제 버전으로 제한하면 출력은 다음과 비슷합니다.
basic: conditions: - devicePolicy: allowedEncryptionStatuses: - ENCRYPTED osConstraints: - minimumVersion: 10.13.6 osType: DESKTOP_MAC - minimumVersion: 10.0.18219 osType: DESKTOP_WINDOWS - minimumVersion: 68.0.3440 osType: DESKTOP_CHROME_OS requireScreenlock: true name: accessPolicies/123456789012/accessLevels/Device_Trust title: Device_Trust Extended
API
액세스 수준을 나열하면 수준의 이름, 제목, 유형만 제공됩니다.
액세스 수준에 대해 자세히 알아보려면 accessLevels.get을 호출합니다.
GET https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
다음을 바꿉니다.
POLICY_NAME: 조직의 액세스 정책 이름입니다.LEVEL_NAME: 설명하려는 액세스 수준의 이름입니다.
요청 본문
요청 본문은 비어 있어야 합니다.
선택적 매개변수
원하는 경우 accessLevelFormat 쿼리 매개변수를 포함합니다. 일반적으로 액세스 수준은 BasicLevel 또는 CustomLevel 중 하나로 정의된 대로 반환됩니다.
이 매개변수 값을 CEL로 지정하면 Cloud Common Expression Language에서 BasicLevels를 CustomLevels로 반환할 수 있습니다.
응답 본문
호출이 성공하면 호출의 응답 본문에 액세스 수준의 기능, 마지막으로 수준이 업데이트된 시간 등에 대한 세부정보가 있는 AccessLevel 리소스가 포함됩니다.
액세스 수준 업데이트
이 섹션에서는 개별 액세스 수준을 업데이트하는 방법을 설명합니다. 한 번의 작업으로 모든 조직의 액세스 수준을 업데이트하려면 액세스 수준 일괄 변경을 참조하세요.
콘솔
액세스 수준을 업데이트하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Access Context Manager 페이지를 엽니다.
메시지가 표시되면 조직을 선택합니다.
그리드에서 업데이트할 액세스 수준 이름을 클릭합니다.
액세스 수준 편집 창에서 액세스 수준을 변경합니다.
추가 또는 수정할 수 있는 속성의 전체 목록은 액세스 수준 속성을 참조하세요.
저장을 클릭합니다.
기존 조건 업데이트 또는 수정 이외에도 새 조건을 추가하고 기존 조건에 새 속성을 추가할 수 있습니다.
gcloud
update 명령어를 사용하여 액세스 수준을 업데이트할 수 있습니다.
기본 액세스 수준:
gcloud access-context-manager levels update LEVEL_NAME \ --basic-level-spec=FILE \ [--policy=POLICY_NAME]
커스텀 액세스 수준:
gcloud access-context-manager levels update LEVEL_NAME \ --custom-level-spec=FILE \ [--policy=POLICY_NAME]
다음을 바꿉니다.
LEVEL_NAME: 업데이트하려는 액세스 수준의 이름입니다.FILE: 액세스 수준의 조건 (기본 액세스 수준의 경우) 또는 단일 불리언 값으로 확인되는 CEL 표현식 (커스텀 액세스 수준의 경우)을 정의하는 YAML 파일의 이름입니다.기본 액세스 수준 조건에서 사용할 수 있는 속성의 전체 목록은 액세스 수준 속성을 참조하세요.
POLICY_NAME: 조직의 액세스 정책 이름입니다. 이 값은 기본 액세스 정책을 설정하지 않은 경우에만 필요합니다.다음 옵션 중 하나 이상을 포함할 수 있습니다.
옵션 combine-function이 옵션은 기본 액세스 수준에만 사용됩니다.
조건 결합 방법을 지정합니다.
유효한 값:
AND,ORdescription긴 형식으로 된 액세스 수준의 설명입니다.
title짧은 형식으로 된 액세스 수준 제목입니다. 액세스 수준 제목은 Google Cloud 콘솔에 표시됩니다.
gcloud-wide 플래그를 포함할 수 있습니다.
명령어 예
gcloud access-context-manager levels update Device_Trust \ --basic-level-spec=corpdevspec.yaml \ --combine-function=OR \ --description='Access level that conforms to updated corporate spec.' \ --title='Device_Trust Extended' \ --policy=123456789012
API
액세스 수준을 업데이트하려면 accessLevels.patch를 호출합니다.
PATCH https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME?updateMask=FIELDS
다음을 바꿉니다.
POLICY_NAME: 조직의 액세스 정책 이름입니다.LEVEL_NAME: 업데이트하려는 액세스 수준의 이름입니다.FIELDS: 업데이트 중인 정규화된 필드 이름의 쉼표로 구분된 목록입니다.
요청 본문
요청 본문에는 액세스 수준에 적용할 변경사항을 지정하는 AccessLevel 리소스가 포함되어야 합니다.
응답 본문
호출이 성공하면 호출의 응답 본문에 패치 작업에 대한 세부정보를 제공하는 Operation 리소스가 포함됩니다.
액세스 수준 삭제
이 섹션에서는 Access Context Manager 액세스 수준을 삭제하는 방법을 설명합니다. 액세스 수준을 삭제하는 과정은 다음 두 단계로 구성됩니다.
액세스 수준 종속 항목 확인
액세스 수준을 삭제하기 전에 다른 액세스 수준, VPC 서비스 제어 서비스 경계, Google Workspace 컨텍스트 인식 액세스 정책, Google Cloud 액세스 바인딩 또는 IAM 조건에서 참조되지 않는지 확인합니다.
삭제하려는 액세스 수준을 참조하는 모든 액세스 수준을 찾으려면 다음을 수행합니다.
jq가 설치되어 있는지 확인합니다.jq가 설치되었는지 확인하려면jq --version를 실행합니다. 필요한 경우jq를 설치합니다.액세스 수준 종속 항목을 확인합니다. 이 명령어는 모든 액세스 수준을 나열한 다음
jq를 사용하여 기본 또는 커스텀 수준 정의에서LEVEL_NAME를 참조하는 액세스 수준을 필터링합니다.echo "Searching for Access Levels referencing: accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME" echo "" gcloud access-context-manager levels list \ --policy="POLICY_NAME" \ --format=json | \ jq -r ' .[] | select( # Check basic levels: Is the target access level present as an element in any requiredAccessLevels array? ([(.basic.conditions // [])[] | (.requiredAccessLevels // []) | index("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") != null] | any) or # Check custom levels: Does the expression string contain the target access level? ((.custom.expr.expression // "") | (contains("accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME") or contains("levels.LEVEL_NAME"))) ) | " - \(.title) (Name: \(.name))" ' echo "" echo "If any levels are listed, they reference LEVEL_NAME. You must update these referencing levels before you delete LEVEL_NAME."
다음을 바꿉니다.
POLICY_NAME: 조직의 액세스 정책 이름입니다. 이 값은 기본 액세스 정책을 설정하지 않은 경우에만 필요합니다.LEVEL_NAME: 삭제하려는 액세스 수준의 이름입니다(예:my_level).
출력에는
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME또는levels.LEVEL_NAME를 참조하는 모든 액세스 수준이title및name와 함께 나열됩니다. 이러한 액세스 수준에는 다음이 포함됩니다.기본 수준(
accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME가requiredAccessLevels에 나열됨)custom.expr.expression문자열에accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME또는levels.LEVEL_NAME가 나열된 맞춤 수준
명령어가 참조 액세스 수준을 나열하는 경우 먼저 해당 수준을 업데이트하여 종속 항목을 삭제해야 합니다. 자세한 내용은 액세스 수준 업데이트를 참조하세요.
모든 참조가 삭제되면 개별 액세스 수준을 삭제할 수 있습니다.
개별 액세스 수준 삭제
콘솔
액세스 수준을 삭제하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 Access Context Manager 페이지를 엽니다.
메시지가 표시되면 조직을 선택합니다.
그리드에서 삭제할 액세스 수준의 행에 있는 버튼을 클릭합니다.
삭제를 클릭합니다.
대화상자가 나타나면 액세스 수준을 삭제할지 확인합니다.
gcloud
액세스 수준을 삭제하려면 다음 단계를 따르세요.
delete명령어를 사용하여 액세스 수준을 삭제합니다.gcloud access-context-manager levels delete LEVEL_NAME \ [--policy=POLICY_NAME]
다음을 바꿉니다.
LEVEL_NAME: 삭제하려는 액세스 수준의 이름입니다.POLICY_NAME: 조직의 액세스 정책 이름입니다. 이 값은 기본 액세스 정책을 설정하지 않은 경우에만 필요합니다.
액세스 수준을 삭제할지 확인합니다.
예를 들면 다음과 같습니다.
You are about to delete level Device_Trust Do you want to continue (Y/n)?
다음과 비슷한 출력이 표시됩니다.
Waiting for operation [accessPolicies/123456789012/accessLevels/Device_Trust/delete/1531171874311645] to complete...done. Deleted level [Device_Trust].
API
액세스 수준을 삭제하려면 accessLevels.delete를 호출합니다.
DELETE https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME
다음을 바꿉니다.
POLICY_NAME: 조직의 액세스 정책 이름입니다.LEVEL_NAME: 삭제할 액세스 수준의 이름입니다.
요청 본문
요청 본문은 비어 있어야 합니다.
응답 본문
호출이 성공하면 호출의 응답 본문에 삭제 작업에 대한 세부정보를 제공하는 Operation 리소스가 포함됩니다.