使用 Azure CLI 为 DBFS 配置客户管理的密钥

注意

此功能仅在高级计划中提供。

可以使用 Azure CLI 来配置自己的加密密钥以加密工作区存储帐户。 本文介绍如何通过 Azure Key Vault 保管库配置你自己的密钥。 有关使用 Azure Key Vault 托管 HSM 中的密钥的说明,请参阅使用 Azure CLI 为 DBFS 配置 HSM 客户管理的密钥

要详细了解用于 DBFS 的客户管理的密钥,请参阅为 DBFS 根配置客户管理的密钥

安装 Azure Databricks CLI 扩展

  1. 安装 Azure CLI

  2. 安装 Azure Databricks CLI 扩展。

    az extension add --name databricks
    

准备新的或现有的用于加密的 Azure Databricks 工作区

请将括号中的占位符值替换为你自己的值。 <workspace-name> 是 Azure 门户中显示的资源名称。

az cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud   //means return to Public Azure.
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

记下命令输出的 storageAccountIdentity 部分中的 principalId 字段。 配置 Key Vault 时,需将其作为托管标识值提供。

有关 Azure Databricks 工作区的 Azure CLI 命令的详细信息,请参阅 az databricks workspace 命令参考

创建新的密钥保管库

使用 Key Vault 为 DBFS 根存储客户管理的密钥时,Key Vault 必须已启用两项密钥保护设置:“软删除”和“清除保护”。 若要新建启用了这些设置的 Key Vault,请运行以下命令。

重要

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 启用“软删除”和“清除保护”,请参阅如何将 Key Vault 软删除与 CLI 配合使用

配置 Key Vault 访问策略

使用 az keyvault set-policy 命令设置 Key Vault 的访问策略,使 Azure Databricks 工作区有权访问 Key Vault。

请将括号中的占位符值替换为你自己的值。

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 密钥。 有关密钥的详细信息,请参阅关于 Key Vault 密钥

使用客户管理的密钥配置 DBFS 加密

将 Azure Databricks 工作区配置为使用在 Azure Key Vault 中创建的密钥。

请将括号中的占位符值替换为你自己的值。

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

禁用客户托管密钥

在你禁用客户管理的密钥时,会再次使用 Azure 管理的密钥来加密你的存储帐户。

请将括号中的占位符值替换为你自己的值,并使用在前面步骤中定义的变量。

az databricks workspace update --name <workspace-name> --resource-group <resource-group> --key-source Default