Azure Databricks 中的服务主体是一种专门用于自动化和编程访问的特殊标识。 服务主体为自动化工具、脚本和 CI/CD 平台提供对Azure Databricks资源的安全、仅限 API 的访问,而无需依赖单个用户凭据。
有关如何管理服务主体,请参阅 管理服务主体。
注释
此页面假设您的工作区已启用身份联合,这是大多数工作区的默认设置。 有关无标识联合的传统工作区的信息,请参阅 无标识联合的传统工作区。
什么是服务主体?
服务主体为自动化工具和脚本提供仅限 API 的访问权限,从而提供比使用用户帐户更高的安全性。 可以像Azure Databricks用户一样授予和限制服务主体对资源的访问权限。 例如,可以向服务主体授予帐户管理员或工作区管理员角色、使用 Unity 目录授予对数据的访问权限,或者将服务主体作为成员添加到组。
可以授予Azure Databricks用户、服务主体和组使用服务主体的权限。 这样,用户可以以服务主体的身份运行作业,而不是以个人身份运行,从而避免作业在用户离开您组织或变更群组时失败。
Databricks 和 Microsoft Entra ID 服务主体
服务主体可以是 Azure Databricks 托管服务主体,也可以是 Microsoft Entra ID 托管服务主体。
Azure Databricks托管服务主体可以使用 Databricks OAuth 身份验证和个人访问令牌向Azure Databricks进行身份验证。 Microsoft Entra ID托管服务主体可以使用 Databricks OAuth 身份验证和Microsoft Entra ID令牌向Azure Databricks进行身份验证。 若要详细了解如何为服务主体进行身份验证,请参阅管理服务主体的令牌。
Azure Databricks托管服务主体直接在Azure Databricks中进行管理。 Microsoft Entra ID托管服务主体在Microsoft Entra ID中管理,这需要其他权限。 Databricks 建议使用 Azure Databricks 托管服务主体来实现 Azure Databricks 自动化,并在必须同时对 Azure Databricks 和其他 Azure 资源进行身份验证时使用 Microsoft Entra ID 托管服务主体。
若要创建Azure Databricks托管服务主体,请跳过本部分并继续阅读 Who 可以管理和使用服务主体?。
若要在Azure Databricks中使用Microsoft Entra ID托管服务主体,管理员用户必须在Azure中创建Microsoft Entra ID应用程序。 若要创建 Microsoft Entra ID 托管服务主体,请参阅 使用 Microsoft Entra 服务主体进行身份验证。
常见用例
服务主体非常适合以下自动化方案,需要对 Databricks 资源进行安全、可靠的编程访问:
| 用例 | Example |
|---|---|
| CI/CD 管道 | 作为持续集成和部署工作流的一部分,自动部署笔记本、库和配置。 |
| 计划的作业 | 按计划运行 ETL 管道、数据处理作业和自动报告,而无需依赖于单个用户帐户。 |
| 跨系统集成 | 将外部应用程序和服务连接到 Databricks,以便进行数据引入、转换或分析。 |
| 自动测试 | 在测试框架中执行集成测试并验证数据管道。 |
| 基础结构即代码 | 使用 Terraform、ARM 模板或声明性自动化捆绑包等工具预配和管理 Databricks 资源。 |
谁可以管理和使用服务主体?
若要在 Azure Databricks 中管理服务主体,必须具有以下角色之一:
| 角色 | Capabilities |
|---|---|
| 帐户管理员 |
|
| 工作区管理员 |
|
| 服务主体管理者 |
|
| 服务主体用户 |
|
注释
- 服务主体对象的创建者会自动成为该服务主体对象的管理者。
- 具有服务主体管理器角色的用户不会继承服务主体用户角色。 如果你要使用服务主体来执行作业,则需要显式为自己分配服务主体用户角色,即使在创建服务主体之后也是如此。
-
RestrictWorkspaceAdmins设置设置为ALLOW ALL后,工作区管理员可以代表工作区中的任何服务主体创建令牌。 请参阅限制工作区管理员。
有关如何授予服务主体管理员和用户角色的信息,请参阅用于管理服务主体的角色。
将服务主体从 Microsoft Entra ID 租户同步到 Azure Databricks 帐户
可以使用自动身份管理功能,将 Microsoft Entra ID 服务主体从 Microsoft Entra ID 租户自动同步到 Azure Databricks 帐户。 Databricks 使用Microsoft Entra ID作为源,因此在Azure Databricks中尊重对用户或组成员身份所做的任何更改。 默认情况下,为在 2025 年 8 月 1 日之后创建的帐户启用自动标识管理。 请参阅从 Microsoft Entra ID 自动同步用户和组。
SCIM 预配不支持同步服务主体。
系统和应用程序服务主体
系统和应用服务主体是由Azure Databricks管理的服务主体,表示内置的Azure Databricks服务。 与创建和管理的服务主体不同,系统服务主体由Azure Databricks自动创建和管理。 其生命周期与Azure Databricks资源(例如帐户或元存储)相关联,并且不需要管理管理。
系统和应用程序服务主体对象只能通过Azure Databricks平台特定功能(例如预测优化和仪表板定时刷新)间接使用。 不能创建、修改或模拟系统或应用程序服务主体。
Azure Databricks执行后台操作时,系统日志中可能会出现系统和应用程序服务主体。
其他资源
- 管理服务主体 - 创建和管理服务主体
- 服务主体访问控制 - 授予管理员和用户角色
- 作业特权 - 以服务主体身份运行作业
- Databricks 自动化身份验证 - 服务主体的身份验证方法
- 管理标识 - Databricks 中的标识管理概述
- Azure 服务主体 - 创建 Microsoft Entra ID 服务主体
- Automatic 身份管理 - 从 Microsoft Entra ID 同步服务主体