本頁說明 Apigee 的 CMEK 最佳做法。
風險防範
目前 Apigee 支援的客戶管理加密金鑰功能有限。為避免意外刪除 CMEK 金鑰或金鑰版本,建議您採取下列做法:
-
加強存取權控管:僅將角色或金鑰的銷毀/更新權限授予信任的管理員或資深團隊成員。
roles/cloudkms.admin - 定期稽核權限:確保權限不會隨著時間無意間擴大。
- 自動刪除金鑰:請勿設定自動刪除/停用金鑰的自動化動作。
設定金鑰刪除時長和輪替
- 考慮延長預設刪除期限:預設的排定刪除期限為 30 天。在建立金鑰時設定自訂刪除時間,或透過機構政策強制設定較長的時間,可在意外刪除金鑰時提供更多復原時間。如果您認為銷毀時間越長風險越高,請注意,銷毀時間越長,也越能避免您誤刪金鑰。您可以權衡利弊,找出最適合自己的期限。
- 要求先停用金鑰再銷毀: 建議您先停用金鑰版本,再安排銷毀。這有助於驗證金鑰是否未處於使用中狀態,也是判斷是否可安全銷毀金鑰版本的重要步驟。
- 實作金鑰輪替:定期輪替金鑰可限制潛在遭盜用的影響。如果金鑰遭駭,定期輪替可限制實際遭駭的訊息數量。
Apigee 中的金鑰輪替
金鑰輪替的主要目的是減少使用單一金鑰加密的資料量,而不是完全取代舊金鑰版本。無論是執行階段金鑰或控制層金鑰,原始金鑰版本都會在建立後與資源繫結。
參考範例
- 即使金鑰輪替後,Apigee 執行個體仍會一律使用建立時啟用的主要 CMEK 金鑰版本。
- Proxy 套裝組合會繼續使用首次建立時啟用的主要 CMEK 金鑰版本。不過,如果這個 Proxy 套件在金鑰輪替後經過修改,其中的任何新資料都會以新的主要金鑰版本加密。
目前限制:不會自動重新加密
請注意,Apigee 目前不支援在金鑰輪替時,自動重新加密現有資料。只有少量新資料會使用新的主要金鑰版本加密。大多數資料 (例如 Analytics、執行階段磁碟資料和舊版 Proxy 修訂版本) 仍會以舊版金鑰加密。
停用金鑰
停用或刪除金鑰會中斷 Apigee 功能。如果先停用金鑰,萬一只是虛驚一場,可以重新啟用金鑰。
如果您懷疑金鑰 (或金鑰版本) 遭破解:
-
高風險情境:如果您認為 Apigee 資料屬於機密資訊,且攻擊者極有可能加以利用,請立即停用金鑰並撤銷存取權。您應先停用金鑰,再重新建立
apigee執行個體和apigee機構。 -
低風險情境:如果減少停機時間比潛在風險更重要,您應該先重新建立
apigee執行個體和apigee機構,再停用/刪除 CMEK。請參閱下文,瞭解如何投資備份/還原功能,主動避免停機。 - 聯絡支援團隊:如果您認為金鑰已遭盜用,需要停用金鑰,建議聯絡 Google Cloud Customer Care。
請參閱下文,瞭解停用/撤銷/銷毀金鑰的影響。停用金鑰後,您需要重新建立 apigee
org/instances。請參閱最佳做法。
- 執行階段 CMEK 遭入侵:使用新的 CMEK 建立新執行個體,然後遷移流量,並刪除原始執行個體和舊的執行階段 CMEK。
-
所有 CMEK 遭入侵:建立新的
apigee機構,使用新的 CMEK 金鑰,複製設定,轉移流量,然後關閉舊機構並停用/刪除原始 CMEK。 -
聯絡 Google Cloud Customer Care:如果刪除/重新建立執行個體或
apigee機構的 API 耗時過長,請聯絡 Google Cloud Customer Care。
停用/撤銷/刪除金鑰的影響
停用、撤銷或刪除金鑰會導致 Apigee 無法正常運作。影響如下:
- 停用/撤銷/銷毀整個金鑰:Apigee 的客戶端 API 會立即停止運作。內部系統會在幾分鐘內發生故障,影響 Proxy 部署、執行階段流量、分析和 API 安全性。由於磁碟重新掛接問題,執行個體會在幾週內完全無法啟動。
- 停用/撤銷/刪除金鑰版本 (包括主要金鑰版本或先前的金鑰版本):使用該金鑰版本的 Apigee 客戶端 API 會立即停止運作。部分內部系統和執行階段流量會受到影響。如果金鑰版本用於磁碟加密,執行個體可能會無法啟動。
重新啟用金鑰
如果金鑰遭到停用,但您認為是誤判或不應停用,可以重新啟用金鑰。重新啟用金鑰後,面向消費者的 API 即可恢復運作。內部系統應會在幾分鐘內恢復運作。不過,金鑰無法使用期間,API 安全性和數據分析可能會遺失資料。
- 如果停用金鑰的時間不長:系統應會復原,但 API 安全性和分析資料可能會遺失部分內容。
- 如果停用金鑰的時間較長:系統會復原以提供流量服務,但可能會導致資料不一致,也就是一個區域傳回一個值,先前停用的區域則傳回另一個值。請與 Google Cloud Customer Care 聯絡,修正 Apigee 叢集。
刪除金鑰
刪除金鑰前,請先考量下列事項:
- 為進行清理:請勿刪除舊金鑰,直到 Apigee 發布金鑰追蹤功能,讓您瞭解 金鑰使用情形後,再刪除金鑰。
- 如需刪除金鑰:請先停用金鑰,然後安排刪除作業。您可以使用機構政策,強制執行先停用金鑰,再設定最短刪除時間。
使用 CI/CD 備份保護 Apigee 機構
如果客戶自行管理的加密金鑰 (CMEK) 遭盜用,請務必立即停用、撤銷或刪除遭盜用的金鑰。不過,這項必要安全措施可能會導致 Apigee 系統無法運作,進而造成潛在的停機時間和服務中斷。
為確保 Apigee 服務的停機時間盡可能縮短或完全不會停機,請務必採取主動式做法:持續備份機構的設定 (持續整合/持續部署 (CI/CD) 備份)。請參閱可用工具,以及還原 Apigee 機構的最佳做法。
CI/CD 和 IaC 的強大力量
投資 Terraform 等基礎架構即程式碼 (IaC) 解決方案,即可從備份設定中順暢建立新的 Apigee 機構。這個簡化程序可讓您迅速有效率地重建 Apigee 機構,盡量減少停機時間,確保業務持續運作。
可用的工具
您可以結合下列所有工具,定期備份 apigee 機構,並測試復原程序。
- 如要重新建立 Apigee 執行個體,請參閱 重新建立 Apigee 執行個體,實現零停機時間。
-
如要使用 Terraform,可以考慮從開放原始碼
apigee/terraform modules借用想法。 -
如要重新建立 Apigee 機構,可以使用
apigeecli、apigeecli organizations export和apigeecli organizations import做為備份的基礎。請參閱 匯出/重新建立機構。 - 如要備份及還原上述清單以外的資源,請直接與 API 互動,或使用其他 apigeecli 指令。
最佳做法
- 定期備份:安排定期備份,確保您擁有最新的設定。請參閱匯出/重新建立機構。
- 安全儲存:將備份內容儲存在安全的位置,例如加密存放區。
- 測試還原:定期測試還原程序,確保您可以有效復原 Apigee 機構。定期測試還原程序,確保您可以迅速將流量切換至新建立的 Apigee 機構。
匯出/重新建立機構
apigeecli 工具是指令列工具,可讓您管理 Apigee 資源。您可以在簡單易用的指令列介面中,執行與 Apigee API 相同的動作,類似於 gcloud 指令。
如要重新建立 Apigee 機構或遷移至其他 Apigee 機構,可以使用 apigeecli
organizations export 和 apigeecli organizations import。
也可以做為後續備份的基礎。可匯出及匯入下列資源:
- API 入口網站文件
- API 入口網站類別
- API Proxy
- API 安全性設定和安全性設定檔
- 共用流程
- API 產品
- 開發人員
- 開發人員應用程式,包括憑證
- AppGroups 和應用程式 (包括憑證)
- 環境詳細資料
- 環境群組
- 設定資料收集器
- 環境層級的 KeyStore 和別名憑證
- 環境層級目標伺服器
- 環境層級參照
- 機構、環境和 Proxy 層級的鍵/值對應 (KVM) 和項目
- KeyStore 和別名憑證 (私密金鑰除外)
這項工具可以管理所有其他 Apigee 資源。如要查看完整指令清單,請使用 apigeecli tree。
這項工具有幾項限制:
- 建立金鑰庫時,必須儲存私密金鑰,並將其納入本機備份檔案
- OAuth 權杖無法備份及還原,這表示客戶必須重新登入新建立的 Apigee 執行個體。
- 系統不會遷移存取權控管機制,例如機構政策和 IAM 規則。如要遷移這些規則,請使用 Google Cloud API。
-
系統不支援匯出 Analytics 報表,也不會將分析指標複製到新的
apigee機構。 -
這個
import指令不會自動為您建立執行個體、envGroup、EnvAttachments、端點附件或部署 Proxy。您可以管理這些資源,但無法直接透過import指令管理。 -
這個
import指令不會自動建立入口網站。 您必須透過 UI 手動建立入口網站。 - 建議您投資於重要刪除作業的災難復原,並定期測試復原程序,確保能迅速將流量切換至新建立的 Apigee 機構。
必要條件
開始之前,請確認符合下列先決條件:
-
已安裝 Apigee CLI:按照 安裝指南中的步驟安裝
apigeecli。 -
驗證:您必須具備必要權限和驗證憑證,才能與 Apigee 機構互動。請確認已設定以下項目:
-
Google Cloud SDK (
gcloud):已安裝並完成驗證。 -
存取權杖:使用
gcloud auth print-access-token取得存取權杖。
-
Google Cloud SDK (
- 網路存取權:請確認您的網路允許存取 Apigee API。
-
建立機構:建立要遷移至的新
apigee機構。您可以建立 不同類型的機構,但請務必使用與原始機構相同的機構類型 (隨用隨付或訂閱) 和 網路路徑類型。apigee
匯出 Apigee 機構
以下是指令範例。如要進一步瞭解各種標記,請參閱「 apigeecli organizations export」。
# Sample command mkdir apigee_backup cd apigee_backup # gcloud auth application-default login export ORG_FROM=REPLACE apigeecli organizations export -o $ORG_FROM --default-token
匯入 Apigee 機構
以下是指令範例。如要瞭解不同標記的詳細資料,請參閱 apigeecli 機構匯入
# Sample command # gcloud auth application-default login export ORG_TO=REPLACE apigeecli organizations import -o $ORG_TO -f . --default-token
匯入後的步驟
建立執行個體並設定網路
請按照下列步驟建立執行個體並設定網路:
- 請按照「 建立新的執行個體」一文中的步驟,建立新的執行個體。
- 設定北向流量:北向是指從外部或內部用戶端,透過負載平衡器傳輸至 Apigee 的 API 流量。您必須確保正確設定 PSC 或 VPC,執行個體才能連上網路。您必須在新機構中設定環境群組主機名稱。
- 設定南向流量:南向是指從 Apigee 到 API Proxy 目標服務的 API 流量。因此,您必須為 NAT 保留並啟用新的 IP 位址,並重新設定目標端點的防火牆/允許清單。
詳情請參閱「 Apigee 網路選項」。
備份/還原其他設定
使用下列其中一種方式備份/還原其他設定:
-
IAM 規則:您可以使用
gcloud projects get-iam-policy和gcloud projects set-iam-policy複製自己的 IAM 政策,調整專案和apigee機構名稱,然後套用至新的 Google Cloud 專案和apigee機構。 - 其他 Apigee 設定:您可以使用 Apigee 管理 API。
部署 Proxy
請使用下列其中一種方式部署 Proxy:
- 使用
apigeecli - 請參閱 Apigee 社群指令碼。
- 使用 Apigee 管理 API
切換流量
如要切換流量,請按照下列步驟操作:
- 為新執行個體準備自動化整合測試。
- 設定負載平衡器,逐步將流量轉移至新執行個體,同時監控效能。