备注
此功能需要高级计划。
本文介绍如何从 Azure Key Vault 托管 HSM 配置自己的密钥。 有关使用 Azure Key Vault 保管库中的密钥的说明,请参阅为托管服务启用客户管理的密钥。
要将 Azure CLI 用于这些任务,请安装 Azure CLI 工具并安装 Databricks 扩展:
az extension add --name databricks
要将 Powershell 用于这些任务,请安装 Azure PowerShell 并安装 Databricks Powershell 模块。 此外,还必须登录:
Connect-AzAccount -Environment AzureChinaCloud
要以用户身份登录到 Azure 帐户,请参阅使用 Azure Databricks 用户帐户登录 PowerShell。 要以服务主体身份登录到 Azure 帐户,请参阅使用 Microsoft Entra ID 服务主体进行 PowerShell 登录。
可以使用现有的 Azure Key Vault 托管 HSM,也可以按照托管 HSM 文档中的快速入门创建和激活新的 HSM。 请参阅快速入门:使用 Azure CLI 预配和激活托管 HSM。 Azure Key Vault 托管 HSM 必须启用清除保护。
重要
密钥保管库必须与 Azure Databricks 工作区位于同一 Azure 租户中。
若要创建 HSM 密钥,请按照创建 HSM 密钥中的说明进行操作。
请为 Key Vault 托管 HSM 配置角色分配,以便 Azure Databricks 工作区有权访问它。 可以使用 Azure 门户、Azure CLI 或 Azure Powershell 配置角色分配。
- 在 Azure 门户中转到你的托管 HSM 资源。
- 在左侧菜单中的“设置”下,选择“本地 RBAC”。
- 单击“添加” 。
- 在“角色”字段中,选择“托管 HSM 加密服务加密用户”。
- 在“范围”字段中,选择
All keys (/)
。 - 在“安全主体”字段中,键入
AzureDatabricks
并滚动到包含应用程序 ID2ff814a6-3304-4ab8-85cb-cd0e6f879c1d
的企业应用程序结果,并将它选中。 - 单击 “创建” 。
- 在左侧菜单中的“设置”下,选择“密钥”,然后选择密钥。
- 在“密钥标识符”字段中,复制文本。
使用 Azure CLI 获取 AzureDatabricks 应用程序的对象 ID。
az ad sp show --id "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d" \ --query "id" \ --output tsv
配置托管 HSM 角色分配。 将
<hsm-name>
替换为托管 HSM 名称,并将<object-id>
替换为上一步中AzureDatabricks
应用程序的对象 ID。az keyvault role assignment create --role "Managed HSM Crypto Service Encryption User" --scope "/" --hsm-name <hsm-name> --assignee-object-id <object-id>
将 <hsm-name>
替换为托管 HSM 名称。
Connect-AzureAD -AzureEnvironmentName AzureChinaCloud
$managedService = Get-AzureADServicePrincipal \
-Filter "appId eq '2ff814a6-3304-4ab8-85cb-cd0e6f879c1d'"
New-AzKeyVaultRoleAssignment -HsmName <hsm-name> \
-RoleDefinitionName "Managed HSM Crypto Service Encryption User" \
-ObjectId $managedService.ObjectId
可以使用 Azure 门户、Azure CLI 或 Azure Powershell 为托管服务创建或更新具有客户管理的密钥的工作区。
转到 Azure 门户主页。
单击页面左上角的“创建资源”。
在搜索栏中键入
Azure Databricks
,然后单击“Azure Databricks”选项。在 Azure Databricks 小组件中单击“创建”。
在“基本信息”和“网络”选项卡上的输入字段中输入值。
进入“加密”选项卡后:
- 要创建工作区,请在“托管服务”部分启用“使用你自己的密钥”。
- 要更新工作区,请启用“托管服务”。
设置加密字段。
- 在“密钥标识符”字段中,粘贴托管 HSM 密钥的密钥标识符。
- 在“订阅”下拉列表中,输入你的 Azure 密钥保管库密钥的订阅名称。
填写剩余的选项卡,然后单击“查看 + 创建”(若要新建工作区)或“保存”(若要更新工作区)。
创建或更新工作区:
对于创建和更新,请将这些字段添加到命令中:
managed-services-key-name
:托管 HSM 名称managed-services-key-vault
:托管 HSM URImanaged-services-key-version
:托管 HSM 版本。 使用特定密钥版本,而不是latest
。
使用这些字段创建工作区的示例:
az databricks workspace create --name <workspace-name> \
--resource-group <resource-group-name> \
--location <location> \
--sku premium \
--managed-services-key-name <hsm-name> \
--managed-services-key-vault <hsm-uri> \
--managed-services-key-version <hsm-version>
使用这些字段更新工作区的示例:
az databricks workspace update --name <workspace-name> \
--resource-group <resource-group-name> \
--managed-services-key-name <hsm-name> \
--managed-services-key-vault <hsm-uri> \
--managed-services-key-version <hsm-version>
重要
如果轮换密钥,则必须保留旧密钥 24 小时。
若要创建或更新工作区,请将以下参数添加到新密钥的命令中:
ManagedServicesKeyVaultPropertiesKeyName
:托管 HSM 名称ManagedServicesKeyVaultPropertiesKeyVaultUri
:托管 HSM URIManagedServicesKeyVaultPropertiesKeyVersion
:托管 HSM 版本。 使用特定密钥版本,而不是latest
。
使用这些字段创建工作区的示例:
New-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-location $keyVault.Location \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $hsm.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $hsm.Uri \
-ManagedServicesKeyVaultPropertiesKeyVersion $hsm.Version
使用这些字段更新工作区的示例:
Update-AzDatabricksWorkspace -Name <workspace-name> \
-ResourceGroupName <resource-group-name> \
-sku premium \
-ManagedServicesKeyVaultPropertiesKeyName $hsm.Name \
-ManagedServicesKeyVaultPropertiesKeyVaultUri $hsm.VaultUri \
-ManagedServicesKeyVaultPropertiesKeyVersion $hsm.Version
重要
如果轮换密钥,则必须保留旧密钥 24 小时。
一开始为现有工作区的托管服务添加密钥后,只有未来的写入操作会使用该密钥。 现有数据未重新加密。
可以导出所有笔记本,然后将其重新导入,以便加密数据的密钥受到密钥的保护和控制。 可以使用导出和导入工作区 API。
如果已对托管服务使用客户管理的密钥,则可以使用新的密钥版本或全新密钥更新工作区。 这称为密钥轮换。
在托管 HSM 保管库中创建新密钥或轮换现有密钥。
确保新密钥具有适当权限。
使用门户、CLI 或 PowerShell 使用新密钥更新工作区。 请参阅步骤 3:向工作区添加密钥,并按照说明更新工作区。 确保为资源组名称和工作区名称使用相同的值,以便它更新现有工作区,而不是创建新的工作区。 除了密钥相关参数的更改之外,请使用用于创建工作区的相同参数。
重要
如果轮换密钥,则必须保留旧密钥 24 小时。
也可以导出和重新导入现有笔记本,以确保所有现有笔记本都使用新密钥。