Azure Key Vault 管理式 HSM 是一項完全託管、高度可用、單一租戶且符合標準的雲端服務,透過硬體安全模組(HSM)認證至 FIPS 140-3 第三級,保護雲端應用的加密金鑰。 託管 HSM 提供一系列內建的可靠性功能,幫助確保你的金鑰持續可用。
當您使用 Azure 時, 可靠性是共同的責任。 Microsoft 提供一系列功能來支援韌性和復原。 您有責任瞭解這些功能在您使用的所有服務中如何運作,並選取符合業務目標和正常運作時間目標所需的功能。
本文說明受管HSM如何對各種潛在的中斷與問題具備韌性,包括暫時性故障、分割區故障及區域中斷。 同時說明如何利用備份與安全領域進行災難復原,復原功能如何防止意外刪除,以及管理型 HSM 服務水準協議(SLA)的關鍵資訊。
生產部署建議
針對生產工作負載,我們建議您:
可靠性架構概觀
使用受管型 HSM 時,你會部署一個 實例,有時稱為 池。
託管 HSM 的架構設計注重高可用性與耐用性。
單一租戶隔離: 每個受管 HSM 實例專屬於單一客戶,並由多個加密隔離的 HSM 分割區叢集組成。
三重冗餘分割: 一個管理型 HSM 池由三個負載平衡的 HSM 分割區組成,分布於資料中心內的不同機架中。 此分布提供硬體故障的冗餘,並確保單一元件(如機架電源供應器或網路交換器)遺失不會影響所有分割區。
機密運算:每個服務執行個體都在使用 Intel SGX 安全隔離區的受信任執行環境 (TEE) 中執行。 Microsoft 員工,包括擁有伺服器實體存取權的個人,無法存取您的密碼金鑰資料。
自動治療: 若硬體故障或其他問題影響三個分割區之一,服務會自動在健康硬體上重建受影響分割區,無需客戶介入且不洩露機密。
欲了解託管 HSM 如何實作這些功能,請參閱 託管 HSM 中的「關鍵主權、可用性、效能與擴展性」。
安全領域
安全領域是受管型 HSM 災難復原中關鍵的元件。 它是一個加密的 blob,裡面包含從零開始重建受管理 HSM 實例所需的所有憑證,包括分割區擁有者金鑰、分割區憑證、資料包裝金鑰,以及 HSM 的初始備份。
Important
如果沒有安全性網域,則無法進行災害復原。 Microsoft 無法恢復安全網域,也無法在沒有它的情況下存取你的金鑰。
安全領域是您託管 HSM 安全性與可靠性的關鍵部分。 我們建議您遵循以下最佳實務:
安全地產生金鑰: 對於生產環境,請在空氣隔離環境中產生用於保護安全網域的 RSA 金鑰對,例如在內部部署的 HSM 或隔離的工作站中。
線下購物: 安全網域金鑰會儲存在加密的 USB 隨身碟或其他離線儲存裝置上,每個金鑰共享在不同地理位置的獨立裝置上。
建立多位法定人數: 至少使用三位金鑰持有者,以防止任何單一人員取得所有法定人數金鑰,並避免依賴單一個人。
如需詳細資訊,請參閱 受控 HSM 概觀中的安全性網域。
對瞬態故障的彈性
暫時性錯誤是元件中的短暫間歇性失敗。 它們經常出現在雲端等分散式環境中,而且是作業的一般部分。 暫時性錯誤會在短時間內自行修正。 請務必確保您的應用程式能妥善處理暫時性錯誤,通常透過重試受影響的請求來進行。
所有雲端託管應用程式在與任何雲端託管的 API、資料庫及其他元件通訊時,都應遵循 Azure 暫態故障處理指引。 如需詳細資訊,請參閱 處理暫時性錯誤的建議。
當你使用 Azure 服務與受管型 HSM 整合時,這些服務會自動處理暫時性錯誤。
若您建置與 Managed HSM 整合的客製化應用程式,請考慮以下最佳實務以處理可能發生的短暫錯誤:
使用 Microsoft 提供的 Azure Key Vault SDK ,其中包含內建的重試機制。 SDK 可用於 .NET、 Python 和 JavaScript。
對任何直接與受管 HSM 互動的程式碼,實作重試邏輯,包括指數回溯。
減少對託管 HSM 的直接依賴。 在可能的情況下,將快取加密操作的結果,以減少對受管型 HSM 的直接請求。 透過快取公開金鑰資料,在本地執行加密、封裝與驗證等公開金鑰操作。 在本地執行操作可降低對受管型 HSM 的依賴,並降低短暫故障中斷這些操作的可能性。
如果你在高吞吐量情境中使用受管型 HSM,受管型 HSM 不會限制加密運算。 它將 HSM 硬體的功能發揮到極致。 每個受管型 HSM 實例有三個分割區。 在維護或修復操作期間,可能有一個分割區無法使用。 容量規劃時,假設有兩個分割區可用。 如果你需要保證吞吐量,建議以一個分割區可用為基礎來規劃。 監控 託管 HSM 可用性指標 ,以了解服務的健康狀況。
要擴展大規模資料量的加密,可以使用金鑰階層。 僅將金鑰加密金鑰(KEK)儲存在受管型 HSM 中,並用它將存放於其他地方的低階資料加密金鑰封裝在安全金鑰儲存中。
欲了解更多效能基準與容量規劃資訊,請參閱 Azure Managed HSM 擴展指引。
對分割區故障的韌性
託管 HSM 透過其三重冗餘架構實現高可用性,每個 HSM 池由三個分散於資料中心內不同伺服器機架的 HSM 分割區組成。 這種機架層級的配置提供針對局部硬體故障的冗餘。
當硬體故障或局部故障發生時,管理式 HSM 會自動將您的請求導向健康的分割區,並透過稱為 機密服務修復的流程重建受影響的分割區。 失敗的分割區會在健康硬體上自動重建,透過經過驗證的 TLS 與 Intel SGX 隔區來保護復原期間的機密。
Cost
託管 HSM 內建的高可用性不會增加額外成本。 定價是根據 HSM 池的數量以及你執行的操作數量來決定的。 欲了解更多資訊,請參閱 Azure Managed HSM 價格。
所有分割區都健康時的行為
本節說明當受管理 HSM 池運作且無分割區可用時,可預期的情況。
流量路由: Managed HSM 會自動管理其三個分割區之間的流量路由。 在正常操作期間,它會透明地將請求分散到不同分割區。
資料複製: 受管理 HSM 會同步複製所有資料,包括金鑰、角色分配及存取控制政策,跨越三個分割區。 這種方法確保即使分割區無法使用,也能保持一致性與可用性。
分割區故障期間的行為
本節說明當一個或多個分割區無法使用時,可以預期的情況。
偵測與回應: 管理型 HSM 服務偵測分割區故障並自動回應。 分割區失敗時你不需要採取任何行動。
進行中的要求: 在分割區發生故障期間,傳送至受影響分割區且仍在處理中的要求可能會失敗,並需要由用戶端應用程式重試。 為減少分割區中斷的影響,用戶端應用程式應遵循 暫態故障處理的做法。
預期資料遺失: 由於分割區間同步複製,預期不會在分割區故障時遺失資料。
預期的停機時間: 對於讀取操作及大多數密碼學操作,分割區故障期間應幾乎沒有或沒有停機時間。 剩餘的狀態良好分區會繼續處理要求。
交通改道: 管理式 HSM 會自動將流量從受影響分割區重新導向健康分割區,無需客戶介入。
分區復原
當受影響的分割區恢復時,受管 HSM 會透過機密服務修復自動恢復操作。 此流程:
- 在健康的硬體上建立新的服務實例。
- 建立與主分割區的驗證 TLS 連線。
- 安全交換憑證與密碼資料。
- 將服務資料封印到新的 CPU。
Azure 平台完全管理此流程,且不需客戶介入。
對可用性區域故障的抵抗力
管理型 HSM 的高可用性是基於資料中心內的機架層級分布,而非明確的可用性區域部署。 每個分割區運行於不同機架中的獨立伺服器,以防止機架層級故障,如電源供應或網路交換器問題。
為防範資料中心範圍或可用性區域的故障,請採用《 區域性韌性》中描述的方法之一。
對區域範圍故障的復原能力
受管理的 HSM 資源部署在單一的 Azure 區域中。 如果該區域無法使用,你的管理型 HSM 也會無法使用。 不過,有一些方法可以幫助你確保對區域中斷的韌性。
多區域複製
受管型 HSM 支援可選的多區域複製,你可以用它將受管型 HSM 池從一個 Azure 區域(主要區域)擴展到第二個 Azure 區域(擴展區域)。 當你設定這個功能時:
- 兩個區域都處於作用中狀態,並可處理請求。
- 關鍵資料、角色與權限會自動在區域間複製。
- Azure 流量管理員 會將請求路由到最近的可用區域。
- 合併後的 SLA 增加。
要求
區域支援: 所有支援託管 HSM 的區域都可以作為主要區域使用。 它沒有依賴 Azure 區域配對。
託管 HSM 並不支援所有區域作為延伸區域。 欲了解更多資訊,請參閱 Azure 區域支援。
最大區域數量: 你可以新增一個擴展區域,最多兩個區域。
Cost
多區域複製會產生額外計費,因為擴展區域會消耗第二個 HSM 池。 欲了解更多資訊,請參閱 Azure Managed HSM 價格。
配置多區域複製
新增一個擴展區域: 關於如何在現有主要區域新增擴展區域的細節,請參見 「將主要 HSM 擴展到擴展區域」。
將受管型 HSM 延伸到其他區域可能需要長達 30 分鐘。
移除一個擴展區域: 關於如何從現有主要區域移除擴展區域的詳細資訊,請參見 「從主要 HSM 移除擴展區域」。
當所有區域都正常時的行為
本節說明配置多區域複製時可預期的情況,且兩個區域皆可運作。
交通規劃: 所有地區都可以處理申請。 Azure 流量管理員 會將請求路由到地理位置最接近或延遲最低的區域。
如果你使用 Azure Private Link 存取受管型 HSM,請在兩個區域設定私人端點,以便在故障轉移時達到最佳路由。 欲了解更多資訊,請參閱 多區域複製的私有連結行為。
資料複製: 所有對鍵、角色定義及角色指派的變更,會在六分鐘內非同步複製到擴展區域。 建立或更新金鑰後,請等待六分鐘後再在擴展區域使用。
區域失敗期間的行為
本節說明當你設定多區域複製時,當其中一個副本區域發生故障時,會發生什麼情況。
- 偵測與回應:Azure 流量管理員 偵測不健康的區域,並將未來的請求導向該健康區域。 DNS 記錄的存留時間 (TTL) 為 5 秒,但會快取 DNS 查找的用戶端可能會經歷稍長的容錯移轉時間。
- Notification: Microsoft 不會自動通知你區域故障。 不過,你可以使用 Azure 服務健康狀態 來了解整體服務的健康狀況,包括任何區域故障,並且可以設定 服務健康警示 來通知你問題。
進行中的請求: 傳送至受影響區域的請求可能會失敗,並需要重試。
預期資料遺失: 區域故障前六分鐘內所做的變更,可能無法複製到擴展區域。 如果主要區域無法恢復,這些變更可能會遺失。
預期的停機時間: 在回復過程中,讀取和寫入操作仍可在正常運作區域內使用。
接近不健康區域的用戶端應用程式可能會持續被導向該區域,直到 DNS 紀錄更新,但此更新大約會在五秒內完成。 為了將容錯移轉時間降到最短,用戶端快取 DNS 查找的時間應避免超過該 DNS 紀錄所設定的 TTL。
重新規劃: Azure 流量管理員 會自動將請求重新導向到健康區域。
區域復原
當受影響區域恢復時,管理型 HSM 會自動恢復運作。 Azure 流量管理員 會根據距離開始將請求路由到兩個區域。
區域故障測試
受控 HSM 完全管理流量路由、容錯移轉以及區域故障的容錯回復,因此您無需確認區域故障流程,也不需提供任何進一步的輸入。
客製化多區域韌性解決方案
如果多區域複製不適合你的需求,你可以實施手動災難復原。 此方法需要:
- 來源 HSM 的安全域。
- 加密安全域的私人金鑰 (至少是法定人數)。
- 來自原始 HSM 的近期完整的 HSM 備份。
要進行災難復原:
- 在不同區域建立一個新的受管 HSM 實例。
- 啟用安全域恢復模式並上傳安全域。
- 備份新的 HSM (還原前必須)。
- 從來源 HSM 還原備份。
Important
新的 HSM 有不同的名稱和服務端點 URI。 你必須更新應用程式設定以使用新地點。
有關詳細的災難復原程序,請參見 受管型 HSM 災難復原。
備份與還原
管理式 HSM 支援所有金鑰、版本、屬性、標籤及角色指派的完整備份與還原。 備份會儲存在 Azure 儲存帳號中。 如果您的區域支援,建議您將受管 HSM 備份到啟用地理冗餘儲存(GRS)的 Azure 儲存體 帳號。
完整備份會提供 HSM 內容的復原副本,但不會在基礎設施故障時保留 HSM 的可用性。 使用本指南中描述的其他功能來備份。 欲了解更多關於複製與備份如何處理不同風險的資訊,請參閱 冗餘、複製與備份。
HSM 透過與 HSM 安全域相關的密碼金鑰來加密備份。 你只能將備份還原到擁有相同安全域的 HSM。
Managed HSM 不支援排程備份,但你可以用像 Azure Functions 或 Azure 自動化 這類服務來建立自己的排程器。
備份進行中,HSM 可能無法以完整吞吐量運作,因為部分分割區正忙於執行備份操作。
詳細的備份與還原程序,請參見 完整備份與還原。
對意外刪除的韌性
受管式 HSM 提供兩項關鍵復原功能以防止意外或惡意刪除。
軟體刪除: 刪除的 HSM 和金鑰不會立即被清除。 這些資料在可設定為 7 到 90 天的保留期間內仍可復原(預設為 90 天)。 軟刪除是一直啟用的,無法關閉。
Note
虛刪除的受控 HSM 資源會繼續產生費用,直到遭到徹底清除為止。
徹底清除防護:啟用後,在保留期限屆滿之前,可防止受控 HSM 及其金鑰遭到永久刪除。 清除保護無法被任何人關閉或覆蓋,包括 Microsoft。
我們強烈建議在生產環境中啟用清除保護。 欲了解更多資訊,請參閱 管理型 HSM 軟刪除及清除保護。
服務維護的韌性
託管 HSM 負責服務維護,包括韌體更新、修補及硬體修復,無需客戶介入。 維護期間:
- 服務可能會暫時讓分割區無法使用,以進行更新。
- 例行維護期間,至少有三個隔間中有兩個仍可用。
- 你的客戶端應用程式應該實作重試邏輯來處理短暫中斷。
保密的服務修復過程確保服務在維護過程中不會洩露機密。
服務等級協定
Azure 服務的服務層級協議(SLA)描述了每項服務的預期可用性,以及您的解決方案必須符合的條件,以達成該可用性預期。 欲了解更多資訊,請參閱線上服務的服務等級協議。
託管 HSM 為單一區域部署提供標準可用性服務等級協議(SLA)。 啟用 多區域複製 會提高整體預期的正常運作時間,因為當其中一個區域無法使用時,請求仍可由任一區域提供。