개요

Google Cloud Platform(GCP) 조직 관리자는 Access Context Manager를 사용하여 GCP 프로젝트 및 리소스의 세분화된 속성 기반 액세스 제어를 정의할 수 있습니다.

관리자는 먼저 액세스 수준과 액세스 영역의 조직 전반에 걸친 컨테이너인 액세스 정책을 정의합니다.

액세스 수준은 요청을 처리하는 데 필요한 요구사항을 설명합니다. 예를 들면 다음과 같습니다.

  • 기기 유형 및 운영체제
  • IP 주소
  • 사용자 ID

액세스 영역(zone)은 해당 영역(zone) 내에서 자유롭게 데이터를 교환할 수 있지만 데이터를 영역(zone) 외부로 내보낼 수는 없는 리소스 샌드박스를 정의합니다. 액세스 영역은 현재 초대에 의해서만 사용될 수 있습니다. 애플리케이션이 허용 목록에 없는 경우에 액세스 영역(zone) API를 호출하면 오류가 발생합니다.

Access Context Manager는 정책 적용까지는 담당하지 않으며, 원하는 규칙을 설명하는 것이 목적입니다. 정책은 VPC 서비스 제어와 같은 다양한 지점에서 구성되고 적용됩니다. 이러한 서비스에 대한 자세한 내용은 해당 사용자 가이드를 참조하세요.

Access Context Manager를 사용해야 하는 이유

많은 회사들이 내부 리소스 보안을 위해 경계 보안 모델(예: 방화벽)을 사용하고 있습니다. 이 모델은 두꺼운 벽과 해자로 둘러싸여 있으며 하나의 출입구에 경비가 집중된 요새 형태인 중세 시대 성채와 비슷합니다. 벽 밖에 있는 것은 무엇이든지 위험한 것으로 간주됩니다. 안에 있는 것은 무엇이든지 신뢰할 수 있습니다.

방화벽과 경계 보안 모델은 특정 사용자와 서비스 주위에 정확한 경계가 있는 경우에 효과적입니다. 그러나 직원이 이동을 많이 하는 환경에서는 사용자가 자신의 기기(BYOD)를 가져오고 클라우드 기반 서비스를 활용하므로 기기의 다양성이 증가하게 됩니다. 이로 인해 경계 모델에서는 고려되지 않는 추가적인 공격 경로가 발생합니다. 기업의 실제 위치는 더 이상 경계가 아니며, 내부에 있는 것이 안전하다고 가정할 수 없습니다.

Access Context Manager를 사용하면 권한이 부여된 네트워크의 크기를 줄일 수 있으며, 엔드포인트가 네트워크에 따라 주변 권한을 갖지 않는 모델로 전환할 수 있습니다. 대신 필요 시 회사 네트워크 액세스 권한을 여전히 확인하면서 기기 유형 및 사용자 ID에 따라 액세스 권한을 부여할 수 있습니다.

Access Context Manager는 Google에서 펼치고 있는 BeyondCorp 이니셔티브의 일부입니다. 자세한 내용은 BeyondCorp를 참조하세요.

액세스 정책

액세스 정책은 액세스 수준의 컨테이너입니다. 단일 정책에 액세스 수준 여러 개가 포함될 수 있습니다.

Access Context Manager는 조직 전체에 적용되는 기능입니다. 액세스 정책은 할당량 지정을 위해 프로젝트 컨텍스트에서 만들지만, 해당 프로젝트뿐만 아니라 조직 내 어디에서나 이 정책을 사용할 수 있습니다.

액세스 정책을 만드는 방법은 빠른 시작을 참조하세요.

액세스 수준

액세스 수준은 출처에 따라 요청에 할당되는 일련의 속성입니다. 기기 유형, IP 주소 또는 사용자 ID와 같은 정보를 사용하면 부여할 액세스 수준을 지정할 수 있습니다. 예를 들어 회사 네트워크 내부에서 시작된 연결에는 'High_Trust' 수준을 할당하고 승인된 운영체제를 실행하는 외부 기기에는 'Medium_Trust' 수준을 할당할 수 있습니다.

액세스 수준을 정의한 후에는 적용 서비스에서 이러한 액세스 수준에 따라 요청을 처리할지 여부를 결정할 수 있습니다. 예를 들어 대부분의 리소스에 'Medium_Trust'를 요구하되, 더욱 민감한 특정 리소스에는 'High_Trust' 수준을 요구하도록 지정할 수 있습니다. 이러한 확인 작업은 표준 Cloud IAM 정책에 추가되어 적용됩니다.

액세스 수준은 맞춤설정할 수 있습니다. 'High_Trust'와 'Medium_Trust'가 그 예입니다. 액세스 정책의 일부로 액세스 수준을 여러 개 지정할 수 있습니다.

IP 주소

원래 요청의 IP 주소에 따라 액세스 수준을 부여할 수 있습니다. 허용할 IP 범위는 클래스 없는 도메인 간 라우팅(CIDR) 블록 형식으로 지정되므로, 허용되는 IP를 간단하지만 세밀하게 제어할 수 있습니다.

단일 액세스 수준에 IP 범위가 여러 개 포함될 수 있습니다.

지정된 범위의 IP 주소(예: 회사 네트워크 내의 IP 주소)에만 액세스를 허용하는 액세스 수준을 만드는 방법을 알아보려면 회사 네트워크 액세스를 위한 액세스 수준 만들기를 참조하세요.

기기 유형

Access Context Manager는 운영체제 및 버전을 비롯하여 사용자 기기에 대한 정보를 수집하기 위해 엔드포인트 확인을 사용합니다. 이 데이터를 기반으로 액세스 수준을 부여할 수 있습니다. 예를 들어, 회사에 배포된 기본 운영체제의 최신 버전을 실행하는 기기에는 보다 관대한 액세스 수준을 부여할 수 있습니다.

특정 기기에 액세스 수준을 부여하는 방법에 대한 자세한 내용은 사용자 기기를 위한 액세스 수준 만들기를 참조하세요.

사용자 ID

일부 상황에서는 특정 항목에 액세스 수준을 부여할 수 있습니다. 이런 경우에는 호출자 ID에 따라 조건 충족 여부가 결정됩니다.

이런 상황에서는 서비스 계정 및 VPC 서비스 제어가 함께 사용되는 경우가 많습니다. Cloud 함수가 VPC 서비스 제어로 보호되는 데이터에 액세스할 수 있도록 허용하는 것이 그 예입니다.

ID 전용 액세스 수준은 Google Cloud Platform Console이 아닌 gcloud 명령줄 도구를 통해서만 생성 및 관리될 수 있습니다.

ID 및 액세스 수준 작업 방법은 네트워크 액세스 수준에 ID 포함을 참조하세요.

조건 결합

단일 액세스 수준에 조건이 여러 개 포함될 수 있습니다. AND 또는 OR 연산자를 사용하여 조건을 평가할 수 있습니다. 액세스 수준을 만들거나 업데이트할 때 모드를 지정할 수 있습니다.

AND는 더 엄격한(그리고 기본값) 옵션으로, 모든 조건이 충족된 경우에만 액세스 수준을 부여합니다. 예를 들어 요청이 회사 네트워크 내부에서 그리고 최신 운영체제를 실행하는 기기에서 시작되도록 요구할 수 있습니다.

OR은 덜 제한적인 옵션으로, 여러 조건 중 하나만 참이면 됩니다. 이는 사용자 ID를 다룰 때 중요할 수 있습니다. 예를 들어 특정 항목(예: 서비스 계정)을 일반 요구사항에서 제외하는 경우가 여기에 해당합니다.

중첩 조건

한 조건이 다른 조건에 종속되도록 여러 조건을 중첩할 수 있습니다. 예를 들어 신뢰가 각각 '중간' 및 '높음'인 두 가지 액세스 수준이 있는 경우에 '높음'의 요구사항을 '중간' 및 몇 가지 다른 조건으로 설정할 수 있습니다.

조건을 중첩하면 액세스 수준을 보다 편리하게 관리할 수 있습니다. 예를 들어 가장 관대한 액세스 수준에서 최소 운영체제 버전을 지정할 때 이에 종속되는 더 제한적인 액세스 수준을 설정한다고 가정합니다. 나중에 최소 버전을 업데이트할 때 정책의 모든 액세스 수준이 아닌 단일 조건만 업데이트하면 됩니다.

자세히 알아보기