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 金鑰保護,就必須具備 orgpolicy.policies.check 權限。 Google Cloud 沒有這項權限的使用者可以使用 Google Cloud 主控台建立受 CMEK 保護的資源,但他們可以選取 restrictCmekCryptoKeyProjects 限制不允許的 CMEK 金鑰。如果選取的鍵不符合這項限制,資源建立作業最終會失敗。

要求使用 CMEK 保護

如要為貴機構要求 CMEK 保護,請設定 constraints/gcp.restrictNonCmekServices 機構政策。

由於這是清單限制條件,因此可接受的值為 Google Cloud服務名稱 (例如 bigquery.googleapis.com)。如要使用這項限制條件,請提供 Google Cloud 服務名稱清單,並將限制條件設為 Deny。如果資源未受 CMEK 保護,這項設定會封鎖在這些服務中建立資源的動作。換句話說,如果未指定 Cloud KMS 金鑰,在服務中建立資源的要求就不會成功。此外,這項限制會封鎖從這些服務中的資源移除 CMEK 保護的功能。這項限制只能套用至支援的服務

限制使用 Cloud KMS 金鑰保護 CMEK

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

做為清單限制,可接受的值為資源階層指標 (例如 projects/PROJECT_IDunder:folders/FOLDER_IDunder:organizations/ORGANIZATION_ID)。如要使用這項限制,請設定資源階層指標清單,並將限制設為「允許」。這項設定會限制支援的服務,讓您只能從列出的專案、資料夾和機構中選取 CMEK 金鑰。如果沒有來自其中一個允許資源的 Cloud KMS 金鑰,在已設定的服務中建立受 CMEK 保護的資源要求就不會成功。在設定後,這項限制會套用至所有支援的服務

支援的服務

服務 要求使用 CMEK 時的限制值
AI Applications discoveryengine.googleapis.com
PostgreSQL 適用的 AlloyDB alloydb.googleapis.com
Apigee apigee.googleapis.com
應用程式整合 integrations.googleapis.com
Artifact Registry artifactregistry.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 通用目錄 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 金鑰強制執行;不會針對應用程式層的 Secret 強制執行
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 機構政策限制。

後續步驟

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

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