使用儲存在 Azure Key Vault 受控 HSM 中的客戶自控金鑰來設定加密
Azure 儲存體會加密待用儲存體帳戶中的所有資料。 根據預設,資料是以使用 Microsoft 管理的金鑰加密。 若要進一步控制加密金鑰,您可以管理自己的金鑰。 客戶自控金鑰必須儲存在 Azure Key Vault 或 Key Vault 受控硬體安全性模組 (HSM)。 Azure Key Vault 受控 HSM 是經過 FIPS 140-2 層級 3 驗證的 HSM。
本文說明如何使用 Azure CLI,透過儲存在受控 HSM 中的客戶自控金鑰來設定加密。 若要了解如何使用儲存在金鑰保存庫的客戶自控金鑰來設定加密,請參閱使用儲存在 Azure Key Vault 中的客戶自控金鑰來設定加密。
注意
Azure Key Vault 和 Azure Key Vault 受控 HSM 支援使用相同的 API 和管理介面進行設定。
將身分識別指派給儲存體帳戶
首先,將系統指派的受控識別指派給儲存體帳戶。 您將使用此受控識別來授與儲存體帳戶權限,以存取受控 HSM。 如需系統指派的受控識別相關詳細資訊,請參閱什麼是適用於 Azure 資源的受控識別?。
若要使用 Azure CLI 指派受控識別,請呼叫 az storage account update。 請記得將括弧中的預留位置值取代為您自己的值:
az storage account update \
--name <storage-account> \
--resource-group <resource_group> \
--assign-identity
將角色指派給儲存體帳戶,以存取受控 HSM
接下來,將受控 HSM 加密服務加密使用者角色指派給儲存體帳戶的受控識別,讓儲存體帳戶具有受控 HSM 的使用權限。 Microsoft 建議您將角色指派的範圍設為個別金鑰層級,以便盡可能將最少的權限授與受控識別。
若要建立儲存體帳戶的角色指派,請呼叫 az key vault role assignment create。 請記得將括弧中的預留位置值取代為您自己的值。
storage_account_principal = $(az storage account show \
--name <storage-account> \
--resource-group <resource-group> \
--query identity.principalId \
--output tsv)
az keyvault role assignment create \
--hsm-name <hsm-name> \
--role "Managed HSM Crypto Service Encryption User" \
--assignee $storage_account_principal \
--scope /keys/<key-name>
使用受控 HSM 中的金鑰設定加密
最後,使用客戶自控金鑰來設定 Azure 儲存體加密,以使用儲存在受控 HSM 中的金鑰。 支援的金鑰類型包括 RSA-HSM 金鑰,大小為 2048、3072 和 4096。 若要了解如何在受控 HSM 中建立金鑰,請參閱建立 HSM 金鑰。
安裝 Azure CLI 2.12.0 或更新版本,將加密設定為使用受控 HSM 中的客戶自控金鑰。 如需詳細資訊,請參閱 安裝 Azure CLI。
若要自動更新客戶自控金鑰的金鑰版本,請在您設定加密使用儲存體帳戶的客戶自控金鑰時,省略金鑰版本。 如需設定自動金鑰輪替加密的詳細資訊,請參閱更新金鑰版本。
接下來,呼叫 az storage account update 以更新儲存體帳戶的加密設定,如下列範例所示。 納入 --encryption-key-source parameter
並設為 Microsoft.Keyvault
以啟用帳戶的客戶自控金鑰。 請記得將括弧中的預留位置值取代為您自己的值。
hsmurl = $(az keyvault show \
--hsm-name <hsm-name> \
--query properties.hsmUri \
--output tsv)
az storage account update \
--name <storage-account> \
--resource-group <resource_group> \
--encryption-key-name <key> \
--encryption-key-source Microsoft.Keyvault \
--encryption-key-vault $hsmurl
若要手動更新客戶自控金鑰的版本,請在設定儲存體帳戶的加密時包含金鑰版本:
az storage account update
--name <storage-account> \
--resource-group <resource_group> \
--encryption-key-name <key> \
--encryption-key-version $key_version \
--encryption-key-source Microsoft.Keyvault \
--encryption-key-vault $hsmurl
在手動更新金鑰版本時,您必須將儲存體帳戶的加密設定更新為使用新的版本。 首先,呼叫 az keyvault show 以查詢金鑰保存庫 URI,然後呼叫 az keyvault key list-versions 以查詢金鑰版本。 接著呼叫 az storage account update,更新儲存體帳戶的加密設定以使用新版本的金鑰,如先前的範例所示。