基于角色的访问控制(RBAC)

Important

此功能目前以公共预览版提供。

注释

首先在帐户级别启用此预览版。 然后,预览将变为可见,并可在属于该帐户的每个工作区中启用。

基于角色的访问控制(RBAC)允许用户在Azure Databricks中扮演角色,仅在会话期间使用该角色的权限。 RBAC 支持 独占访问:用户必须承担访问敏感数据的角色,这可以防止他们在充当用户标识时访问这些数据,并在用例、临床试验、项目或客户端之间混合数据。

在Azure Databricks中,角色作为组实现。 你可以向用户、服务主体或其他组授予某个组的 Assume 权限;该组在被 Assume 后会作为角色发挥作用。 组的所有成员都自动拥有该组的“代理”权限。 非成员也可以直接被授予 Assume 权限。 用户可以通过多种方法承担角色,包括工作区 UI 中的角色切换器、分配给组、CLI、API 和第三方 BI 工具的专用访问模式群集。 请参阅 “切换角色”。

将组成员权限继承(左)与角色假设(右)进行比较的关系图。当用户承担角色时,仅角色的权限适用于会话,替换用户的继承组权限。

工作原理

默认情况下,一个标识的权限包括直接授予它的权限,以及从其所属的每个组继承的权限。 属于多个组的用户可以访问这些组所能访问的全部内容——其权限会叠加,形成一组无论到哪里都会随之生效的环境权限。 承担某个角色会将继承的那组权限替换为该角色在该会话中被授予的权限,这正是实现独占访问的原因。 这适用于服务主体和其他标识,而不仅仅是交互式用户。

当用户承担角色时:

  • 所假定角色的权限将替代用户本身的权限,而不是与其合并。 充当角色时,用户无法通过其用户标识访问数据或资产。
  • 用户一次只能充当一个角色。
  • 若要充当其他角色或返回到其用户标识,必须再次切换。
  • 分配给工作区的所有组都从工作区 users 的系统组继承权限。 这意味着,以某个角色身份操作的用户除了可以看到直接授予该角色的资源外,仍然可以看到与所有工作区用户共享的目录、Unity Catalog 实体、计算资源和工作区资产。
  • 以该角色身份执行的所有操作都归属于该角色。 审计日志会同时记录 identity_metadata.run_by(承担该角色的用户)和 identity_metadata.run_as(角色)。
  • 该角色拥有在充当角色时创建的任何 Unity 目录和工作区资产(笔记本、SQL 查询、SQL 仓库、作业)。

管理“假设”权限

“假设”权限允许用户、服务主体或组承担角色。 由于角色在 Azure Databricks 中以组的形式实现,因此你需要向底层组授予“Assume”权限。 组的所有成员都自动拥有对该组的 Assume 权限,因此,您只需向非该组成员的用户、服务主体或其他组授予 Assume 权限。

若要使用账户控制台、工作区管理员设置界面或 访问控制 API 授予或撤销某个组的 Assume 权限,请参阅 管理组的权限

本节中

Topic Description
切换角色 可以通过角色切换器、专用访问模式集群、CLI、API 或第三方 BI 工具切换到某个角色。
将 RBAC 与 ABAC 配合使用 RBAC 与 Unity Catalog ABAC 的交互方式、在承担角色时身份函数的行为,以及组合使用模式。
模型独占访问 用例:使用 Azure Databricks 帐户本地组或从 Microsoft Entra ID 同步的组来设置独占访问的模式。 包括 工作区资产共享控件 作为子主题。
基于角色的访问控制 (RBAC) 限制 承担角色时不受支持或仅部分受支持的功能,以及其他约束。

后续步骤

  • 管理组:创建、编辑组并将组分配给工作区。 请参阅管理组
  • 组概述:了解帐户组、从Microsoft Entra ID同步的组和工作区本地组如何组合在一起。 请参阅
  • 将专用计算分配给组:在为组保留的计算上运行工作负荷。 请参阅 专用计算组访问权限