权限控制用户可以对 Databricks 应用进行的一些操作,例如访问、管理和共享。 这不同于身份验证,用于验证用户的标识。 用户权限决定用户在应用中有权执行的操作。
权限级别
-
CAN MANAGE- 可以管理应用设置和权限,包括编辑和删除应用的功能。 -
CAN USE- 可以运行应用并与之交互,但无法对其进行修改或管理。
只有具有 CAN MANAGE 权限的用户才能分配或撤销对应用的权限。
组织权限
如果将应用的组织权限设置为 组织中的任何人都可以使用,则当前 Azure Databricks 帐户中的所有用户可以访问该应用。 这包括手动添加的用户、通过 跨域标识管理系统(SCIM) 同步的用户,或通过标识提供者使用 实时(JIT)预配 创建的用户。
JIT 预配的用户仍必须通过组织的标识提供者进行身份验证,并由 Azure Databricks 识别为帐户用户。 即使这些用户无权访问任何工作区,也可以授予这些用户 CAN USE 对应用的访问权限。 但是,访问权限取决于工作区身份验证策略。 例如,如果启用了 PrivateLink,Azure Databricks 可能会回退到工作区级身份验证。 在这种情况下,通过 Azure Databricks 公共终结点连接的用户将无法访问。
无法公开 Databricks 应用。 不支持匿名访问和绕过单一登录(SSO)。 若要授予对外部协作者的访问权限,请使用与 SCIM 和 JIT 预配的联合身份验证,通过标识提供者载入用户,而无需授予完整的工作区访问权限。
在 Databricks 应用 UI 中分配权限
通过在 Databricks 应用 UI 中直接分配权限来管理谁可以查看、运行或修改 Databricks 应用。
- 导航到应用详细信息页。
- 单击“权限”选项卡。
- 使用 “选择用户、组或服务主体...” 下拉列表选择用户、组或服务主体。
- 选择适当的权限级别(
CAN USE或CAN MANAGE)。 - 单击“ 添加”,然后单击 “保存” 以应用更改。
权限与授权
在 Databricks Apps 中,区分权限和授权非常重要,这些权限与概念相关但不同。
权限 在工作区级别分配,并定义工作区中可以管理或使用应用的人员。 权限控制对应用本身的访问,例如谁可以部署、更新或运行它。 权限不会控制应用或其用户可以访问的数据。
授权 是指控制对数据和资源的访问,并且有两个子类别:
- 用户授权 - 当用户向应用进行身份验证时,Azure Databricks 会将其标识转发到应用运行时。 这使 Unity 目录和其他数据访问策略能够基于用户的标识强制实施权限,从而限制应用可以代表他们访问哪些数据。
- 应用授权 - 应用使用具有自身权限的服务主体运行,以访问所需的 Azure Databricks 资源。 此授权规定应用本身可以独立于任何用户执行的操作。
总之,权限控制对应用(谁可以使用或管理应用)的工作区级访问权限,而授权控制数据级和资源访问,包括基于用户标识的访问和应用服务主体访问权限。
有关详细信息,请参阅 在 Databricks 应用中配置授权。
应用权限
工作区中的任何用户都可以创建 Databricks Apps,类似于其他无服务器产品。 但是,以下权利控制应用访问的不同方面:
- 应用访问和管理: 谁可以访问和管理应用,通过权限级别进行控制
- 服务主体权限: 分配给应用的专用服务主体的权限
- 用户同意: 用户是否同意允许应用使用其标识进行用户授权
- 用户权限: 访问应用的用户的基础 Unity 目录和工作区权限
权限的最佳做法
遵循以下最佳做法安全地管理 Databricks 应用权限:
- 通过仅授予每个用户角色所需的权限,遵循最低特权原则。
- 除非用户需要管理功能,否则首选分配
CAN USE权限。 - 使用组或服务主体能以更高效的方式大规模管理权限。