本頁面說明 Apigee 的 CMEK 最佳做法。
風險預防
目前,Apigee 僅支援部分客戶管理的加密金鑰功能。為避免意外刪除 CMEK 金鑰或金鑰版本,建議您實作以下項目:
-
加強存取權控管:只將
roles/cloudkms.admin
角色或金鑰銷毀/更新權限,授予信任的管理員或資深團隊成員。 - 定期稽核權限:確保權限不會隨著時間推移而擴大。
- 自動刪除車鑰:請勿設定自動化動作來自動刪除/停用車鑰。
設定金鑰刪除時限和輪替
- 考慮延長預設的刪除時間:預設的排定刪除時間為 30 天。在建立金鑰時設定自訂刪除期限,或透過機構政策強制延長期限,就能在意外刪除時提供更多時間進行復原。如果您認為較長的銷毀時間會帶來更多風險,請注意,較長的銷毀時間也會防止您誤刪金鑰。您可以平衡效益和風險,找出最適合自己的時間長度。
- 要求在銷毀前停用金鑰: 建議您先停用金鑰版本,再安排銷毀作業。這有助於驗證金鑰並未在使用中,也是判斷是否可安全地刪除金鑰版本的重要步驟。
- 實施金鑰輪替:定期輪替金鑰,可限制潛在的妥協影響。在金鑰遭駭的情況下,定期輪替可限制實際訊息遭駭的數量。
Apigee 中的金鑰輪替
金鑰輪替的主要目的是減少使用單一金鑰加密的資料量,而不是完全取代舊金鑰版本。無論是執行階段金鑰還是控制平面金鑰,原始金鑰版本都會從建立時起與資源保持連結。
說明用範例
- 即使在金鑰輪替後,Apigee 執行個體一律會使用建立時有效的主要 CMEK 金鑰版本。
- 代理程式套件會繼續使用首次建立時啟用的 CMEK 主要金鑰版本。不過,如果這個 Proxy 組合在金鑰輪替後修改,其中的任何新資料都會使用新的主鍵版本加密。
目前限制:無法自動重新加密
請注意,Apigee 目前不支援在金鑰輪替時自動重新加密現有資料。只有少量新資料會使用新的主要金鑰版本加密。大部分資料 (例如數據分析、執行階段磁碟資料和舊版 Proxy) 仍會使用舊版金鑰加密。
關閉按鍵
停用或刪除金鑰會中斷 Apigee 功能。如果先停用金鑰,在發現是誤報時,您可以重新啟用金鑰。
如果您懷疑金鑰 (或金鑰版本) 遭到盜用,請採取下列行動:
-
高風險情況:如果您認為 Apigee 資料屬於機密資料,且攻擊者很有可能利用這些資料,請立即停用金鑰並撤銷存取權。請先停用金鑰,再重新建立
apigee
執行個體和apigee
機構。 -
低風險情況:如果減少停機時間比潛在風險更重要,請先重新建立
apigee
執行個體和apigee
組織,再停用/刪除 CMEK。請參閱下方說明,瞭解如何透過備份/還原功能,主動防止服務中斷。 - 聯絡支援團隊:如果您認為金鑰遭到入侵,且需要停用金鑰,建議您與 Google Cloud 客戶服務團隊聯絡。
請參閱下方說明,瞭解停用/撤銷/銷毀金鑰的影響。停用金鑰後,您必須重新建立 apigee
組織/執行個體。請參閱最佳做法。
- 執行階段 CMEK 妥協:使用新的 CMEK 建立新的執行個體,然後在流量遷移後刪除原始執行個體和舊的執行階段 CMEK。
-
所有 CMEK 遭到入侵:使用新的 CMEK 金鑰建立新的
apigee
組織、複製設定、轉移流量,然後關閉舊組織並停用/刪除原始 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) 和項目
- 金鑰庫和別名憑證 (私密金鑰除外)
這項工具可管理所有其他 Apigee 資源。您可以使用 apigeecli tree
查看完整的指令清單。
這項工具有幾項限制:
- 金鑰庫必須在建立時儲存私密金鑰,並將其納入本機備份檔案
- OAuth 權杖無法備份及還原,這表示客戶必須重新登入新建立的 Apigee 例項。
- 系統不會遷移 org policy 和 IAM 規則 等存取控制項。如要遷移這些規則,您必須使用 Google Cloud API。
-
系統不支援 Analytics 報表匯出作業,且不會將分析指標複製到新的
apigee
機構。 -
這個
import
指令不會自動為您建立執行個體、envGroup、EnvAttachments、端點附件或部署 Proxy。您可以管理這些資源,但不能直接透過import
指令。 -
這個
import
指令不會自動建立入口網站網站。您必須透過使用者介面手動建立入口網站網站。 - 建議您為刪除關鍵項目做好災難復原準備,並定期測試還原程序,確保您能迅速將流量切換至新建立的 Apigee 機構。
必要條件
開始前,請確認符合下列必要條件:
-
已安裝 Apigee CLI:按照 安裝指南中的步驟安裝
apigeecli
。 -
驗證:您必須具備必要權限和驗證憑證,才能與 Apigee 機構互動。請確認已設定下列項目:
-
Google Cloud SDK (
gcloud
):已安裝且通過驗證。 -
存取權杖:使用
gcloud auth print-access-token
取得存取權杖。
-
Google Cloud SDK (
- 網路存取權:請確認您的網路允許存取 Apigee API。
-
建立機構:建立要遷移至的
apigee
新機構。您可以建立 不同類型的apigee
機構,但請務必使用與原始機構相同類型的機構 (預付制或訂閱),以及相同的 網路路由類型。
匯出 Apigee 機構
以下是指令範例。如要進一步瞭解各種標記,請參閱「 apigecli 機構匯出」一文。
# 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
切換流量
如要切換流量,請按照下列步驟操作:
- 為新執行個體準備自動化整合測試。
- 設定負載平衡器,以便在監控效能時,逐步將流量轉移至新執行個體。