身份最佳实践

本文提供了一个关于如何在Databricks中最好地配置身份的观点。其中包括关于如何迁移到身份联合的指南,该指南使您能够在Databricks帐户中管理所有用户、组和服务主体。

有关Databricks标识模型的概述,请参见数据库身份和角色

配置用户、服务主体和组

有三种类型的Databricks身份:

  • 用户:由Databricks识别并以电子邮件地址表示的用户身份。

  • 服务主体:用于作业、自动化工具和系统(如脚本、应用程序和CI/CD平台)的身份。bob体育客户端下载

  • :组简化了身份管理,更容易分配对工作空间、数据和其他安全对象的访问。

Databricks建议创建服务主体来运行生产作业或修改生产数据。如果处理生产数据的所有进程都使用服务主体运行,那么交互用户在生产中不需要任何写、删除或修改权限。这消除了用户意外覆盖生产数据的风险。

最好的做法是将工作空间的访问权限和Unity Catalog中的访问控制策略分配给组,而不是单独分配给用户。所有Databricks身份都可以分配为组的成员,并且成员继承分配给其组的权限。

以下是管理数据库的管理员角色:

  • 账户管理员可以管理您的Databricks帐户级别的配置,包括身份,计费,云资源,以及创建工作区和Unity Catalog亚存储。

  • 工作空间管理员可以将用户添加到Databricks工作空间,为他们分配工作空间管理员角色,并管理对工作空间中对象和功能的访问,例如创建集群和更改作业所有权的能力。

  • Metastore管理员可以管理metastore中所有可安全对象的特权,例如谁可以创建目录或查询表。创建Unity Catalog metastore的帐户admin将成为初始metastore管理员。

Databricks建议每个帐户和每个工作空间中的工作空间管理员的数量应该是有限的。将metastore管理角色转移到组是一种最佳实践。看到(推荐)转移你的metastore的所有权到一个组

将用户和组从身份提供程序同步到Databricks帐户

Databricks建议使用SCIM配置将用户和组从身份提供者自动同步到Databricks帐户。SCIM通过使用您的身份提供者在Databricks中创建用户和组并为他们提供适当级别的访问,简化了新员工或团队的入职。当用户离开您的组织或不再需要访问Databricks时,管理员可以在您的身份提供程序中终止该用户,该用户的帐户也将从Databricks中删除。这确保了一致的下线过程,并防止未经授权的用户访问敏感数据。

您应该将打算使用Databricks的所有用户和组同步到帐户控制台,而不是单个工作区。这样,您只需要配置一个SCIM供应应用程序,以保持帐户中所有工作空间中的所有身份一致。如果您已经为工作区设置了工作区级的SCIM供应,那么您应该设置帐户级的SCIM供应,并关闭工作区级的SCIM供应器。看到升级到身份联合

帐户级别的SCIM图

然后,可以使用身份联合将特定用户、组和服务主体从帐户分配到Databricks中的特定工作区。

配置单点登录

单点登录(SSO)使您能够使用组织的标识提供程序对用户进行身份验证。Databricks建议配置SSO以提高安全性和可用性。您必须在帐户和各个工作空间上配置SSO。您应该为您的帐户和帐户中的所有工作区配置SSO到相同的标识提供程序。最好在帐户级别使用OIDC进行SSO配置,以确保支持身份验证特性。

在您的工作空间上配置SSO之后,您应该进行配置密码访问控制.密码访问控制使您能够限制用户使用其用户名和密码对REST api进行身份验证。相反,用户必须使用个人访问令牌.数据库建议您不要授予可以使用任何工作区用户的密码。有关个人访问令牌的更多信息,请参见管理个人访问令牌

启用身份联合

身份联合使您能够在帐户控制台中配置用户、服务主体和组,然后将这些身份访问权分配给特定的工作空间。这简化了Databricks的管理和数据治理。

使用身份联合,您可以在帐户控制台中一次性配置Databricks用户、服务主体和组,而不是在每个工作区中分别重复配置。这既减少了新团队加入Databricks时的摩擦,也使您能够使用Databricks帐户的身份提供者维护一个SCIM供应应用程序,而不是为每个工作空间使用单独的SCIM供应应用程序。一旦用户、服务主体和组被添加到帐户中,您就可以为他们分配工作空间的权限。您只能将帐户级别的身份访问权限分配给启用了身份联合的工作区。

帐户级别的标识图

要启用用于身份联合的工作空间,请参见管理员如何在工作空间上启用身份联合?

在工作空间级别启用了标识联合,您可以组合使用标识联合和非标识联合工作空间。对于那些没有启用身份联合的工作空间,工作空间管理员完全在工作空间(遗留模型)的范围内管理他们的工作空间用户、服务主体和组。他们不能使用帐户控制台或帐户级api将帐户中的用户分配到这些工作区,但是他们可以使用任何工作区级接口。只要使用工作空间级接口将新用户或服务主体添加到工作空间,该用户或服务主体就会同步到帐户级。这使您可以在帐户中拥有一组一致的用户和服务主体。

但是,当使用工作空间级接口将组添加到非身份联邦工作空间时,该组是workspace-local集团并且没有添加到帐户中。帐户组只能由帐户管理员通过帐户级接口创建。您应该致力于使用帐户组而不是工作空间-本地组。工作空间-本地组不能被授予Unity Catalog中的访问控制策略或对其他工作空间的权限。

升级到身份联合

如果要在现有工作区上启用身份联合,请执行以下操作:

  1. 将工作区级别的SCIM供应迁移到帐户级别

    如果您有一个工作区级别的SCIM供应设置您的工作空间,那么您应该设置帐户级别的SCIM供应并关闭工作空间级别的SCIM供应器。工作区级别的SCIM将继续创建和更新工作区本地组。Databricks建议使用帐户组而不是工作空间-本地组来利用集中的工作空间分配和使用Unity Catalog的数据访问管理。有关如何禁用工作区级SCIM的详细信息,请参见将工作区级别的SCIM供应迁移到帐户级别

  2. 将工作区-本地组转换为帐户组

    Databricks建议将现有的工作空间-本地组转换为帐户组。看到将工作空间-本地组迁移到帐户组的指令。在将组迁移到帐户后,您需要授予新帐户组对工作区、对象和功能的访问权限,以便组成员维护他们的访问权限。

为组分配工作空间权限

现在在您的工作空间上启用了身份联合,您可以在该工作空间上为帐户权限中的用户、服务主体和组分配权限。Databricks建议将组权限分配给工作空间,而不是将工作空间权限单独分配给用户。所有Databricks身份都可以分配为组的成员,并且成员继承分配给其组的权限。

添加工作区权限

BOB低频彩