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

注意

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

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

重要

Key Vault 必须与你的 Azure Databricks 工作区位于同一 Azure 租户中。

要详细了解用于 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 字段。 在密钥保管库上配置角色分配时,需将其作为托管标识值提供。

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

创建 Azure 密钥保管库托管 HSM 和 HSM 密钥

可以使用现有的 Azure Key Vault 托管 HSM,也可以按照快速入门:使用 Azure CLI 预配和激活托管 HSM 创建并激活新的 HSM。 Azure 密钥保管库托管 HSM 必须启用清除保护

要创建 HSM 密钥,请按照创建 HSM 密钥中的说明进行操作。

配置托管 HSM 角色分配

请为密钥保管库托管 HSM 配置角色分配,以便 Azure Databricks 工作区有权访问它。 请将括号中的占位符值替换为你自己的值。

az keyvault role assignment create \
        --role "Managed HSM Crypto Service Encryption User" \
        --scope "/" \
        --hsm-name <hsm-name> \
        --assignee-object-id <managed-identity>

<managed-identity> 替换为准备用于加密的工作区时记下的 principalId 值。

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

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

将占位符值替换为你自己的值。

az databricks workspace update --name <workspace-name> --resource-group <resource-group> --key-source Microsoft.KeyVault --key-name <key> --key-vault <hsm-uri> --key-version <key-version>

禁用客户托管密钥

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

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

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