本頁面說明如何在 Apigee 中使用 CMEK。如需最佳做法,請參閱「 Apigee CMEK 的最佳做法」。
總覽
根據預設,系統會 Google Cloud 自動 加密靜態資料,使用的加密金鑰由 Google 擁有及管理。 如果您在保護資料的金鑰方面有特定的法規遵循或監管要求,可以使用客戶自行管理的加密金鑰 (CMEK)。
如要進一步瞭解如何為 Apigee 使用 CMEK,請參閱「搭配使用 CMEK 與 Apigee」。如要進一步瞭解 CMEK,包括啟用時機和原因,請參閱 Cloud Key Management Service 說明文件。
使用客戶自行管理的加密金鑰 (CMEK) 不一定比 Google 的預設加密機制更安全,但可讓您控管金鑰生命週期和管理作業的更多層面,以符合安全性與法規遵循要求。
如要進一步控管金鑰作業,請使用客戶自行管理的加密金鑰,而非 、Google 擁有及管理的 加密金鑰。這些金鑰是使用 Cloud Key Management Service (Cloud KMS) 建立及管理,您可以將金鑰儲存為軟體金鑰、HSM 叢集或外部。
金鑰管理功能由 Cloud KMS 服務提供。
CMEK 用途
本節說明在 Apigee 中使用 CMEK 的常見用途。
金鑰輪替
自動或手動輪替金鑰。請注意,金鑰輪替後,系統不會自動使用新金鑰版本重新加密先前儲存在 Apigee 中的資料,但只要用於加密資料的舊金鑰版本未停用或刪除,您就能繼續存取這些資料。
金鑰輪替的主要目的是限制資料只能透過單一金鑰存取,而不是完全取代舊金鑰版本。Apigee 目前不支援金鑰輪替時重新加密。
以 Apigee 來說,輪替金鑰時,只有有限的新資料 (例如新的 Proxy 修訂版本) 會以新的主要金鑰版本加密。大多數資料 (例如分析資料、執行階段磁碟和舊版 Proxy 修訂版本) 仍使用舊版金鑰。如要徹底移除舊版金鑰,請重新建立 apigee 機構。如果是執行階段加密金鑰,如要徹底移除先前的金鑰版本,必須重新建立執行階段例項。詳情請參閱「
Apigee CMEK 最佳做法」。
另請參閱:輪替金鑰
刪除及停用車鑰
金鑰版本停用後,您將無法存取以該金鑰版本加密的 Apigee 資料。如要還原資料存取權,可以重新啟用金鑰。
刪除或停用 CMEK 金鑰 (即使只是舊版),apigee 機構就會開始發生故障,具體情況取決於用於加密的金鑰版本。部分 API 會立即停止運作,因為這些 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 設定和分析儲存空間。 其他控制層資料 (例如數據分析處理、入口網站) 則位於控制層的子區域。 所有子區域元件都會位於同一個區域。 |
一個金鑰用於控制層資料。 一個金鑰用於控制層子區域資料。 |
機構政策限制
如果專案有 CMEK 組織政策限制,Apigee 會強制執行這些限制。如果您透過 Google Cloud Google Cloud UI、CLI 或直接透過 Apigee API 使用 Apigee,系統保證會強制執行 CMEK 政策。 使用 Google Cloud Apigee 使用者介面時,系統會預先驗證 CMEK 機構政策限制,引導您選擇符合法規的有效設定。
您可以建立 CMEK 組織政策限制,要求:
目前並非所有 Apigee 功能都符合 CMEK 規定。為確保需要 CMEK 的專案不會在不知情的情況下使用未受 CMEK 保護的功能,這些功能會在專案符合規定前,對受 CMEK 限制的專案停用。只有新功能的使用次數會停用 (建立新資源或啟用外掛程式)。您仍可使用及編輯現有的功能和資源,但這些功能和資源不符合 CMEK 規定。下列功能將會停用:
-
Apigee Shadow API Discovery 不受 CMEK 機構政策限制,也不符合 CMEK 規定。
- 評估機構建立作業會遭到評估機構 API CreateOrganization 和評估佈建精靈封鎖。
-
無法使用 Gemini Code Assist。
- 全域機構建立作業會遭到 CreateOrganization 評估機構 API 和評估佈建精靈封鎖。
- 強制執行時無法建立 Hybrid 執行個體。
- 如果需要 CMEK,系統會停用「Looker Studio」按鈕,因此您無法使用 Apigee 資料開啟 Looker Studio。
- 無法對現有資源追溯強制執行法規遵循,如要讓現有資源符合規定,請刪除並重新建立資源。
如要進一步瞭解如何搭配使用機構政策限制與 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 "..."
|
使用者為錯誤的多區域控制層執行個體提供多區域控制層金鑰 (例如為「eu」控制層執行個體提供「us」金鑰)。 | 使用者必須在正確的多區域中使用多區域金鑰,或選擇使用不同的多區域控制層執行個體。 |