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_ID
、under:folders/FOLDER_ID
和 under: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.com
和 secretmanager.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.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 機構政策限制。
後續步驟
如要進一步瞭解機構政策的優點和常見用途,請參閱「機構政策服務簡介」。
如需更多範例,瞭解如何建立具有特定限制的機構政策,請參閱「使用限制」。