CMEK 조직 정책

Google Cloud에서는 조직 내 CMEK 사용을 보장하기 위해 두 가지 조직 정책 제약조건이 사용됩니다.

  • constraints/gcp.restrictNonCmekServices는 CMEK 보호를 요구하기 위해 사용됩니다.
  • constraints/gcp.restrictCmekCryptoKeyProjects는 CMEK 보호에 사용되는 Cloud KMS 키를 제한하기 위해 사용됩니다.

CMEK 조직 정책은 지원되는 Google Cloud 서비스 내에서 새로 생성된 리소스에만 적용됩니다.

CMEK 보호 요구

조직에 CMEK 보호를 요구하려면 constraints/gcp.restrictNonCmekServices 조직 정책을 구성합니다.

목록 제약조건으로서 이 제약조건에 허용되는 값은 Google Cloud 서비스 이름입니다(예: sqladmin.googleapis.com). Google Cloud 서비스 이름 목록을 구성하고 제약조건을 거부로 설정하여 구성된 서비스에서 CMEK를 사용하지 않는 리소스 만들기를 거부할 수 있습니다. 즉, Cloud KMS 키를 지정하지 않으면 서비스에서 리소스 만들기 요청이 실패합니다. 이 제약조건은 지원되는 서비스에만 적용될 수 있습니다.

CMEK에 대한 Cloud KMS 키 사용 제한

CMEK 보호를 위해 사용되는 Cloud KMS 키를 제한하려면 constraints/gcp.restrictCmekCryptoKeyProjects 제약조건을 구성합니다.

목록 제약조건으로서 허용되는 값은 리소스 계층 구조 표시기입니다(예: projects/PROJECT_ID, under:folders/FOLDER_ID, under:organizations/ORGANIZATION_ID). 리소스 계층 구조 표시기 목록을 구성하고 제약조건을 허용으로 설정하면 CMEK 보호를 위해 나열된 프로젝트, 폴더, 조직에서 허용된 키만 사용할 수 있도록 지원되는 서비스를 제한할 수 있습니다. 허용되는 프로젝트, 폴더, 조직 중 하나에서 Cloud KMS 키를 지정하지 않으면 구성된 서비스에서 CMEK 보호 리소스를 만들려는 요청이 실패합니다. 구성된 경우에는 이 제약조건이 모든 지원되는 서비스에 적용됩니다.

지원되는 서비스

서비스 CMEK 요구 시의 제약조건 값
Cloud Bigtable bigtable.googleapis.com
Cloud Composer composer.googleapis.com
Compute Engine compute.googleapis.com
Google Kubernetes Engine container.googleapis.com
Dataflow dataflow.googleapis.com
Cloud Logging logging.googleapis.com
Pub/Sub pubsub.googleapis.com
Cloud Spanner spanner.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com

리소스 유형별 적용 예외

CMEK 조직 정책 제약조건은 새 리소스를 만들 때나 기존 리소스의 Cloud KMS 키를 변경할 때(지원되는 경우) 적용됩니다. 일반적으로는 CMEK를 지원하는 서비스의 모든 리소스 유형에 적용되며 리소스의 구성만을 기준으로 합니다. 다음과 같은 몇 가지 예외에 주의하시기 바랍니다.

리소스 유형 적용 예외
compute.googleapis.com/Instance 구성된 부팅 디스크를 기반으로 적용됩니다.
logging.googleapis.com/LogBucket 명시적으로 생성된 로그 버킷에 적용됩니다. 기본 제공 로그 버킷의 규정 준수를 확인하는 데 필요한 별도 구성도 참조하세요.
storage.googleapis.com/Bucket (미리보기) 버킷의 기본 Cloud KMS 키에 적용되며, 버킷의 기본 Cloud KMS 키를 업데이트할 때 및 Cloud 콘솔을 통해 버킷을 만들 때 적용됩니다.
storage.googleapis.com/Object 버킷과 독립적으로 적용됩니다. 버킷 기본 Cloud KMS 키의 별도 구성도 참조하세요.

구성 예

구성 예시에서는 샘플 조직의 리소스 계층 구조가 다음과 같다고 가정합니다.

조직 리소스 계층 구조의 다이어그램

CMEK 요구 및 프로젝트의 키 제한

projects/5 아래의 모든 Cloud Storage 리소스에 대해 CMEK 보호를 요구하고 projects/4의 키만 사용되도록 보장한다고 가정해보세요.

모든 새로운 Cloud Storage 리소스에 CMEK 보호를 요구하려면 다음 조직 정책 설정을 사용합니다.

  • 조직 정책: constraints/gcp.restrictNonCmekServices
  • 바인딩 위치: projects/5
  • 정책 유형: 거부
  • 정책 값: storage.googleapis.com

projects/4의 키만 사용되도록 다음 구성을 사용합니다.

  • 조직 정책: constraints/gcp.restrictCmekCryptoKeyProjects
  • 바인딩 위치: projects/5
  • 정책 유형: 허용
  • 정책 값: projects/4

CMEK 요구 및 폴더 내부로 키 제한

또는 이후에 folders/2의 Cloud KMS 프로젝트를 더 추가하고 보다 포괄적으로 folders/3 내에서 CMEK를 요구해야 한다고 가정해보세요. 이 시나리오에서는 약간 다른 구성이 필요합니다.

folders/3 아래의 어디에서든 새 Cloud SQL 및 Cloud Storage 리소스에 대해 추가 CMEK 보호를 요구하려면 다음 안내를 따르세요.

  • 조직 정책: constraints/gcp.restrictNonCmekServices
  • 바인딩 위치: folders/3
  • 정책 유형: 거부
  • 정책 값: sqladmin.googleapis.com, storage.googleapis.com

folders/2 아래의 Cloud KMS 프로젝트의 키만 사용되도록 보장하려면 다음 안내를 따르세요.

  • 조직 정책: constraints/gcp.restrictCmekCryptoKeyProjects
  • 바인딩 위치: folders/3
  • 정책 유형: 허용
  • 정책 값: under:folders/2

조직에 CMEK 요구

조직 어디에서든 CMEK를 요구하려면(지원되는 서비스) 다음 설정을 사용해서 constraints/gcp.restrictNonCmekServices 제약조건을 구성합니다.

  • 조직 정책: constraints/gcp.restrictNonCmekServices
  • 바인딩 위치: organizations/1
  • 정책 유형: 거부
  • 정책 값: (모든 지원되는 서비스)

제한사항

Cloud Console을 사용하여 리소스를 만들려면 프로젝트 및 서비스에 대해 constraints/gcp.restrictNonCmekServices가 구성되었을 때 CMEK 이외의 다른 암호화 옵션을 사용할 수 없다는 것을 확인할 수 있습니다. 미리보기에서는 고객 계정에 프로젝트에 대해 orgpolicy.policy.get IAM 권한이 부여된 경우에만 CMEK 조직 정책 제한이 표시됩니다.

다음 단계

조직 정책의 이점 및 일반적인 사용 사례에 대해 자세히 알아보려면 조직 정책 서비스 소개를 참조하세요.

특정 제약조건이 있는 조직 정책을 만드는 방법에 대한 더 많은 예시는 제약조건 사용을 참조하세요.