服务主体

服务主体是 Azure Databricks 中的专用身份,旨在实现自动化和编程访问。 服务主体为自动化工具、脚本和 CI/CD 平台提供对 Azure Databricks 资源的安全、仅限 API 的访问,而无需依赖单个用户凭据。

有关如何管理服务主体,请参阅 管理服务主体

注释

此页面假设您的工作区已启用身份联合,这是大多数工作区的默认设置。 有关没有标识联合的旧工作区的信息,请参阅没有标识联合的旧工作区

什么是服务主体?

服务主体为自动化工具和脚本提供对 Azure Databricks 资源的仅 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 托管服务主体,请跳过本部分并继续阅读谁可以管理和使用服务主体?

若要在 Azure Databricks 中使用 Microsoft Entra ID 托管服务主体,管理员用户必须在 Azure 中创建 Microsoft Entra ID 应用程序。 若要创建Microsoft Entra ID 托管服务主体,请参阅 使用 Microsoft Entra 服务主体进行身份验证

常见用例

服务主体非常适合以下自动化方案,需要对 Databricks 资源进行安全、可靠的编程访问:

用例 Example
CI/CD 管道 作为持续集成和部署工作流的一部分,自动部署笔记本、库和配置。
计划的作业 按计划运行 ETL 管道、数据处理作业和自动报告,而无需依赖于单个用户帐户。
跨系统集成 将外部应用程序和服务连接到 Databricks,以便进行数据引入、转换或分析。
自动测试 在测试框架中执行集成测试并验证数据管道。
基础结构即代码 使用 Terraform、ARM 模板或 Databricks 资产捆绑包等工具预配和管理 Databricks 资源。

谁可以管理和使用服务主体?

若要在 Azure Databricks 中管理服务主体,必须具有以下角色之一:

角色 Capabilities
帐户管理员
  • 将服务主体添加到帐户,并为其分配管理员角色。
  • 将服务主体分配给工作区。
  • 在帐户中的所有服务主体上自动具有服务主体管理器角色。
工作区管理员
  • 将服务主体添加到 Azure Databricks 工作区。
  • 为其分配工作区管理员角色。
  • 管理对工作区中对象和功能的访问权限。
  • 自动在创建的服务主体上具有服务主体管理器角色。
服务主体管理者
  • 管理服务主体上的角色。
  • 将服务主体管理器角色分配给其他用户。
服务主体用户
  • 作为服务主体运行作业,使用服务主体的身份而不是作业所有者的身份。

注释

  • 服务主体对象的创建者会自动成为该服务主体对象的管理者。
  • 具有服务主体管理器角色的用户不会继承服务主体用户角色。 如果你要使用服务主体来执行作业,则需要显式为自己分配服务主体用户角色,即使在创建服务主体之后也是如此。
  • 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 预配不支持同步服务主体。

其他资源