리소스 사용량 제한

이 페이지에서는 Google Cloud 리소스 계층 구조 내에서 사용할 수 있는 Google Cloud 서비스를 제어하도록 허용하는 리소스 서비스 사용량 제한 조직 정책 제약조건을 간략하게 설명합니다. 제약조건은 조직, 폴더 또는 프로젝트 리소스의 직접 하위 요소인 리소스가 있는 서비스에만 적용될 수 있습니다. 예를 들면 Compute Engine 및 Cloud Storage입니다.

리소스 서비스 사용량 제한 제약조건은 Google Cloud의 필수 종속 항목인 특정 서비스(예: Identity and Access Management(IAM), Cloud Logging, Cloud Monitoring)를 제외하며 작동하지 않습니다. 이 제약조건에서 지원되는 클라우드 리소스 서비스 목록은 리소스 사용량 지원 서비스 제한을 참조하세요.

관리자는 이 제약조건을 사용하여 조직, 폴더 또는 프로젝트와 같은 리소스 컨테이너 내에서 허용된 Google Cloud 리소스 서비스에 대한 계층적 제한사항을 정의할 수 있습니다. 예를 들어 프로젝트 X 내에서 storage.googleapis.com을 허용하거나 폴더 Y 내에서 compute.googleapis.com을 거부합니다.

리소스 서비스 사용량 제한 제약조건은 두 가지 상호 배타적인 방식으로 사용될 수 있습니다.

  • 차단 목록 - 거부되지 않은 모든 서비스의 리소스가 허용됩니다.

  • 허용 목록 - 허용되지 않는 모든 서비스의 리소스가 거부됩니다.

리소스 서비스 사용량 제한 제약조건은 범위 내 모든 리소스에 대한 런타임 액세스를 제어합니다. 이 제약조건이 포함된 조직 정책이 업데이트되면 정책 범위 내의 모든 리소스에 대한 모든 액세스에 즉시 적용되고 eventual consistency를 가집니다.

관리자는 이 제약조건이 포함된 조직 정책 업데이트를 신중하게 관리하는 것이 좋습니다. 태그를 사용하여 제약조건을 조건부로 시행하면 이 정책 변경사항을 더욱 안전하게 출시할 수 있습니다. 자세한 내용은 태그를 사용하여 조직 정책 설정을 참조하세요.

서비스가 이 정책에 의해 제한되면 제한된 서비스에 대한 직접 종속 항목이 있는 일부 Google Cloud 서비스도 제한됩니다. 이는 같은 고객 리소스를 관리하는 서비스에만 적용됩니다. 예를 들어 Google Kubernetes Engine(GKE)에는 Compute Engine에 대한 종속 항목이 있습니다. Compute Engine이 제한되면 GKE도 제한됩니다.

리소스 서비스 사용량 제한 제약조건 사용

조직 정책 제약조건은 조직, 폴더, 프로젝트 수준에서 설정할 수 있습니다. 각 정책은 해당 리소스 계층 구조 내 모든 리소스에 적용되지만 리소스 계층 구조의 하위 수준에서 재정의될 수 있습니다.

정책 평가에 대한 자세한 내용은 계층 구조 평가 이해를 참조하세요.

조직 정책 설정

조직 정책을 설정, 변경 또는 삭제하려면 조직 정책 관리자 역할이 있어야 합니다.

콘솔

리소스 서비스 사용량 제한 제약조건을 포함하는 조직 정책을 설정하려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 조직 정책 페이지로 이동합니다.

    조직 정책으로 이동

  2. 프로젝트 선택 도구에서 조직 정책을 설정할 리소스를 선택합니다.

  3. 조직 정책 표에서 리소스 서비스 사용량 제한을 선택합니다.

  4. 정책 관리를 클릭합니다.

  5. 적용 대상에서 상위 정책 재정의를 선택합니다.

  6. 정책 시행에서 이 정책에 상속을 적용하는 방법을 선택합니다.

    1. 상위 리소스의 조직 정책을 상속하고 이 리소스와 병합하려면 상위 요소와 병합을 선택합니다.

    2. 기존 조직 정책을 재정의하려면 바꾸기를 선택합니다.

  7. 규칙 추가를 클릭합니다.

  8. 정책 값에서 커스텀을 선택합니다.

  9. 정책 유형에서 차단 목록에 거부 또는 허용 목록에 허용을 선택합니다.

  10. 커스텀 값에서 차단하거나 허용할 서비스를 목록에 추가합니다.

    1. 예를 들어 Cloud Storage를 차단하려면 storage.googleapis.com을 입력합니다.

    2. 더 많은 서비스를 추가하려면 값 추가를 클릭합니다.

  11. 정책을 시행하려면 정책 설정을 클릭합니다.

gcloud

Google Cloud CLI를 통해 조직 정책을 설정할 수 있습니다. 리소스 서비스 사용량 제한 제약조건이 포함된 조직 정책을 시행하려면 먼저 업데이트할 정책이 포함된 YAML 파일을 만듭니다.

name: organizations/ORGANIZATION_ID/policies/gcp.restrictServiceUsage
spec:
   rules:
   - values:
       deniedValues:
       - file.googleapis.com
       - bigquery.googleapis.com
       - storage.googleapis.com

ORGANIZATION_ID를 조직 리소스의 ID로 바꿉니다. 리소스에 이 정책을 설정하려면 다음 명령어를 실행합니다.

gcloud beta resource-manager org-policies set-policy \
  --project='PROJECT_ID' /tmp/policy.yaml

PROJECT_ID를 이 조직 정책을 적용할 리소스의 프로젝트 ID로 바꿉니다.

조직 정책의 제약조건을 사용하는 방법은 제약조건 사용을 참조하세요.

태그가 지정되지 않은 리소스 제한

태그 및 조건부 조직 정책을 사용하여 특정 태그를 사용하지 않는 모든 리소스를 제한할 수 있습니다. 서비스를 제한하는 리소스에 대해 조직 정책을 설정하고 태그가 있는 상태에서 조건부로 만들면 태그가 지정되지 않은 경우 해당 리소스의 하위 리소스를 사용할 수 없습니다. 이렇게 하려면 사용할 수 있도록 거버넌스 계획에 따라 리소스를 설정해야 합니다.

태그가 지정되지 않은 조직, 폴더, 프로젝트 리소스를 제한하려면 조직 정책을 만들 때 조건부 쿼리에 ! 논리 연산자를 사용하면 됩니다.

예를 들어 sqladmin=enabled 태그가 있는 프로젝트에서만 sqladmin.googleapis.com을 사용하도록 허용하려면 sqladmin=enabled 태그가 없는 프로젝트에서 sqladmin.googleapis.com을 거부하는 조직 정책을 만들면 됩니다.

  1. 리소스에 적절한 거버넌스가 적용되었는지 여부를 식별하는 태그를 만듭니다. 예를 들어 키가 sqlAdmin이고 값이 enabled인 태그를 만들어 이 리소스가 Cloud SQL Admin API의 사용을 허용하도록 지정할 수 있습니다. 예를 들면 다음과 같습니다.

    태그 키 및 값 만들기

  2. 새로 생성된 태그의 이름을 클릭합니다. 다음 단계에서 조건을 만들려면 태그 키 경로 아래에 나열된 태그 키의 네임스페이스 이름이 필요합니다.

  3. 조직 리소스 수준에서 리소스 서비스 사용량 제한 조직 정책을 만들어 Cloud SQL Admin API에 대한 액세스를 거부합니다. 예를 들면 다음과 같습니다.

    리소스를 제한하는 조직 정책 만들기

  4. 위 조직 정책에 조건을 추가하고 거버넌스 태그가 없으면 정책이 시행되도록 지정합니다. 논리 NOT 연산자는 조건 작성 도구에서 지원되지 않으므로 이 조건은 조건 편집기에서 빌드해야 합니다. 예를 들면 다음과 같습니다.

    조건부 조직 정책 빌드

    !resource.matchTag("012345678901/sqlAdmin", "enabled")

이제 개발자가 해당 프로젝트에서 Cloud SQL Admin API를 사용하려면 먼저 sqlAdmin=enabled 태그를 프로젝트에 연결하거나 프로젝트에서 상속해야 합니다.

조건부 조직 정책을 만드는 방법에 대한 자세한 내용은 태그를 사용하여 조직 정책 설정을 참조하세요.

테스트 실행 모드에서 조직 정책 만들기

테스트 실행 모드의 조직 정책은 정책 위반이 감사 로그로 작성되지만 위반 작업이 거부되지 않는 조직 정책 유형입니다. 리소스 서비스 사용량 제한 제약조건을 사용하여 테스트 실행 모드에서 조직 정책을 만들면 실시간 정책을 시행하기 전에 정책이 조직에 미치는 영향을 모니터링할 수 있습니다. 자세한 내용은 테스트 실행 모드에서 조직 정책 만들기를 참조하세요.

오류 메시지

리소스 계층 구조 B 내에서 서비스 A를 거부하는 조직 정책을 설정하는 경우 클라이언트에서 리소스 계층 구조 B 내에서 서비스 A를 사용하려고 하면 작업이 실패합니다. 이 실패 이유를 설명하는 오류가 반환됩니다. 또한 추가 모니터링, 알림 또는 디버깅을 위해 감사 로그 항목이 생성됩니다.

오류 메시지 예

Request is disallowed by organization's constraints/gcp.restrictServiceUsage
constraint for projects/PROJECT_ID attempting to use service
storage.googleapis.com.

Cloud 감사 로그 예시

예시 감사 로그 항목의 스크린샷