Cloud Console 및 Google Cloud API의 컨텍스트 인식 액세스는 컨텍스트 기반 규칙이 있는 Cloud Console 및 Google Cloud API에 대한 액세스를 제한합니다. 기존 BeyondCorp Enterprise 제품군(Endpoint Verification 및 Access Context Manager)을 기반으로 하며 정의된 액세스 요구사항을 충족하는 조직의 개인과 그룹이 Cloud Console과 Google Cloud APIs(Google Cloud CLI 사용 포함)에 액세스할 수 있도록 보장합니다.
이 기능은 다음 단계에 따라 설정할 수 있습니다.
- [선택사항] 조직의 기기에 Endpoint Verification을 배포합니다.
- Access Context Manager에서 액세스 수준을 만듭니다.
- BeyondCorp Enterprise 제한사항을 적용할 사용자 그룹을 만듭니다.
- 필요한 ID 및 액세스 관리 권한을 얻습니다.
- Cloud Console 및 Google Cloud APIs에 대한 컨텍스트 인식 규칙을 적용하는 액세스 binding을 만듭니다.
[선택사항] Endpoint Verification 배포
Endpoint Verification을 사용하면 조직의 데이터에 액세스하는 기기의 인벤토리를 빌드할 수 있습니다. 또한 BeyondCorp Enterprise 솔루션의 일부로 중요한 기기 신뢰 및 보안 기반 액세스 제어를 제공하며 Google Cloud 리소스에 대한 세분화된 액세스 제어를 적용할 수 있습니다.
Endpoint Verification은 Mac, Windows, Linux 사용자를 위한 데스크톱 및 노트북의 Chrome 확장 프로그램으로 실행됩니다. Google Workspace 관리 콘솔에서 조직의 회사 소유 기기에 관리자가 배포하거나 조직 구성원이 직접 설치할 수 있습니다.
액세스 수준 만들기
Access Context Manager에서 기본 액세스 수준을 만들어 Cloud Console 및 Google Cloud APIs에 대한 액세스 권한을 결정할 때 사용할 액세스 수준을 정의해야 합니다.
사용자 그룹 만들기
컨텍스트 인식 제한사항이 적용되어야 하는 사용자 그룹을 만듭니다. 조직의 구성원이기도 한 이 그룹의 모든 사용자는 Cloud Console 및 Google Cloud APIs에 액세스하려면 이전에 만든 액세스 수준을 충족해야 합니다.
필수 IAM 권한 부여
Access Context Manager 액세스 binding을 만드는 데 필요한 조직 수준에서 IAM 권한을 부여합니다.
Console
Cloud Console에서 IAM 및 관리자 페이지로 이동합니다.
추가를 클릭하고 다음을 구성하세요.
- 새 구성원: 권한을 부여할 사용자 또는 그룹을 지정합니다.
- 역할 선택: Access Context Manager > Cloud 액세스 binding 관리자를 선택합니다.
저장을 클릭합니다.
gcloud
조직 수준에서 IAM 권한을 추가할 수 있는 충분한 권한으로 인증되었는지 확인합니다. 최소한 조직 관리자 역할이 필요합니다.
올바른 권한이 있음을 확인한 후 다음으로 로그인합니다.
gcloud auth login
다음 명령어를 실행하여
GcpAccessAdmin
역할을 할당합니다.gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdmin
ORG_ID
는 조직의 ID입니다. 아직 조직 ID가 없으면 다음 명령어를 사용하여 찾을 수 있습니다.gcloud organizations list
EMAIL
은 역할을 부여할 사용자 또는 그룹의 이메일 주소입니다.
액세스 binding 만들기
이제 이전에 만든 사용자 그룹과 Cloud Console 및 Google Cloud APIs에 액세스하기 위해 정의한 Access Context Manager 액세스 수준 사이의 매핑인 액세스 binding을 만들 수 있습니다.
Console
Cloud Console에서 BeyondCorp Enterprise 페이지로 이동합니다.
조직을 선택하고 선택을 클릭합니다.
액세스 관리를 클릭하여 액세스 권한을 부여할 사용자 그룹을 선택합니다.
추가를 클릭하고 다음을 구성하세요.
- 구성원 그룹: 액세스 권한을 부여할 그룹을 지정합니다. 이미 액세스 수준에 결합되지 않은 그룹만 선택할 수 있습니다.
- 액세스 수준 선택: 그룹에 적용할 액세스 수준을 선택합니다.
저장을 클릭합니다.
gcloud
추가 플래그 옵션을 포함하여 이 명령어 및 다른 gcloud access-context-manager cloud-bindings 명령어에 대한 자세한 내용은 Google Cloud CLI를 참조하세요.
gcloud access-context-manager cloud-bindings create \
--group-key GROUP_ID \
--level ACCESS_LEVEL \
--organization ORG_ID
GROUP_ID
를 이전에 만든 사용자 그룹의 그룹 ID로 바꿉니다.ACCESS_LEVEL
은accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
형식입니다.POLICY_ID
및ACCESS_LEVEL_NAME
의 값은 액세스 수준을 만들 때 Access Context Manager에서 확인할 수 있습니다.access-context-manager/organization 속성이 미리 설정되지 않은 경우 선택사항인
--organization
플래그의ORG_ID
를GcpAccessAdmin
역할을 만들 때 사용한 조직의 ID로 바꿉니다.
API
요청 본문을 작성합니다.
{ "groupKey": "GROUP_ID", "accessLevels": [ "ACCESS_LEVEL" ] }
GROUP_ID
를 이전에 만든 사용자 그룹의 그룹 ID로 바꿉니다.ACCESS_LEVEL
은accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME
형식입니다.POLICY_ID
및ACCESS_LEVEL_NAME
의 값은 액세스 수준을 만들 때 Access Context Manager에서 확인할 수 있습니다.
gcpUserAccessBindings
엔드포인트를 호출하고ORG_ID
를GcpAccessAdmin
역할을 만들 때 사용한 조직의 ID로 바꿔 액세스 binding을 만듭니다.POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
그러면
GcpUserAccessBinding
리소스가 응답으로 반환되며 형식은 다음과 같습니다.{ // Unique name for the access binding, in the form // "organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID" name: string, // Unique Group ID. group_key: string, // The access level that users of the group must satisfy, in the form // "accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME" access_levels: [ string ] }
성공 여부 확인
사용자 그룹에 액세스 binding이 설정되면 binding 액세스 수준의 만족도를 기준으로 Cloud Console 및 Google Cloud APIs에 대한 액세스를 제어해야 합니다.
binding이 만들어졌는지 확인하거나 수정하거나 삭제할 수 있습니다.
Console
액세스 binding을 만들면 조직의 모든 액세스 binding이 표시되고 필요에 따라 수정 또는 삭제할 수 있습니다.
gcloud
조직의 모든 액세스 binding을 보려면 다음 안내를 따르세요.
gcloud access-context-manager cloud-bindings list \ --organization ORG_ID
access-context-manager/organization 속성이 미리 설정되지 않은 경우 선택사항인
--organization
플래그의ORG_ID
를GcpAccessAdmin
역할을 만들 때 사용한 조직의 ID로 바꿉니다.액세스 binding을 수정하려면(예: 액세스 수준 변경) 다음 안내를 따르세요.
gcloud access-context-manager cloud-bindings update \ --binding ACCESS_BINDING \ --level ACCESS_LEVEL
ACCESS_BINDING
을organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME
으로 바꿉니다. 여기서ORG_ID
는GcpAccessAdmin
역할을 만들 때 사용한 조직의 ID이고ACCESS_BINDING_NAME
은 액세스 binding이 만들어졌을 때name
식별자에 반환된 고유 문자열입니다.ACCESS_LEVEL
값은 리소스의 binding을 만든 때와 같이 형식을 지정해야 합니다.특정 액세스 binding을 삭제하려면 다음 안내를 따르세요.
gcloud access-context-manager cloud-bindings delete \ --binding ACCESS_BINDING
액세스 binding 수정에 설명된 대로 동일한 방식으로
ACCESS_BINDING
의 값 형식을 지정합니다.
API
조직의 모든 액세스 binding을 보려면 다음 안내를 따르세요.
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
그러면
GcpUserAccessBinding
리소스 목록이 반환됩니다.액세스 수준 변경과 같은 액세스 binding을 수정하려면 변경사항을 정의하는 요청 본문을 만든 다음 리소스의 이름을 사용하여 엔드포인트를 호출합니다.
{ "accessLevels": [ "ACCESS_LEVEL" ] }
리소스에 대한 binding을 만든 때와 같이
ACCESS_LEVEL
값의 형식을 지정합니다.PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels
ACCESS_BINDING_NAME
을 액세스 binding이 만들어졌을 때name
식별자에 반환된 고유한 문자열로 바꿉니다.특정
GcpUserAccessBinding
리소스를 삭제하려면 리소스의 이름으로 엔드포인트를 호출합니다.DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
ACCESS_BINDING_NAME
을 액세스 binding이 만들어졌을 때name
식별자에 반환된 고유한 문자열로 바꿉니다.
자주 묻는 질문(FAQ)
새로 생성된 액세스 binding이 적용되는 데 얼마나 걸리나요?
최대 24시간이 걸릴 수 있습니다.
액세스 binding이 있는 그룹을 삭제하면 어떻게 되나요?
그룹과 binding이 삭제되고 그룹의 모든 사용자에게 액세스가 허용됩니다.
액세스 binding에 사용된 액세스 수준을 삭제하면 어떻게 되나요?
액세스 수준은 충족될 수 없으며 binding 그룹의 모든 사용자가 거부됩니다.
사용자가 액세스 binding이 있는 여러 그룹에 속한 경우 어떻게 되나요?
사용자는 해당 그룹 중 하나의 액세스 수준만 충족해도 액세스 권한이 부여됩니다.
내 조직에 속하지 않은 사용자는 어떻게 되나요?
조직에 속하지 않은 사용자는 컨텍스트 인식 제한사항을 적용할 사용자 그룹에 추가되더라도 액세스 binding이 적용되지 않습니다.
다음 단계
- BeyondCorp Enterprise의 감사 로그에 대한 자세한 내용은 감사 로깅을 참조하세요.
- 관리자 작업에 대해 로깅되는 API 작업의 요약을 포함하여 Admin Context Manager의 감사 로깅에 대한 자세한 내용은 Access Context Manager 감사 로깅 정보를 참조하세요.