CMEK 組織政策

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服務名稱 (例如 bigquery.googleapis.com)。如要使用這項限制,請提供 Google Cloud 服務名稱清單,並將限制設為「拒絕」。如果資源未受 CMEK 保護,這項設定會禁止在這些服務中建立資源。換句話說,如未指定 Cloud KMS 金鑰,在服務中建立資源的要求將會失敗。此外,這項限制會禁止從這些服務的資源中移除 CMEK 保護措施。這項限制只能套用至支援的服務

限制使用 Cloud KMS 金鑰進行 CMEK

如要限制用於 CMEK 保護措施的 Cloud KMS 金鑰,請設定 constraints/gcp.restrictCmekCryptoKeyProjects 限制。

做為清單限制,可接受的值是資源階層指標 (例如 projects/PROJECT_IDunder:folders/FOLDER_IDunder:organizations/ORGANIZATION_ID)。如要使用這項限制,請設定資源階層指標清單,並將限制設為「允許」。這項設定會限制支援的服務,因此只能從列出的專案、資料夾和機構中選擇 CMEK 金鑰。如要透過已設定的服務建立受 CMEK 保護的資源,必須使用允許資源中的 Cloud KMS 金鑰,否則要求會失敗。設定完成後,這項限制會套用至所有支援的服務

支援的服務

服務 需要 CMEK 時的限制值
AI 應用程式 discoveryengine.googleapis.com
PostgreSQL 適用的 AlloyDB alloydb.googleapis.com
Apigee apigee.googleapis.com
應用程式整合 integrations.googleapis.com
Artifact Registry artifactregistry.googleapis.com
GKE 備份 (搶先版) gkebackup.googleapis.com
BigQuery bigquery.googleapis.com
Bigtable bigtable.googleapis.com
Cloud Composer composer.googleapis.com
Cloud Data Fusion datafusion.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Run run.googleapis.com
Cloud Run functions cloudfunctions.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com
Cloud Tasks cloudtasks.googleapis.com
Cloud Workstations workstations.googleapis.com
Colab Enterprise aiplatform.googleapis.com
Compute Engine compute.googleapis.com
Dataflow dataflow.googleapis.com
Dataform dataform.googleapis.com
Dataplex Universal Catalog dataplex.googleapis.com
Dataproc dataproc.googleapis.com
Document AI documentai.googleapis.com
Eventarc Advanced (預覽版) eventarc.googleapis.com
Eventarc Standard eventarc.googleapis.com
Filestore file.googleapis.com
Firestore firestore.googleapis.com
Google Agentspace Enterprise discoveryengine.googleapis.com
Google Kubernetes Engine (預先發布版) container.googleapis.com
Looker (Google Cloud Core) looker.googleapis.com
Memorystore for Redis redis.googleapis.com
Pub/Sub pubsub.googleapis.com
Secret Manager secretmanager.googleapis.com
Secure Source Manager securesourcemanager.googleapis.com
Spanner spanner.googleapis.com
語音轉文字 speech.googleapis.com
Vertex AI aiplatform.googleapis.com
Vertex AI Workbench 執行個體 notebooks.googleapis.com

CMEK 組織政策和 Storage 移轉服務

雖然儲存空間移轉服務沒有 CMEK 整合功能,但仍可搭配 CMEK 機構政策使用。如果您使用 Storage 移轉服務,並想確保儲存在 Secret Manager 中的資料庫憑證受到 CMEK 保護,則必須將 storagetransfer.googleapis.comsecretmanager.googleapis.com 都新增至 constraints/gcp.restrictNonCmekServices 限制。詳情請參閱 Storage 移轉服務 CMEK 文件

依資源類型列出的強制執行例外狀況

建立新資源或變更現有資源的 Cloud KMS 金鑰 (如支援),系統會強制執行 CMEK 機構政策限制。一般來說,系統會對所有支援 CMEK 的服務資源類型強制執行這些限制,且僅根據資源的設定。以下摘要列出一些重要例外狀況:

資源類型 強制執行例外狀況
bigquery.googleapis.com/Dataset 部分強制執行資料集預設 Cloud KMS 金鑰 (僅限 gcp.restrictCmekCryptoKeyProjects)
bigquery.googleapis.com/Job 僅限查詢作業:系統會強制使用查詢提供的 Cloud KMS 金鑰,或帳單專案的預設金鑰;另請參閱專案預設 Cloud KMS 金鑰的個別設定
bigquerydatatransfer.googleapis.com/TransferConfig 移轉設定會使用資料移轉服務的服務名稱 (bigquerydatatransfer.googleapis.com),做為 CMEK 機構政策限制。
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.comstorage.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 機構政策限制。

後續步驟

如要進一步瞭解機構政策的優點和常見用途,請參閱「機構政策服務簡介」。

如需更多範例,瞭解如何建立具有特定限制的機構政策,請參閱「使用限制」。