使用 Azure CLI 為 DBFS 設定客戶管理的金鑰
注意
此功能僅適用於 進階方案。
您可以使用 Azure CLI 來設定自己的加密金鑰來加密工作區記憶體帳戶。 本文說明如何從 Azure 金鑰保存庫 儲存庫設定您自己的金鑰。 如需從 Azure 金鑰保存庫 受控 HSM 使用金鑰的指示,請參閱使用 Azure CLI 設定 DBFS 的 HSM 客戶自控密鑰。
如需 DBFS 客戶自控密鑰的詳細資訊,請參閱 DBFS 根目錄的客戶自控密鑰。
安裝 Azure Databricks CLI 擴充功能
安裝 Azure Databricks CLI 擴充功能。
az extension add --name databricks
準備新的或現有的 Azure Databricks 工作區以進行加密
將括弧中的預留位置值取代為您自己的值。 <workspace-name>
是資源名稱,如 Azure 入口網站 所示。
az login
az account set --subscription <subscription-id>
準備在工作區建立期間進行加密:
az databricks workspace create --name <workspace-name> --location <workspace-location> --resource-group <resource-group> --sku premium --prepare-encryption
準備現有的工作區以進行加密:
az databricks workspace update --name <workspace-name> --resource-group <resource-group> --prepare-encryption
記下 principalId
命令輸出區段中的欄位 storageAccountIdentity
。 當您設定 金鑰保存庫 時,您會提供它作為受控識別值。
如需 Azure Databricks 工作區之 Azure CLI 命令的詳細資訊,請參閱 az databricks workspace 命令參考。
建立新的金鑰保存庫
您用來儲存 DBFS 根目錄客戶自控金鑰的 金鑰保存庫 必須啟用兩個金鑰保護設定:虛刪除和清除保護。 若要建立已啟用這些設定的新 金鑰保存庫,請執行下列命令。
重要
Key Vault 與 Azure Databricks 工作區必須位於相同的 Azure 租用戶中。
將括弧中的預留位置值取代為您自己的值。
az keyvault create \
--name <key-vault> \
--resource-group <resource-group> \
--location <region> \
--enable-soft-delete \
--enable-purge-protection
如需使用 Azure CLI 啟用虛刪除和清除保護的詳細資訊,請參閱如何搭配 CLI 使用 金鑰保存庫 虛刪除。
設定 金鑰保存庫 存取原則
使用 az keyvault set-policy 命令,設定 金鑰保存庫 的存取原則,讓 Azure Databricks 工作區有權存取它。
將括弧中的預留位置值取代為您自己的值。
az keyvault set-policy \
--name <key-vault> \
--resource-group <resource-group> \
--object-id <managed-identity> \
--key-permissions get unwrapKey wrapKey
將取代<managed-identity>
為您principalId
備妥工作區以進行加密時所注意到的值。
建立新的金鑰
使用 az keyvault key create 命令,在 金鑰保存庫 中建立密鑰。
將括弧中的預留位置值取代為您自己的值。
az keyvault key create \
--name <key> \
--vault-name <key-vault>
DBFS 根記憶體支援大小為 2048、3072 和 4096 的 RSA 和 RSA-HSM 金鑰。 如需金鑰的相關詳細資訊,請參閱關於金鑰保存庫金鑰。
使用客戶管理的金鑰設定 DBFS 加密
設定您的 Azure Databricks 工作區,以使用您在 Azure 金鑰保存庫 中建立的密鑰。
將括弧中的預留位置值取代為您自己的值。
key_vault_uri=$(az keyvault show \
--name <key-vault> \
--resource-group <resource-group> \
--query properties.vaultUri \
--output tsv)
key_version=$(az keyvault key list-versions \
--name <key> \ --vault-name <key-vault> \
--query [-1].kid \
--output tsv | cut -d '/' -f 6)
az databricks workspace update --name <workspace-name> --resource-group <resource-group> --key-source Microsoft.KeyVault --key-name <key> --key-vault $key_vault_uri --key-version $key_version
停用客戶自控金鑰
當您停用客戶管理的密鑰時,記憶體帳戶會再次使用Microsoft管理的密鑰加密。
以您自己的值取代括弧中的佔位元值,並使用先前步驟中定義的變數。
az databricks workspace update --name <workspace-name> --resource-group <resource-group> --key-source Default