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