將受 HSM 保護的金鑰匯入 Key Vault (BYOK)
為了加強保證,使用 Azure Key Vault 時,您可以在硬體安全模組 (HSM) 中匯入或產生無需離開 HSM 界限的金鑰。 此案例通常稱為「攜帶您自己的金鑰」(BYOK)。 Key Vault 會使用 FIPS 140 已驗證 HSM 來保護您的金鑰。
使用本文中的資訊,協助您規劃、產生然後傳送自己受 HSM 保護的金鑰,以搭配使用 Azure 金鑰保存庫。
如需詳細資訊,以及開始使用 Key Vault 的教學課程 (包括如何為受 HSM 保護的金鑰建立金鑰保存庫),請參閱什麼是 Azure Key Vault?。
概觀
以下是流程概觀。 本文稍後會說明要完成的特定步驟。
- 在 Key Vault 中產生金鑰 (稱為「金鑰交換金鑰」 (KEK))。 KEK 必須是只能進行
import
金鑰作業的 RSA HSM 金鑰。 只有 Key Vault Premium 和受控 HSM 支援 RSA-HSM 金鑰。 - 將 KEK 金鑰下載為 .pem 檔案。
- 將 KEK 公開金鑰傳送至連線到內部部署 HSM 的離線電腦。
- 在離線電腦中,使用 HSM 廠商提供的 BYOK 工具來建立 BYOK 檔案。
- 此目標金鑰利用 KEK 加密,且加密狀態會維持到金鑰傳輸至 Key Vault HSM 為止。 只有加密版本的金鑰可以離開內部部署 HSM。
- 在 Key Vault HSM 內產生的 KEK 無法匯出。 HSM 會強制執行規則,指出除了 Key Vault HSM 以外沒有任何明確的 KEK 版本存在。
- KEK 必須位於要匯入目標金鑰的相同金鑰保存庫中。
- 將 BYOK 檔案上傳至 Key Vault 時,Key Vault HSM 會使用 KEK 的私密金鑰來解密目標金鑰內容,並匯入為 HSM 金鑰。 此作業完全在 Key Vault HSM 內執行。 目標金鑰一律會保留在 HSM 保護界限內。
必要條件
下表列出在 Azure Key Vault 中使用 BYOK 的必要條件:
需求 | 其他相關資訊 |
---|---|
Azure 訂用帳戶 | 若要在 Azure Key Vault 中建立金鑰保存庫,您需要 Azure 訂用帳戶。 註冊免費試用版。 |
用於匯入受 HSM 保護的金鑰的 Key Vault Premium 或受控 HSM | 如需 Azure 金鑰保存庫的服務層級和功能的詳細資訊,請參閱 Key Vault 定價。 |
支援的 HSM 清單中的 HSM,以及 HSM 廠商提供的 BYOK 工具和指示 | 您必須具備 HSM 的權限,以及如何使用 HSM 的基本知識。 請參閱支援的 HSM。 |
Azure CLI 2.1.0 版或更新版本 | 請參閱安裝 Azure CLI。 |
支援的 HSM
廠商名稱 | 廠商類型 | 支援的 HSM 模型 | 其他相關資訊 |
---|---|---|---|
Cryptomathic | ISV (企業金鑰管理系統) | 多個 HSM 品牌和型號,包括
|
|
Entrust | 製造商, HSM 即服務 |
|
nCipher 新的 BYOK 工具和文件 |
Fortanix | 製造商, HSM 即服務 |
|
將 SDKMS 金鑰匯出至 BYOK 的雲端提供者 - Azure Key Vault |
Futurex | 製造商, HSM 即服務 |
|
Futurex 整合指南 - Azure 金鑰保存庫 |
IBM | 製造商 | IBM 476x、CryptoExpress | IBM 企業金鑰管理基礎 (英文) |
Marvell | 製造商 | 所有 LiquidSecurity HSM,具有
|
Marvell BYOK 工具和文件 |
nCipher | 製造商, HSM 即服務 |
|
nCipher 新的 BYOK 工具和文件 |
Securosys SA | 製造商, HSM 即服務 |
Primus HSM 系列,Securosys Clouds HSM | Primus BYOK 工具和文件 |
StorMagic | ISV (企業金鑰管理系統) | 多個 HSM 品牌和型號,包括
|
SvKMS 和 Azure Key Vault BYOK |
Thales | 製造商 |
|
Luna BYOK 工具和文件 |
Utimaco | 製造商, HSM 即服務 |
u.trust Anchor、CryptoServer | Utimaco BYOK 工具與整合指南 |
受支援的金鑰類型
索引鍵名稱 | 金鑰類型 | 金鑰大小/曲線 | 原始來源 | 描述 |
---|---|---|---|---|
金鑰交換金鑰 (KEK) | RSA | 2048 位元 3072 位元 4096 位元 |
Azure Key Vault HSM | 在 Azure Key Vault 中產生之受 HSM 支援的 RSA 金鑰組 |
目標金鑰 | ||||
RSA | 2048 位元 3072 位元 4096 位元 |
廠商 HSM | 要傳輸至 Azure Key Vault HSM 的金鑰 | |
EC | P-256 P-384 P-521 |
廠商 HSM | 要傳輸至 Azure Key Vault HSM 的金鑰 | |
產生您的金鑰並將其傳輸至 Key Vault Premium HSM 或受控 HSM
若要產生您的金鑰並將其傳輸至 Key Vault Premium 或受控 HSM:
產生 KEK
KEK 是在 Key Vault Premium 或受控 HSM 中所產生的 RSA 金鑰。 KEK 用來加密您要匯入的金鑰 (「目標」金鑰)。
KEK 必須是:
- RSA-HSM 金鑰 (2048 位元;3072 位元或 4096 位元)
- 在您要匯入目標金鑰的相同金鑰保存庫中產生
- 建立時允許的金鑰作業設定為
import
注意
「匯入」必須是 KEK 唯一允許的金鑰作業。 「匯入」與所有其他金鑰作業互斥。
使用 az keyvault key create 命令,建立將金鑰作業設定為 import
的 KEK。 記錄從下列命令傳回的金鑰識別碼 (kid
)。 (您將使用步驟 3 中的 kid
值。)
az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --vault-name ContosoKeyVaultHSM
對於受控 HSM:
az keyvault key create --kty RSA-HSM --size 4096 --name KEKforBYOK --ops import --hsm-name ContosoKeyVaultHSM
下載 KEK 公開金鑰
使用 az keyvault key download 將 KEK 公開金鑰下載至 .pem 檔案。 您匯入的目標金鑰會使用 KEK 公開金鑰加密。
az keyvault key download --name KEKforBYOK --vault-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem
對於受控 HSM:
az keyvault key download --name KEKforBYOK --hsm-name ContosoKeyVaultHSM --file KEKforBYOK.publickey.pem
將 KEKforBYOK.publickey.pem 檔案傳送到您的離線電腦。 您會在下一個步驟中使用此檔案。
產生並準備您的金鑰以進行傳輸
請參閱 HSM 廠商的文件,以下載並安裝 BYOK 工具。 遵循 HSM 廠商提供的指示來產生目標金鑰,然後建立金鑰傳輸套件 (BYOK 檔案)。 BYOK 工具會使用步驟 1 的 kid
以及步驟 2 中下載的 KEKforBYOK.publickey.pem 檔案,在 BYOK 檔案中產生加密的目標金鑰。
將 BYOK 檔案傳送到已連線的電腦。
注意
不支援匯入 RSA 1024 位元金鑰。 支援以曲線 P-256K 匯入 Elliptic Curve 金鑰。
已知問題:只有韌體 7.4.0 或更新版本才支援從 Luna HSM 匯入 RSA 4K 目標金鑰。
將金鑰傳輸至 Azure Key Vault
若要完成金鑰匯入,請將金鑰傳輸套件 (BYOK 檔案) 從已中斷連線的電腦傳輸到連線網際網路的電腦。 使用 az keyvault key import 命令,將 BYOK 檔案上傳至 Key Vault HSM。
若要匯入 RSA 金鑰,請使用下列命令。 參數 --kty 是選擇性的,且預設值為 'RSA-HSM'。
az keyvault key import --vault-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok
對於受控 HSM
az keyvault key import --hsm-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok
若要匯入 EC 金鑰,您必須指定金鑰類型和曲線名稱。
az keyvault key import --vault-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --kty EC-HSM --curve-name "P-256" --byok-file KeyTransferPackage-ContosoFirstHSMkey.byok
對於受控 HSM
az keyvault key import --hsm-name ContosoKeyVaultHSM --name ContosoFirstHSMkey --byok-file --kty EC-HSM --curve-name "P-256" KeyTransferPackage-ContosoFirstHSMkey.byok
如果上傳成功,Azure CLI 會顯示匯入金鑰的屬性。
下一步
您現在可以在您的金鑰保存庫中使用這個受 HSM 保護的金鑰。 如需詳細資訊,請參閱本價格和功能比較。