Apigee CMEK 的最佳做法

本頁面說明 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 叢集。

刪除車鑰

刪除金鑰前,請考量以下事項:

使用 CI/CD 備份保護 Apigee 機構

如果客戶管理的加密金鑰 (CMEK) 遭到入侵,請立即採取行動,停用、撤銷或銷毀遭到入侵的金鑰。不過,這項必要的安全措施可能會導致 Apigee 系統無法運作,進而導致系統停機和服務中斷。

為確保 Apigee 服務的停機時間最小化或完全沒有停機時間,您必須採取主動式做法:持續備份貴機構的設定 (持續整合/持續部署 (CI/CD) 備份)。請參閱可用的工具還原 Apigee 機構的最佳做法

CI/CD 和 IaC 的強大功能

投資使用 Terraform 這類工具,也就是基礎架構即程式碼 (IaC) 解決方案,可讓您從備份設定中無縫建立新的 Apigee 機構。這個簡化程序可讓您快速且有效率地重新建立 Apigee 機構,將停機時間降到最低,並確保業務持續運作。

可用的工具

您可以結合下列所有工具,定期備份 apigee 機構,並測試復原程序。

最佳做法

  • 定期備份:安排定期備份,確保您擁有最新的設定。請參閱匯出/重新建立機構
  • 安全儲存空間:將備份儲存在安全的位置,例如加密的存放區。
  • 測試還原程序:定期測試還原程序,確保您能有效復原 Apigee 機構。定期測試還原程序,確保您能迅速將流量切換至新建立的 Apigee 機構。

匯出/重建組織

apigeecli 工具是一項指令列工具,可讓您管理 Apigee 資源。您可以在易於使用的指令列介面中執行與 Apigee API 相同的動作,類似於 gcloud 指令。
如果您想重新建立 Apigee 機構或遷移至其他 Apigee 機構,可以使用 apigeecli organizations exportapigeecli organizations import。也可以用來做為持續備份的基礎。可匯出及匯入下列資源:

  • API 入口網站說明文件
  • API 入口網站類別
  • API Proxy
  • API 安全性設定和安全性設定檔
  • 共用流程
  • API 產品
  • 開發人員
  • 開發人員應用程式 (含憑證)
  • AppGroups 和包含憑證的應用程式
  • 環境詳細資料
  • 環境群組
  • 資料收集器設定
  • 環境層級 KeyStore 和別名憑證
  • 環境層級目標伺服器
  • 環境層級參照
  • 機構、環境和 Proxy 層級的鍵/值對應 (KVM) 和項目
  • 金鑰庫和別名憑證 (私密金鑰除外)

這項工具可管理所有其他 Apigee 資源。您可以使用 apigeecli tree 查看完整的指令清單。

這項工具有幾項限制:

  • 金鑰庫必須在建立時儲存私密金鑰,並將其納入本機備份檔案
  • OAuth 權杖無法備份及還原,這表示客戶必須重新登入新建立的 Apigee 例項。
  • 系統不會遷移 org policyIAM 規則 等存取控制項。如要遷移這些規則,您必須使用 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 取得存取權杖。
  • 網路存取權:請確認您的網路允許存取 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

匯入後的步驟

建立執行個體並設定網路

如要建立執行個體並設定網路,請按照下列步驟操作:

  1. 請按照「 建立新的執行個體」一節中的步驟建立新的執行個體。
  2. 設定北向流量:北向是指透過負載平衡器,從外部或內部用戶端傳送至 Apigee 的 API 流量。您必須確實正確設定 PSC 或 VPC,才能存取執行個體。您必須在新機構中設定環境群組主機名稱。
  3. 設定南向流量:南向是指從 Apigee 傳送至 API Proxy 目標服務的 API 流量。因此,您必須為 NAT 保留並啟用新的 IP 位址,並重新設定目標端點的防火牆/許可清單。

詳情請參閱「 Apigee 網路選項」。

備份/還原其他設定

請使用下列其中一種方法備份/還原其他設定:

部署 Proxy

請使用下列其中一種方式部署 Proxy:

切換流量

如要切換流量,請按照下列步驟操作:

  1. 為新執行個體準備自動化整合測試。
  2. 設定負載平衡器,以便在監控效能時,逐步將流量轉移至新執行個體。