Apigee CMEK 的最佳做法

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

刪除金鑰

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

使用 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) 和項目
  • 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 取得存取權杖。
  • 網路存取權:請確認您的網路允許存取 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

匯入後的步驟

建立執行個體並設定網路

請按照下列步驟建立執行個體並設定網路:

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

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

備份/還原其他設定

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

部署 Proxy

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

切換流量

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

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