CMEK 簡介

本頁面說明如何在 Apigee 中使用 CMEK。如需最佳做法,請參閱「 Apigee CMEK 的最佳做法」。

總覽

根據預設, Google Cloud 會使用 Google 擁有及管理的加密金鑰,自動 在靜態資料時加密資料。如果您對保護資料的金鑰有特定法規或法規要求,可以使用客戶自行管理的加密金鑰 (CMEK)。

如要進一步瞭解如何使用 Apigee 的 CMEK,請參閱「使用 CMEK 與 Apigee」。如要進一步瞭解 CMEK 的一般資訊,包括何時啟用 CMEK 以及原因,請參閱 Cloud Key Management Service 說明文件

使用客戶管理的加密金鑰 (CMEK) 不一定比 Google 的預設加密機制提供更高的安全性,但您可以透過此方式控管金鑰的生命週期和管理方式,以符合安全性和法規遵循要求。

如果您需要對金鑰作業進行更細微的控管,而非採用 (Google 擁有且由 Google 代管) 加密金鑰,您可以使用客戶管理的加密金鑰。這些金鑰會使用 Cloud Key Management Service (Cloud KMS) 建立及管理,您可以將金鑰做為軟體金鑰儲存在 HSM 叢集中,或外部

Cloud KMS 服務提供金鑰管理功能。

CMEK 用途

本節將說明將 CMEK 與 Apigee 搭配使用的常見用途。

金鑰輪替

自動或手動輪替金鑰。請注意,輪替金鑰後,系統不會使用新金鑰版本自動重新加密先前儲存在 Apigee 中的資料,但只要用於加密資料的先前金鑰版本未停用或刪除,您還是可以繼續存取這些資料。

金鑰輪替的主要目的,是限制資料只向單一金鑰揭露,而非完全取代舊金鑰版本。Apigee 目前不支援在金鑰輪替時重新加密。 具體來說,在 Apigee 中輪替金鑰時,只有少數新資料 (例如新的 Proxy 修訂版本) 會使用新的主要金鑰版本加密。分析資料、執行階段磁碟和舊的 Proxy 修訂版本等大部分資料仍會使用舊金鑰版本。如果您想完全移除先前的金鑰版本,請重新建立 apigee 組織。針對執行階段加密金鑰,如果您想完全移除先前的金鑰版本,就必須重新建立執行階段例項。詳情請參閱 Apigee CMEK 的最佳做法

另請參閱:輪替金鑰

刪除及停用車鑰

當金鑰版本停用時,您將無法存取以該金鑰版本加密的 Apigee 資料。如要恢復資料存取權,可以重新啟用金鑰。

刪除或停用 CMEK 金鑰 (即使只是刪除舊版本) 後,apigee 機構就會開始發生故障,具體情況取決於用於加密的金鑰版本。由於某些 API 需要 CMEK 金鑰才能解密資料,因此會立即停止運作,而某些功能則會在某些系統動作觸發時才會開始發生異常,例如要重新掛載的 Compute Engine 永久磁碟。詳情請參閱 關閉按鍵

銷毀金鑰版本後,使用該金鑰版本加密的任何 Apigee 資料都會變得無法讀取且無法復原。這是永久性且無法復原的作業

另請參閱:

金鑰還原

如果不小心刪除或停用金鑰或先前的金鑰版本,請盡快嘗試還原。請注意,CMEK 是用於在無法使用金鑰時避免資料遺失的功能。還原金鑰後,apigee 機構不保證會復原,您可能會發生資料遺失的情況。詳情請參閱「 重新啟用金鑰」。請與 Google Cloud Customer Care 聯絡,瞭解最佳後續步驟。

另請參閱: 刪除與還原金鑰版本

撤銷金鑰存取權

如果您使用 IAM 撤銷 Apigee 服務代理的金鑰存取權,Apigee 就無法存取任何以任何金鑰版本加密的控制平面資料。需要解密資料的 Apigee API 作業將會失敗。您可以重新授予金鑰存取權,並還原解密資料的 Apigee API 作業,藉此還原資料存取權。

另請參閱: 管理專案、資料夾和機構的存取權

EKM

Apigee 目前不支援 Cloud External Key Manager (Cloud EKM)。如果您使用 Cloud EKM,會發生已知的缺陷,導致 Cloud EKM 錯誤無法正確傳播並顯示給您。

按鍵追蹤

Apigee 不支援鍵追蹤功能,如果您使用「查看鍵使用情形」功能,並發現某個版本的鍵未使用,請注意,這並非準確資訊,因為 Apigee 未整合鍵追蹤功能。

配額

使用 CMEK 金鑰可能會產生部分 Cloud KMS 配額的使用量。如要瞭解 Cloud KMS 配額的最新資訊,請參閱「配額」一文。

撤銷加密金鑰

如果您認為 Apigee 中的資料遭到入侵, Google Cloud 可以撤銷加密金鑰。撤銷執行階段 CMEK,讓執行階段執行個體發生故障,無法存取閘道資料。撤銷控制層 CMEK,讓 Apigee 無法執行分析工作或部署新的 Proxy。

在 Apigee 中使用 CMEK

Apigee 加密金鑰用於執行階段和控制平面資料,並在 佈建程序期間建立。

Apigee 控制平面資料會使用與執行階段資料不同的加密金鑰進行加密,且可能儲存在不同的區域。根據 CMEK 說明文件,這項加密功能僅適用於靜態資料,也就是最終儲存在磁碟上的資料。

Apigee 控制平面資料包括 Proxy 設定 (套件)、部分環境設定資料和分析資料。Apigee 執行階段資料包含應用程式資料,例如 KVM、快取和用戶端密碼,這些資料會儲存在執行階段資料庫中。

如要瞭解加密金鑰類型,請參閱「 關於 Apigee 加密金鑰」。

您只能在建立 Apigee 機構時新增加密金鑰;一旦指派 CMEK,就無法在建立機構後變更為其他 CMEK。

資料落地控制平面 CMEK 區域

在區域化 Apigee 控制層中,您可以為控制層選取兩個加密金鑰。這是因為 Apigee 控制層底層的部分元件一律位於控制層位置的單一區域。詳情請參閱 資料落地地區

詳細資料 必要的鍵

控制層區域是控制層執行的位置。Apigee 中的控制層是抽象概念,其中多個基礎元件共同構成 Apigee 控制層。控制平面資料是指 Proxy 設定和分析儲存空間。

其他控制層資料 (例如分析處理、入口網站) 則位於控制層的子區域。

所有子區域元件都會位於同一個區域。

控制平面資料的一個鍵。

控制平面子區域資料的一個索引鍵。

機構政策限制

如果您在 Google Cloud專案中設定 CMEK 組織政策限制,Apigee 會強制執行這些限制。如果您是透過 Google Cloud UI、CLI 或直接透過 Apigee API 使用 Apigee,則可確保執行 CMEK 政策。使用 Google Cloud Apigee UI 時,CMEK 機構政策限制會先經過驗證,以便 UI 引導您選擇有效的法規遵循設定。

您可以建立 CMEK 組織政策限制,要求:

目前並非所有 Apigee 功能都符合 CMEK 規範。為確保需要 CMEK 的專案不會在不知情的情況下使用未受 CMEK 保護的功能,我們會在 CMEK 受限專案符合規定前,停用這些功能。系統只會停用新功能的用途 (建立新資源或啟用外掛程式)。已在使用中的功能和資源仍可使用及編輯,但不符合 CMEK 規範。下列功能將會停用:

  • 對於需要 CMEK 的新建組織,Apigee 傳統 UI 將無法使用,因為 CMEK 組織是傳統 UI 不支援的區域組織。現有機構仍可使用傳統版 UI。請注意,CMEK 預先驗證功能不會在傳統版 UI 中實作,而是會依賴 API 錯誤。也就是說,需要 CMEK 的現有機構將無法取得 CMEK 設定的引導使用者體驗,也無法停用不符合 CMEK 規範的功能。
  • Apigee Shadow API Discovery 不受 CMEK 機構政策的規範,也不符合 CMEK 規定。

  • 評估機構建立作業會遭到 CreateOrganization 評估機構 API 和評估機構佈建精靈阻擋。
  • 無法使用 Gemini Code Assist

  • 全域機構建立作業會遭到 CreateOrganization 評估機構 API 和評估佈建精靈阻擋。
  • 無法使用Hybrid 執行個體建立功能來執行強制執行。
  • 當需要 CMEK 時,用來開啟 Looker Studio 並顯示 Apigee 資料的「Looker Studio」按鈕會停用。
  • CreateSite API 會封鎖入口網站建立作業。由於入口網站 UI 僅在 Apigee Classic 中 (不在 Google Cloud 主控台中),且預先驗證不會在 Apigee Classic UI 中實作,因此這個區塊會依賴 API 錯誤 (Apigee Classic UI 中的「Create」入口網站按鈕不會停用)。
  • 您無法追溯性強制執行現有資源的符合性;如果您需要現有資源符合規定,就必須刪除並重新建立資源。

如要進一步瞭解如何在 Apigee 中使用機構政策限制,請參閱「 在 Apigee 中使用機構政策限制」。

如何建立加密金鑰

根據預設,Google 會在佈建程序中管理加密金鑰的建立作業,但您也可以自行建立。詳情請參閱「 關於 Apigee 加密金鑰」。

風險與緩解措施

本節說明潛在威脅和可採取的行動。

  • 風險:
    • 金鑰遭到入侵:發生這種情況時,攻擊者可能會透過 KMS 的安全漏洞或針對金鑰管理員的攻擊,取得加密金鑰的存取權。
    • 拒絕服務:攻擊者可能會攻擊 KMS 或儲存系統,進而中斷加密金鑰或資料的存取權。
    • 金鑰遺失:意外刪除或遺失金鑰可能會導致資料遺失或無法存取。
  • 因應措施:
    • 實施健全的存取權控管和金鑰管理政策。
    • 監控 KMS 記錄和活動,找出可疑行為。

疑難排解

下表說明 CMEK 加密的 configstore 資料可能發生的常見錯誤情況、Apigee API 傳回的近似錯誤訊息,以及建議的疑難排解步驟。

錯誤訊息/症狀 原因 操作步驟
Constraint constraints/gcp.restrictNonCmekServices violated for projects/my-project attempting to create or enable trial org. CMEK is not supported for trial orgs. To use trial orgs, adjust the gcp.restrictNonCmekServices constraint for this project. 您嘗試在專案中存在機構政策限制的情況下,為試用版機構佈建項目。 試用/評估機構不支援 CMEK。您必須更新機構政策限制 constraints/gcp.restrictNonCmekServices,將 Apigee 從拒絕服務清單中移除,才能佈建測試機構。
Constraint constraints/gcp.restrictCmekCryptoKeyProjects violated for projects/my-project attempting to use projects/my-project/locations/my-location/keyRings/kr-1/cryptoKeys/ck-1 key. Use a key from a project that is allowed by the gcp.restrictCmekCryptoKeyProjects constraint. 您嘗試在機構中佈建專案,但該專案有機構政策限制,且您指定的 KMS CryptoKey 不在許可清單中。 您已在機構政策中設定 constraints/gcp.restrictCmekCryptoKeyProjects,要求您提供您列出的允許專案中的 CMEK 金鑰。您必須提供允許專案的 CMEK,才能建立組織或執行個體。或者,您也可以更新組織政策限制 constraints/gcp.restrictCmekCryptoKeyProjects,允許您所需特定 Google Cloud 專案中的金鑰。
Apigee does not have permission to access key "..." 使用者已撤銷 Apigee 對提供的 KMS 金鑰的存取權,也就是移除 roles/cloudkms.cryptoKeyEncrypterDecrypter 角色。 使用者應檢查 KMS 金鑰上的已設定角色,並確保 Apigee 服務代理具有必要的權限。
Unable to encrypt/decrypt data. Cloud KMS Error: "..." is not enabled, current state is: DESTROYED. 使用者已停用或刪除用於加密/解密要求資料的金鑰版本。 使用者應盡可能重新啟用金鑰版本。如果金鑰或金鑰版本已遭到銷毀,資料就無法復原 (這是設計上的考量)。
No new Analytics data for US/EU users 導致這個問題的可能原因之一,是使用者撤銷/停用/刪除單一地區的金鑰。 使用者應重新啟用/還原單一區域的金鑰存取權。
Control plane key "..." in region "..." is not valid for this control plane instance. Supported region(s) are "…". 使用者在某個地區提供單一地區控制層金鑰,但該金鑰對控制層執行個體所服務的地區或多地區無效或不受支援。 使用者必須在支援的區域中提供金鑰,或選擇使用其他控制層執行個體。
Multi-region control plane key is not valid for this control plane instance. Specify only the "apiConsumerDataEncryptionKeyName" field. 使用者在僅存在於單一區域的控制層中,提供多區域控制層金鑰 (即非多區域控制層)。 使用者必須略過多地區鍵值欄位,或選擇使用多地區控制平面執行個體。
Multi-region control plane key is not valid for this control plane instance. Specify a multi-region key with region "..." 使用者將多區域控制層金鑰提供給錯誤的多區域控制層執行個體 (例如將「us」金鑰提供給「eu」控制層執行個體) 使用者必須在正確的多區域中使用多區域金鑰,或選擇使用其他多區域控制平面執行個體。