本頁面說明如何在 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」控制層執行個體) | 使用者必須在正確的多區域中使用多區域金鑰,或選擇使用其他多區域控制平面執行個體。 |