Google Cloud에서는 조직 내 CMEK 사용을 보장하기 위해 두 가지 조직 정책 제약조건이 사용됩니다.
constraints/gcp.restrictNonCmekServices
는 CMEK 보호를 요구하기 위해 사용됩니다.constraints/gcp.restrictCmekCryptoKeyProjects
는 CMEK 보호에 사용되는 Cloud KMS 키를 제한하기 위해 사용됩니다.
CMEK 조직 정책은 지원되는 Google Cloud 서비스 내에서 새로 생성된 리소스에만 적용됩니다.
필요한 역할
리소스를 만들 때 각 사용자에게 조직 정책을 확인하는 데 필요한 권한이 있는지 확인하려면 관리자에게 각 사용자에게 조직에 대한 조직 정책 뷰어(roles/orgpolicy.policyViewer
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 리소스를 만들 때 조직 정책을 확인하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
리소스를 만들 때 조직 정책을 확인하려면 다음 권한이 필요합니다.
-
전체 조직 정책 세부정보를 보려면 다음 권한이 필요합니다.
orgpolicy.policy.get
-
리소스를 만들 때 조직 정책을 확인하려면 다음 권한이 필요합니다.
orgpolicy.policies.check
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 사용하여 각 사용자에게 이러한 권한을 부여할 수도 있습니다.
조직 정책이 활성 상태인 경우 CMEK 키로 보호되는 리소스를 만드는 Google Cloud 콘솔 사용자에게 orgpolicy.policies.check
권한이 필요합니다. 이 권한이 없는 사용자는 Google Cloud 콘솔을 사용하여 CMEK로 보호되는 리소스를 만들 수 있지만 restrictCmekCryptoKeyProjects
제약조건에서 허용하지 않는 CMEK 키를 선택할 수 있습니다. 이 제약조건을 충족하지 않는 키를 선택하면 결과적으로 리소스 생성이 실패합니다.
CMEK 보호 요구
조직에 CMEK 보호를 요구하려면 constraints/gcp.restrictNonCmekServices
조직 정책을 구성합니다.
목록 제약조건으로서 이 제약조건에 허용되는 값은 Google Cloud 서비스 이름입니다(예: sqladmin.googleapis.com
). Google Cloud 서비스 이름 목록을 제공하고 제약조건을 거부로 설정하여 이 제약조건을 사용합니다. 이 구성은 리소스가 CMEK로 보호되지 않는 경우 이러한 서비스에서 리소스가 생성되지 않도록 차단합니다. 즉, Cloud KMS 키를 지정하지 않으면 서비스에서 리소스 만들기 요청이 실패합니다. 또한 이 제약조건은 이러한 서비스의 리소스에서 CMEK 보호를 삭제하지 못하도록 차단합니다. 이 제약조건은 지원되는 서비스에만 적용될 수 있습니다.
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 요구 시의 제약조건 값 |
---|---|
PostgreSQL용 AlloyDB | alloydb.googleapis.com |
Apigee | apigee.googleapis.com |
Application Integration | integrations.googleapis.com |
Artifact Registry | artifactregistry.googleapis.com |
BigQuery | bigquery.googleapis.com |
Bigtable | bigtable.googleapis.com |
Cloud Composer | composer.googleapis.com |
Cloud Logging | logging.googleapis.com |
Cloud Run | run.googleapis.com |
Cloud Run 함수 | cloudfunctions.googleapis.com |
Cloud SQL | sqladmin.googleapis.com |
Cloud Storage | storage.googleapis.com |
Cloud Workstations | workstations.googleapis.com |
Colab Enterprise | aiplatform.googleapis.com |
Compute Engine | compute.googleapis.com |
Dataflow | dataflow.googleapis.com |
Dataproc | dataproc.googleapis.com |
Document AI | documentai.googleapis.com |
Filestore | file.googleapis.com |
Firestore | firestore.googleapis.com |
Google Kubernetes Engine(미리보기) | container.googleapis.com |
Redis용 Memorystore | redis.googleapis.com |
Pub/Sub | pubsub.googleapis.com |
Secret Manager | secretmanager.googleapis.com |
Secure Source Manager | securesourcemanager.googleapis.com |
Spanner | spanner.googleapis.com |
Speech-to-Text | speech.googleapis.com |
Vertex AI | aiplatform.googleapis.com |
Vertex AI Agent Builder | discoveryengine.googleapis.com |
Vertex AI Workbench 인스턴스 | notebooks.googleapis.com |
CMEK 조직 정책 및 Storage Transfer Service
Storage Transfer Service에는 CMEK 통합이 없지만 CMEK 조직 정책과 함께 사용할 수 있습니다. Storage Transfer Service를 사용 중이고 Secret Manager에 저장된 데이터베이스 사용자 인증 정보를 CMEK로 보호하려면 storagetransfer.googleapis.com
및 secretmanager.googleapis.com
을 모두 constraints/gcp.restrictNonCmekServices
제약 조건에 추가해야 합니다. 자세한 내용은 Storage Transfer Service CMEK 문서를 참조하세요.
리소스 유형별 적용 예외
CMEK 조직 정책 제약조건은 새 리소스를 만들 때나 기존 리소스의 Cloud KMS 키를 변경할 때(지원되는 경우) 적용됩니다. 일반적으로는 CMEK를 지원하는 서비스의 모든 리소스 유형에 적용되며 리소스의 구성만을 기준으로 합니다. 다음과 같은 몇 가지 예외에 주의하시기 바랍니다.
리소스 유형 | 적용 예외 |
---|---|
bigquery.googleapis.com/Dataset |
데이터 세트 기본 Cloud KMS 키에 부분적으로 적용됨(gcp.restrictCmekCryptoKeyProjects 만 해당)
|
bigquery.googleapis.com/Job |
쿼리 작업만: 쿼리와 함께 제공된 Cloud KMS 키 또는 결제 프로젝트의 기본값에 적용되며 프로젝트 기본 Cloud KMS 키의 별도 구성도 참조하세요. |
bigquerydatatransfer.googleapis.com/TransferConfig |
전송 구성은 CMEK 조직 정책 제약조건에 Data Transfer Service(bigquerydatatransfer.googleapis.com)의 서비스 이름을 사용합니다. |
container.googleapis.com/Cluster |
(미리보기) 노드 부팅 디스크에 대해서만 Cloud KMS 키에 적용됩니다. 애플리케이션 레이어의 보안 비밀에는 적용되지 않습니다. |
logging.googleapis.com/LogBucket |
명시적으로 생성된 로그 버킷에 적용됩니다. 기본 제공 로그 버킷의 규정 준수를 확인하는 데 필요한 별도 구성도 참조하세요. |
storage.googleapis.com/Bucket |
버킷 기본 Cloud KMS 키에 적용됩니다. |
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
- 정책 유형: 거부
- 정책 값: (모든 지원되는 서비스)
제한사항
Google Cloud 콘솔을 사용하여 리소스를 만들려면 프로젝트 및 서비스에 대해 constraints/gcp.restrictNonCmekServices
가 구성되었을 때 CMEK 이외의 다른 암호화 옵션을 사용할 수 없다는 것을 확인할 수 있습니다. 고객 계정에 프로젝트에 대해 orgpolicy.policy.get
IAM 권한이 부여된 경우에만 CMEK 조직 정책 제한이 표시됩니다.
다음 단계
조직 정책의 이점 및 일반적인 사용 사례에 대해 자세히 알아보려면 조직 정책 서비스 소개를 참조하세요.
특정 제약조건이 있는 조직 정책을 만드는 방법에 대한 더 많은 예시는 제약조건 사용을 참조하세요.