本文上次更新於 2025 年 1 月,內容反映撰文時的情況。我們會持續改善保護客戶的方式,因此 Google 的安全性政策和系統未來可能會改變。
Cloud HSM 是 Cloud Key Management Service (Cloud KMS) 架構的一部分,可提供後端,用於佈建及管理受硬體保護的金鑰。為協助您遵守公司和法規規範,Cloud HSM 可讓您在 FIPS 140-2 第 3 級認證的硬體安全模組 (HSM) 中產生加密金鑰,並執行密碼編譯作業。
本文說明 Cloud HSM 架構,包括硬體管理方式,以及金鑰的驗證和建立方式。如要進一步瞭解 Cloud KMS,請參閱「Cloud Key Management Service 加密」一文。
總覽
密碼編譯作業包括:
- 靜態資料加密
- 保護憑證授權單位服務的私密金鑰
- 保護資料加密金鑰,以便與加密資料一起儲存
- 產生及使用非對稱金鑰,進行數位簽名和驗證等加密編譯作業
Cloud HSM 使用 Marvell LiquidSecurity HSM (型號為 CNL3560-NFBE-2.0-G 和 CNL3560-NFBE-3.0-G),韌體版本為 3.4 建構 09。如要進一步瞭解我們的認證,請參閱認證 #4399。如要瞭解 HSM 裝置和受硬體保護的金鑰,請參閱金鑰認證。
Cloud HSM 為全代管服務,因此您不必擔心管理 HSM 叢集會產生額外的費用,就能保護工作負載。這項服務具備下列優點:
- 全域可用性
- 一致且統一的 API
- 根據用量自動調整資源配置
- 集中管理與法規遵循
Cloud HSM 可在 Google Cloud 全球各個區域使用,包括涵蓋較大地理範圍的多個區域。您必須使用 Cloud KMS 服務端點,在 Cloud HSM 中建立及使用硬體保護的金鑰,保護資料 (包括儲存在其他Google Cloud 服務中的資料,例如 BigQuery、Cloud Storage 和 Persistent Disk)。
有了 Cloud HSM,您就能使用硬體保護的金鑰,不必自行管理 HSM 硬體。Google 擁有並管理 HSM 硬體,包括部署、設定、監控、修補及維護。使用 Cloud HSM 時,您的資料會與 Google Cloud其他租戶和服務嚴格隔離。Cloud HSM 資料平面 API 是 Cloud Key Management Service API 的一部分,可讓您以程式輔助方式管理受硬體保護的金鑰。
凡是 Google Cloud 服務支援 CMEK 金鑰,Cloud HSM 就能支援硬體保護的 Cloud KMS Autokey 和客戶管理加密金鑰 (CMEK)。舉例來說,您可以使用自己管理的 Cloud HSM 金鑰,加密 Cloud Storage bucket 或 Cloud SQL 資料表中的資料。
Cloud HSM 管理
在 Cloud HSM 中,HSM 叢集是由 Google 網站可靠性工程師 (SRE) 和技術人員維護,他們在每個 Google Cloud資料中心位置工作。Google 負責實體安全、邏輯安全、基礎架構、容量規劃、地域擴展和資料中心災難復原規劃。
HSM 硬體抽象化
一般來說,應用程式會同時使用 PKCS#11 和叢集管理 API,直接與 HSM 通訊。如要進行這類通訊,您必須維護專用程式碼,以供使用或管理硬體保護金鑰的工作負載使用。
Cloud HSM 會透過 Cloud Key Management Service API 代理硬體防護金鑰的要求,藉此將通訊從 HSM 中抽象化。這項抽象化功能可減少 HSM 專屬程式碼的需求。Cloud HSM 繼承了與 Cloud KMS 的緊密整合。
與 Cloud KMS 緊密整合可大幅提升安全性。Cloud Key Management Service API 大幅縮減可用的 HSM 介面範圍,降低客戶發生安全漏洞時的風險。舉例來說,攻擊者無法抹除整個 HSM。根據預設,系統會透過 30 天的安全期,減輕個別金鑰的刪除嘗試。您可以設定 constraints/cloudkms.minimumDestroyScheduledDuration
機構政策,為新金鑰的「排定銷毀時間」強制設定最短時間,並設定 constraints/cloudkms.disableBeforeDestroy
機構政策,只在金鑰版本停用時刪除。詳情請參閱控管金鑰版本刪除作業。
您可以使用身分與存取權管理 (IAM) 控管 HSM 資源的存取權。與自訂 HSM 解決方案相比,身分與存取權管理設定較不容易發生設定錯誤和錯誤。
下圖顯示 Cloud HSM 架構。
設計上嚴格區隔地理位置
在 Cloud HSM 中,您可以選擇讓金鑰在全球範圍內可用,或是對需要限制的金鑰強制執行嚴格的地理位置限制。
HSM 通常會劃分為多個磁碟分割區,因此單一實體裝置可以做為多個邏輯裝置運作。如果需要區隔 HSM 管理和金鑰,您可以使用分區來降低部署費用。下圖顯示三個區域中的分割區。
為隔離每個區域和多區域的金鑰,每個 Cloud HSM 區域都會與個別的 HSM 區域包裝金鑰建立關聯 (請參閱「建立金鑰」中的圖表)。為支援高可用性,包裝金鑰會複製到位於該區域的每個 HSM 分割區。HSM 區域金鑰不會離開該位置的 HSM。複製功能可讓同一地區的 HSM 服務同一組客戶金鑰,並確保該地區以外的 HSM 無法服務這些金鑰。
Cloud HSM 也會使用包裝金鑰建立多個區域。多地區的所有客戶金鑰,都會使用多地區所有位置的磁碟分割區中存在的包裝金鑰進行包裝。這項服務會使用相同的多區域硬體,但會在區域和多區域之間提供與不同區域之間相同的強大隔離功能。
區域化配置規定包裝金鑰只能複製到適當的分割區。每項設定變更都必須經過 Cloud HSM 團隊的多位成員核准,才會生效。資料中心技術人員無法存取 HSM 設定、執行階段或儲存空間。
集中管理
在代管 HSM 的傳統資料中心,HSM 和其資源的管理作業,與其他受硬體保護的金鑰管理作業完全分開。Cloud HSM 與 Google Cloud緊密整合,方便您順暢管理 Cloud HSM 資源。舉例來說,您可以管理下列項目:
- 您可以在 Cloud KMS 中管理受硬體保護的金鑰和其他金鑰,並在 Cloud External Key Manager (Cloud EKM) 中管理外部代管金鑰。
- 您可以在 IAM 中管理受硬體保護的金鑰存取權。
- 使用硬體保護金鑰的加密編譯作業費用報表會顯示在 Cloud Billing 中。
- 在所有支援使用 CMEK 加密資源的服務中,您都可以透明地使用硬體保護金鑰。 Google Cloud 整合 CMEK 時,CMEK 金鑰和加密資料必須位於相容的地理位置。由於 Cloud HSM 金鑰有嚴格的地理位置限制,因此 CMEK 資料的所有加密和解密作業也受到地理位置限制。
- Cloud 稽核記錄一律會在 API 層記錄硬體保護金鑰的管理作業。您也可以選擇啟用資料存取記錄。詳情請參閱「Cloud KMS 稽核記錄資訊」。
- Google 會直接與 HSM 製造商合作,確保每個 HSM 的硬體和軟體都維持在最新狀態,並即時找出及修正問題。如果 HSM 發生零時差攻擊,Google 可以選擇性停用受影響 HSM 叢集上的受影響程式碼路徑,直到攻擊問題修正為止。
- 您可以使用金鑰用量追蹤資訊主頁,追蹤金鑰 (包括受硬體保護的金鑰) 和加密資源。
開發人員和使用者體驗
由於 Google 負責管理 HSM,Cloud HSM 可為開發人員和使用者帶來顯著優勢。
Google 規模的 HSM
如果依賴內部部署或資料中心內的硬體,硬體可能會造成效能瓶頸,或成為單一故障點。Cloud HSM 的設計極具彈性,可因應無法預測的工作負載和硬體故障。Cloud HSM 後端會在每個區域使用 HSM 集區,確保高可用性和擴充性。這個 HSM 集區可讓 Cloud HSM 提供高處理量。詳情請參閱「監控及調整 Cloud KMS 配額」。
所有客戶金鑰都會在 Cloud KMS 資料庫中,以區域包裝金鑰包裝的形式儲存,且只能由區域中的 HSM 解除包裝,做為加密編譯作業的一部分。包裝有以下好處:
- 金鑰的耐久性與區域中的特定 HSM 或 HSM 子集無關。
- 每位 Cloud HSM 客戶都能體驗完整規模和可用性的 Cloud HSM 叢集,這些叢集會提供金鑰服務。
- Cloud HSM 可處理的 HSM 金鑰數量遠遠超過 HSM 儲存空間的容量。
- 新增或更換 HSM 既快速又安全。
統一 API 設計
Cloud HSM 和 Cloud KMS 共用管理和資料平面 API。與 HSM 通訊的內部詳細資料會從呼叫端抽象化。
因此,如要更新現有應用程式,使其支援受硬體保護的金鑰,您無須變更任何程式碼。而是更新要使用的金鑰資源名稱。
支援 PKCS#11
您可以使用 Cloud Key Management Service API,將現有應用程式連線至 Cloud HSM,以便管理加密編譯金鑰。PKCS#11 程式庫可讓您使用受硬體保護的金鑰簽署二進位檔,並提供 TLS 網頁工作階段。
安全性和法規遵循
Cloud HSM 已取得多項法規的認證,包括 FedRAMP High、C5:2020 和 OSPAR。此外,Cloud HSM 可協助您在雲端中,對工作負載強制執行法規遵循。
加密編譯金鑰認證
每次產生或匯入 Cloud HSM 金鑰時,HSM 都會產生認證聲明,並使用與分割區相關聯的簽署金鑰簽署聲明。聲明包含金鑰屬性的相關資訊。簽署金鑰由憑證鏈支援,而憑證鏈的根源是 Google 和 HSM 製造商。您可以下載認證聲明和憑證,驗證聲明的真實性,並驗證金鑰和產生/匯入金鑰的 HSM 屬性。
憑證鏈結可讓您檢查下列項目:
- HSM 硬體和韌體是正版。
- HSM 分區和 HSM 由 Google 管理。
- HSM 處於 FIPS 作業模式。
您可以透過認證聲明內容檢查下列事項:
- 金鑰無法擷取。
- 系統已為您的 CryptoKeyVersion 產生金鑰。
- 非對稱金鑰組中的公開金鑰對應於受硬體保護的私密金鑰。
- 匯入的對稱金鑰金鑰內容與您包裝的值相符。
直接將金鑰安全匯入 HSM
您可以將現有金鑰安全地匯入 Cloud HSM,以便在 Google Cloud外部備份金鑰內容,或簡化將特定工作負載遷移至 Google Cloud的程序。在金鑰匯入程序中,Google 無法直接存取解除包裝的金鑰內容。Cloud HSM 會提供 HSM 產生的包裝金鑰認證聲明,驗證是否發生任何存取行為。
由於使用者可從不明來源匯入金鑰,因此金鑰匯入作業可能會造成安全性和法規遵循風險。為此,我們提供個別的 IAM 角色,讓您精細控管可將金鑰匯入專案的使用者。匯入的金鑰可透過 HSM 在匯入時產生的認證陳述式加以區別。
詳情請參閱將金鑰匯入 Cloud Key Management Service。
嚴格的安全程序可保護 HSM 硬體
根據 FIPS 140-2 第 3 級的規定,HSM 裝置內建機制,可防範實體竄改行為,並提供相關證據。
除了 HSM 硬體本身提供的保證外,Cloud HSM 的基礎架構也根據 Google 基礎架構安全性設計總覽進行管理。
下列可稽核的程序已記錄在案,可保護每個 HSM 在佈建、部署和生產期間的完整性:
- 所有 HSM 設定都必須經過多位 Cloud HSM SRE 驗證,才能將 HSM 部署到資料中心。
- HSM 投入服務後,只有多位 Cloud HSM SRE 才能發起及驗證設定變更。
- HSM 只能接收由 HSM 製造商簽署的韌體。
- HSM 硬體不會直接暴露在任何網路上。
- 伺服器不得執行未經授權的程序,以免主機 HSM 硬體。
系統操作員的職責定義於標準作業程序中。系統作業人員執行職務時,無法存取、使用或擷取客戶金鑰內容。
服務和租戶隔離
Cloud HSM 架構可確保 HSM 不會受到其他服務或租戶的惡意或無意干擾。
這個架構中的 HSM 只會接受來自 Cloud HSM 的要求,而 Cloud HSM 服務只會接受來自 Cloud KMS 服務的要求。Cloud KMS 服務會強制規定,呼叫者必須對嘗試使用的金鑰具備適當的 IAM 權限。未經授權的要求不會傳送至 HSM。
受硬體保護的金鑰也適用於加密編譯作業的配額。這些配額可防止使用者無意或惡意嘗試讓服務過載,確保您能順利執行工作負載。預設配額是根據觀察到的使用模式而定。這些配額遠低於服務容量,您可以申請提高配額。
要求流程
本節將透過不同類型的要求步驟,說明 Cloud HSM 架構在實務上的應用方式。這些流程著重於 Cloud HSM 部分。如要進一步瞭解所有金鑰通用的步驟,請參閱 Cloud Key Management Service 深入探討。
建立金鑰
建立硬體保護金鑰時,Cloud Key Management Service API 不會建立金鑰材料,而是要求 HSM 建立。
HSM 只能在支援的位置建立金鑰。HSM 上的每個分割區都包含對應於 Cloud KMS 位置的包裝金鑰。包裝金鑰會由支援 Cloud KMS 位置的所有分區共用。
下圖顯示 Cloud KMS 如何包裝受硬體保護的金鑰。
金鑰建立流程如下:
- Google Front End Service (GFE) 會將金鑰建立要求,轉送至與要求相應位置的 Cloud KMS 伺服器。
- Cloud Key Management Service API 會驗證呼叫端的 ID、呼叫端在專案中建立金鑰的權限,以及呼叫端是否具有足夠的寫入要求配額。
- Cloud Key Management Service API 會將要求轉送至 Cloud HSM。
- Cloud HSM 會直接與 HSM 介接。HSM:
- 建立金鑰,並以特定位置的包裝金鑰包裝。
- 為金鑰建立認證陳述式,並使用分割區簽署金鑰簽署。
- Cloud HSM 將包裝金鑰和認證傳回 Cloud KMS 後,Cloud Key Management Service API 會根據 Cloud KMS 金鑰階層包裝 HSM 包裝金鑰,然後寫入專案。
這項設計可確保金鑰無法在 HSM 外部解開包裝或使用,也無法從 HSM 擷取,且只能在指定位置以未包裝狀態存在。
密碼編譯作業
在 Cloud KMS 中執行加密編譯作業時,您不需要知道使用的是硬體保護或軟體保護的金鑰。當 Cloud Key Management Service API 偵測到作業涉及硬體保護金鑰時,會將要求轉送至相同位置的 HSM。密碼編譯作業的步驟如下:
- GFE 會將要求轉送至適當位置的 Cloud KMS 伺服器。Cloud Key Management Service API 會驗證呼叫端的身分、呼叫端存取金鑰和執行作業的權限,以及專案的加密作業配額。
- Cloud Key Management Service API 會從資料存放區擷取包裝金鑰,並使用 Cloud KMS 主金鑰解密一個層級的加密。金鑰仍會以 KMS 位置的 HSM 包裝金鑰包裝。
- Cloud Key Management Service API 會偵測到防護等級為 HSM,並將部分未包裝的金鑰連同加密編譯作業的輸入內容傳送至 Cloud HSM。
- Cloud HSM 會直接與 HSM 介接。HSM 會完成下列作業:
- 檢查包裝金鑰及其屬性是否經過修改。
- 解開金鑰包裝,並載入 HSM 儲存空間。
- 執行加密編譯作業並傳回結果。
- Cloud Key Management Service API 會將結果傳回給呼叫端。
使用硬體保護金鑰的加密編譯作業完全在設定位置的 HSM 內執行,且只有呼叫端能看到結果。
下圖顯示在 Cloud KMS 中建立硬體保護金鑰和軟體保護金鑰的差異。
CMEK 整合
所有受硬體保護的金鑰都是 CMEK。如要設定啟用 CMEK 的服務使用 Cloud HSM 金鑰,只要按照服務專屬的操作說明選擇 HSM 保護層級的金鑰即可。
當呼叫端讀取或寫入資料至啟用 CMEK 的服務時,呼叫端不需要使用金鑰的直接權限,也不需要知道金鑰是否儲存在 HSM 中。
使用硬體保護金鑰和軟體保護金鑰時,CMEK 作業流程相同,但使用硬體保護金鑰時有以下例外狀況:
- 啟用 CMEK 的服務會透過 Google 網路發出要求,不必經過 GFE。
- Cloud Key Management Service API 會驗證啟用 CMEK 的服務帳戶是否具備使用金鑰的適當權限。Cloud Key Management Service API 不會驗證啟用 CMEK 服務的使用者權限。
如要使用 Autokey 佈建 Cloud KMS 金鑰,必須使用 Cloud HSM。Autokey 可讓 Cloud KMS 服務代理程式在收到要求時,自動佈建受硬體保護的金鑰。詳情請參閱自動佈建 CMEK。
使用自己的 HSM
Cloud HSM 使用的 HSM 由 Google 管理。不過,在某些情況下,貴機構可能會想使用自己的 HSM,儲存工作負載的硬體保護金鑰。舉例來說,使用自己的 HSM 可能有助於將工作負載遷移至 Google Cloud。
Google 僅在特定地區提供基礎架構 HSM 即服務,可為Google Cloud中的安全加密交易提供加密金鑰作業。這兩項產品分別是 Bare Metal Rack HSM 和 Bare Metal HSM。使用 Bare Metal Rack HSM 或 Bare Metal HSM 時,您需要自行購買及設定 HSM,然後將其運送到 Google 資料中心,由 Google 代管。您保有 HSM 的完整邏輯存取權,且必須直接與 HSM 供應商合作,管理及排解裝置問題。Google 會收取費用,提供實體和網路安全防護、機架空間、電力和網路整合服務。詳情請參閱「Bare Metal Rack HSM」和「Bare Metal HSM」。
後續步驟
如要進一步瞭解,請參閱下列資源: