本页介绍如何设置和使用 Azure 托管身份验证,以自动化 Azure Databricks 帐户和工作区。
Azure 会自动管理应用程序Microsoft Entra ID 中的标识,以使用支持 Microsoft Entra ID 身份验证的资源(包括 Azure Databricks 帐户和工作区)进行身份验证。 此身份验证方法获取 Microsoft Entra ID 令牌,而无需管理凭据。
本页逐步讲解如何创建用户分配的托管标识,并将其分配给 Azure Databricks 帐户、工作区和 Azure 虚拟机(Azure VM)。 然后,在 Azure VM 上安装并配置 Databricks CLI,以使用 Azure 托管标识身份验证并运行命令来自动执行 Azure Databricks 帐户和工作区。
- 有关托管标识的详细信息,请参阅什么是 Azure 资源托管标识?。 
- 有关 Azure Databricks 的 Azure 托管标识身份验证的详细信息,请参阅 使用 Azure 托管标识进行身份验证。 
注释
Azure 资源的托管标识不同于 Microsoft Entra ID 托管服务主体,Azure Databricks 也支持该服务主体进行身份验证。 若要了解如何改用 Microsoft Entra ID 托管服务主体进行 Azure Databricks 身份验证,请参阅:
要求
- 用于创建和分配托管标识的 Azure RBAC 权限。
- 用于将托管标识分配给 Azure Databricks 的帐户或工作区管理员角色。 请参阅 向用户分配帐户管理员角色 ,并将 工作区管理员角色分配给用户。
- 虚拟机参与者 和 托管标识操作员 角色,用于创建 Azure VM 并向其分配托管标识。
步骤 1:创建用户分配的托管标识
为 Azure 资源创建用户分配的托管标识。 Azure 支持系统分配的托管标识和用户分配的托管标识。 Databricks 建议使用用户分配的托管标识通过 Azure Databricks 进行 Azure 托管标识身份验证。
若要创建用户分配的托管标识,请按照 Azure 门户管理用户分配的托管标识中的说明进行作。
创建托管标识后,从托管标识的概述页复制 客户端 ID 值。 在步骤 2、3 和 7 中需要此值。
步骤 2:将“托管标识”分配给您的帐户
将托管标识分配给 Azure Databricks 帐户。 Databricks 将托管标识视为服务主体。 如果不需要帐户级访问权限,请跳到步骤 3。
请按照将服务主体添加到您的帐户中的说明进行操作。 选择 Microsoft Entra ID 管理的,并将步骤 1 中的 客户端 ID 粘贴为 Microsoft Entra 应用程序 ID。
步骤 3:将托管标识分配给工作区
将托管标识分配给 Azure Databricks 工作区。 Databricks 将托管标识视为服务主体。 请按照将服务主体分配到工作区中的说明进行操作。
添加服务主体时:
- 如果工作区已启用身份联合:请选择在步骤 2 中创建的服务主体。
- 如果未为身份联合启用工作区:使用步骤 1 中的 客户端 ID 作为 应用程序 ID。
步骤 4:获取工作区的 Azure 资源 ID
获取 Azure 分配给 Azure Databricks 工作区的资源 ID。 在步骤 7 中需要此值。
- 在 Azure Databricks 工作区中,单击顶部栏中的用户名,然后选择“Azure 门户”。 
- 在侧窗格中的“设置”部分中,单击“属性”。 
- 在 “概要” 部分中,复制 ID 值。 该属性应与下面类似: - /subscriptions/<subscription-id>/resourceGroups/<resource-group-id>/providers/Microsoft.Databricks/workspaces/<workspace-id>
步骤 5:创建并登录到 Azure VM
Azure VM 是支持托管标识的资源类型之一。 使用此 VM 通过托管标识身份验证运行 Databricks CLI。
注释
此 Azure VM 仅用于演示目的,并使用未针对生产用途进行优化的设置。
若要使用 SSH 身份验证创建和连接到 Ubuntu Server VM,请按照快速入门中的说明作 :在 Azure 门户中创建 Linux 虚拟机。
创建 VM 时:
- 使用 Ubuntu Server 22.04 LTS 作为映像。
- 选择 SSH 公钥 作为身份验证类型。
- 请注意下载的私钥文件(.pem)和 VM 的公共 IP 地址的位置,因为需要它们才能连接到 VM。
步骤 6:将托管标识分配到 Azure VM
将托管标识与 Azure VM 相关联,以便 Azure 可以使用它进行身份验证。 请参阅 将用户分配的托管标识分配给现有 VM。
- 在 Azure 门户中,导航到 Azure VM 的设置页,然后单击“设置”部分中的“标识”。 
- 在“用户分配”选项卡上,单击“+ 添加”。 
- 选择在步骤 1 中创建的托管标识,然后单击“ 添加”。 
步骤 7:配置身份验证
在 Azure VM 上安装并配置 Databricks CLI,以使用 Azure 托管标识身份验证。
安装 CLI
在 Azure VM 上的 SSH 会话中,安装 Databricks CLI:
sudo apt install unzip
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sudo sh
验证安装:
databricks -v
添加配置文件
在主目录中,使用以下内容创建或编辑.databrickscfg文件~/.databrickscfg。 请参阅 Azure Databricks 配置文件。
请替换以下值:
- 
              <account-console-url>使用 Azure Databricks 帐户控制台 URL。
- 
              <account-id>使用 Azure Databricks 帐户 ID。 请参阅查找帐户 ID。
- 
              <azure-managed-identity-application-id>使用步骤 1 中托管身份的 客户端 ID 值。
- 
              <workspace-url>使用 针对每个工作区的URL,例如https://adb-1234567890123456.7.databricks.azure.cn。
- 
              <azure-workspace-resource-id>使用步骤 4 中的 Azure 资源 ID。
- (可选)将建议的配置文件名称AZURE_MI_ACCOUNTAZURE_MI_WORKSPACE替换为不同的名称。
如果不需要 帐户级操作,请省略这个 [AZURE_MI_ACCOUNT] 部分。
[AZURE_MI_ACCOUNT]
host            = <account-console-url>
account_id      = <account-id>
azure_client_id = <azure-managed-identity-application-id>
azure_use_msi   = true
[AZURE_MI_WORKSPACE]
host                        = <workspace-url>
azure_workspace_resource_id = <azure-workspace-resource-id>
azure_client_id             = <azure-managed-identity-application-id>
azure_use_msi               = true
步骤 8:测试配置
通过在 Azure VM 上的 SSH 会话中运行 Databricks CLI 命令来测试配置。
若要测试帐户级访问(如果在步骤 7 中对其进行配置):
databricks account users list -p AZURE_MI_ACCOUNT
若要测试工作区级访问,请执行以下步骤:
databricks users list -p AZURE_MI_WORKSPACE
如果在第 7 步中重命名了配置文件,请将 AZURE_MI_ACCOUNT 或 AZURE_MI_WORKSPACE 替换为自定义名称。