共用方式為


將受 HSM 保護的金鑰匯入受控 HSM (BYOK)

Azure Key Vault 受控 HSM 支援匯入在內部部署硬體安全模組 (HSM) 中產生的金鑰;金鑰永遠不會離開 HSM 保護界限。 此案例通常稱為「攜帶您自己的金鑰」(BYOK)。 受控 HSM 會使用 Marvell LiquidSecurity HSM 介面卡 (已通過 FIPS 140-2 層級 3 驗證) 來保護您的金鑰。

使用本文中的資訊,協助您規劃、產生並傳輸受 HSM 保護的金鑰,以搭配受控 HSM 使用。

注意

此功能不適用於由 21Vianet 營運的 Microsoft Azure。 此匯入方法僅適用於支援的 HSM

如需詳細資訊,以及開始使用受控 HSM 的教學課程,請參閱什麼是受控 HSM?

概觀

以下是流程概觀。 本文稍後會說明要完成的特定步驟。

  • 在受控 HSM 中產生金鑰 (稱為「金鑰交換金鑰」(KEK))。 KEK 必須是只能進行 import 金鑰作業的 RSA HSM 金鑰。
  • 將 KEK 金鑰下載為 .pem 檔案。
  • 將 KEK 公開金鑰傳送至連線到內部部署 HSM 的離線電腦。
  • 在離線電腦中,使用 HSM 廠商提供的 BYOK 工具來建立 BYOK 檔案。
  • 此目標金鑰利用 KEK 加密,且加密狀態會維持到金鑰傳輸至受控 HSM 為止。 只有加密版本的金鑰可以離開內部部署 HSM。
  • 在受控 HSM 內產生的 KEK 無法匯出。 HSM 會強制執行規則,指出除了受控 HSM 以外沒有任何明確的 KEK 版本存在。
  • KEK 必須位於要匯入目標金鑰的相同受控 HSM 中。
  • 將 BYOK 檔案上傳至受控 HSM 時,受控 HSM 會使用 KEK 的私密金鑰來解密目標金鑰內容,並匯入為 HSM 金鑰。 此作業完全在 HSM 內執行。 目標金鑰一律會保留在 HSM 保護界限內。

必要條件

若要使用本文中的 Azure CLI 命名,您必須具有下列項目:

Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Azure Cloud Shell 的「試試看」範例螢幕擷取畫面。
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 啟動 Azure Cloud Shell 的按鈕。
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 顯示 Azure 入口網站中 Cloud Shell 按鈕的螢幕擷取畫面

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 Enter 鍵執行程式碼或命令。

若要使用 CLI 登入 Azure,請輸入:

az login

若要進一步了解透過 CLI 的登入選項,請參閱使用 Azure CLI 進行登入

支援的 HSM

廠商名稱 廠商類型 支援的 HSM 模型 其他相關資訊
Cryptomathic ISV (企業金鑰管理系統) 多個 HSM 品牌和型號,包括
  • nCipher
  • Thales
  • Utimaco
如需詳細資訊,請參閱 Cryptomathic 網站
Entrust 製造商,
HSM 即服務
  • HSM 的 nShield 系列
  • nShield 即服務
nCipher 新的 BYOK 工具和文件
Fortanix 製造商,
HSM 即服務
  • 自我保護金鑰管理服務 (SDKMS)
  • Equinix SmartKey
將 SDKMS 金鑰匯出至 BYOK 的雲端提供者 - Azure Key Vault
IBM 製造商 IBM 476x、CryptoExpress IBM 企業金鑰管理基礎 (英文)
Marvell 製造商 所有 LiquidSecurity HSM,具有
  • 韌體版本 2.0.4 或更新版本
  • 韌體版本 3.2 或更新版本
Marvell BYOK 工具和文件
Securosys SA 製造商,HSM 即服務 Primus HSM 系列,Securosys Clouds HSM Primus BYOK 工具和文件
StorMagic ISV (企業金鑰管理系統) 多個 HSM 品牌和型號,包括
  • Utimaco
  • Thales
  • nCipher
如需詳細資訊,請參閱 StorMagic 網站
SvKMS 和 Azure Key Vault BYOK
Thales 製造商
  • Luna HSM 7 系列 (含韌體版本7.3 或更新版本)
Luna BYOK 工具和文件
Utimaco 製造商,
HSM 即服務
u.trust Anchor、CryptoServer Utimaco BYOK 工具與整合指南

受支援的金鑰類型

索引鍵名稱 金鑰類型 金鑰大小/曲線 原始來源 描述
金鑰交換金鑰 (KEK) RSA-HSM 2048 位元
3072 位元
4096 位元
受控 HSM 在受控 HSM 中產生之受 HSM 支援的 RSA 金鑰組
目標金鑰
RSA-HSM 2048 位元
3072 位元
4096 位元
廠商 HSM 要傳輸至受控 HSM 的金鑰
EC-HSM P-256
P-384
P-521
廠商 HSM 要傳輸至受控 HSM 的金鑰
對稱金鑰 (oct-hsm) 128 位元
192 位元
256 位元
廠商 HSM 要傳輸至受控 HSM 的金鑰

產生金鑰並傳輸至受控 HSM

步驟 1:產生 KEK

KEK 是在受控 HSM 中產生的 RSA 金鑰。 KEK 用來加密您要匯入的金鑰 (「目標」金鑰)。

KEK 必須是:

  • RSA-HSM 金鑰 (2048 位元;3072 位元或 4096 位元)
  • 在您要匯入目標金鑰的相同受控 HSM 中產生
  • 建立時允許的金鑰作業設定為 import

注意

「匯入」必須是 KEK 唯一允許的金鑰作業。 「匯入」與所有其他金鑰作業互斥。

使用 az keyvault key create 命令,建立將金鑰作業設定為 import 的 KEK。 記錄從下列命令傳回的金鑰識別碼 (kid)。 (您將使用步驟 3 中的 kid 值。)

az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --hsm-name ContosoKeyVaultHSM

步驟 2:下載 KEK 公開金鑰

使用 az keyvault key download 將 KEK 公開金鑰下載至 .pem 檔案。 您匯入的目標金鑰會使用 KEK 公開金鑰加密。

az keyvault key download --name KEKforBYOK --hsm-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem

將 KEKforBYOK.publickey.pem 檔案傳送到您的離線電腦。 您會在下一個步驟中使用此檔案。

步驟 3:產生並準備您的金鑰以進行傳輸

請參閱 HSM 廠商的文件,以下載並安裝 BYOK 工具。 遵循 HSM 廠商提供的指示來產生目標金鑰,然後建立金鑰傳輸套件 (BYOK 檔案)。 BYOK 工具會使用步驟 1kid 以及步驟 2 中下載的 KEKforBYOK.publickey.pem 檔案,在 BYOK 檔案中產生加密的目標金鑰。

將 BYOK 檔案傳送到已連線的電腦。

注意

不支援匯入 RSA 1024 位元金鑰。 支援匯入 EC-HSM P256K 金鑰。

已知問題:只有韌體 7.4.0 或更新版本才支援從 Luna HSM 匯入 RSA 4K 目標金鑰。

步驟 4:將金鑰傳輸至受控 HSM

若要完成金鑰匯入,請將金鑰傳輸套件 (BYOK 檔案) 從已中斷連線的電腦傳輸到連線網際網路的電腦。 使用 az keyvault key import 命令,將 BYOK 檔案上傳至受控 HSM。

az keyvault key import --hsm-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok

如果上傳成功,Azure CLI 會顯示匯入金鑰的屬性。

下一步

您現在可以在受控 HSM 中使用這個受 HSM 保護的金鑰。 如需詳細資訊,請參閱本價格和功能比較