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

注意

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

可以使用 Azure CLI 来配置自己的加密密钥以加密工作区存储帐户。 本文介绍如何通过 Azure Key Vault 保管库配置你自己的密钥。

要详细了解用于 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 密钥。 有关密钥的详细信息,请参阅关于 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