标识最佳做法
本文提供有关如何在 Azure Databricks 中以最佳方式配置标识的观点。 其中包括有关如何迁移到标识联合,以便能够管理 Azure Databricks 帐户中的所有用户、组和服务主体的指南。
有关 Azure Databricks 标识模型的概述,请参阅 Azure Databricks 标识。
有关如何安全地访问 Azure Databricks API 的信息,请参阅管理个人访问令牌权限。
配置用户、服务主体和组
Azure Databricks 标识有三种类型:
- 用户:由 Azure Databricks 识别并由电子邮件地址表示的用户标识。
- 服务主体:用于作业、自动化工具和系统(例如脚本、应用和 CI/CD 平台)的标识。
- 组:组简化了标识管理,使分配对工作区、数据和其他安全对象的访问权限变得更加容易。
Databricks 建议创建服务主体来运行生产作业或修改生产数据。 如果所有处理生产数据的进程都使用服务主体运行,那么交互式用户在生产环境中将不需要任何写入、删除或修改权限。 这样就不会产生用户意外覆盖生产数据的风险。
最佳做法是在 Unity Catalog 中将工作区访问权限和访问控制策略分配给组,而不是单独分配给用户。 所有 Azure Databricks 标识都可以分配为组的成员,成员将继承分配给其组的权限。
以下是可以管理 Azure Databricks 标识的管理角色:
- 帐户管理员可以将用户、服务主体和组添加到帐户,并为他们分配管理员角色。 只要工作区使用身份联合,他们就可以向用户授予对这些工作区的访问权限。
- 工作区管理员可以将用户、服务主体添加到 Azure Databricks 帐户。 如果他们的工作区启用了身份联合,他们还可以将组添加到 Azure Databricks 帐户。 工作区管理员可以向用户、服务主体和组授予对其工作区的访问权限。
- 组管理员可以管理组成员身份。 他们还可以为其他用户分配组管理员角色。
- 服务主体管理员可以管理服务主体上的角色。
Databricks 建议限制每个帐户的帐户管理员数量和每个工作区中的工作区管理员数量。
从 Microsoft Entra ID 自动同步用户和组(公共预览版)
可以将用户、服务主体和组从 Microsoft Entra ID 添加到 Azure Databricks,而无需使用自动标识管理在 Microsoft Entra ID 中配置应用程序。 启用自动标识管理后,可以直接在标识联合工作区中搜索Microsoft Entra ID 用户、服务主体和组,并将其添加到工作区。 Databricks 使用 Microsoft Entra ID 作为事实来源,因此在 Azure Databricks 中尊重对用户或组成员身份所做的任何更改。
用户还可以与Microsoft Entra ID 中的任何用户、服务主体或组共享仪表板。 登录后,这些用户会自动添加到 Azure Databricks 帐户。
自动标识管理仅在标识联合工作区中受支持。 有关联合身份验证的详细信息,请参阅从 Microsoft Entra ID 自动同步用户和组。
启用标识联合
使用标识联合可以在帐户控制台中配置用户、服务主体和组,然后为这些标识分配对特定工作区的访问权限。 这简化了 Azure Databricks 管理和数据治理。
重要
Databricks 于 2023 年 11 月 9 日自动为联合身份验证和 Unity Catalog 启用了新工作区,并逐步跨帐户推出。 如果工作区默认启用了联合身份验证,则无法禁用。 有关详细信息,请参阅 Unity Catalog 的自动启用。
使用联合身份验证,可以在帐户控制台中配置一次 Azure Databricks 用户、服务主体和组,而不是在每个工作区中单独重复配置。 将用户、服务主体和组添加到帐户后,可为其分配对工作区的权限。 只能为启用了标识联合的帐户级标识分配对工作区的访问权限。
若要为联合身份验证启用工作区,请参阅 启用联合身份验证。 分配完成后,在帐户控制台工作区的“配置”选项卡上,联合身份验证将标记为“已启用”。
将在工作区级别启用标识联合,你可以将标识联合的工作区与非标识联合的工作区结合使用。 对于未启用标识联合的工作区,工作区管理员需要完全在工作区范围内管理其工作区用户、服务主体和组(旧模型)。 他们无法使用帐户控制台或帐户级 API 将帐户中的用户分配到这些工作区,但可以使用任何工作区级接口。 每当使用工作区级接口将新的用户或服务主体添加到工作区时,该用户或服务主体就会同步到帐户级别。 这样,你的帐户中就会使用一组一致的用户和服务主体。
但是,当使用工作区级接口将组添加到非标识联合的工作区时,该组是工作区本地组,不会添加到帐户。 你应该使用帐户组而不是工作区本地组。 工作区本地组不能被授予 Unity Catalog 中的访问控制策略或对其他工作区的权限。
升级到标识联合
如果你要在现有工作区上启用标识联合,请执行以下操作:
将工作区级 SCIM 预配迁移到帐户级别
如果为工作区设置了工作区级 SCIM 预配,则应设置帐户级 SCIM 预配并关闭工作区级 SCIM 预配程序。 工作区级 SCIM 将继续创建并更新工作区本地组。 Databricks 建议使用帐户组而不是工作区本地组,以便通过 Unity Catalog 来利用集中式工作区分配和数据访问管理。 工作区级 SCIM 也无法识别分配给联合标识工作区的帐户组,如果它们涉及帐户组,则工作区级 SCIM API 调用将失败。 有关如何禁用工作区级 SCIM 的详细信息,请参阅将工作区级 SCIM 预配迁移到帐户级别。
将工作区本地组转换为帐户组
Databricks 建议将现有工作区本地组转换为帐户组。 有关说明,请参阅将工作区本地组迁移到帐户组。
分配组工作区权限
在工作区上启用标识联合后,可为帐户中的用户、服务主体和组分配对该工作区的权限。 Databricks 建议为组分配对工作区的权限,而不要单独为用户分配工作区权限。 所有 Azure Databricks 标识都可以分配为组的成员,成员将继承分配给其组的权限。
了解更多
- 参阅管理用户、服务主体和组来详细了解 Azure Databricks 标识模型。
- 开始使用 SCIM 预配从 Microsoft Entra ID 同步用户和组。
- 参阅 Unity Catalog 最佳做法来了解如何最好地配置 Unity Catalog。