什么是 Azure Databricks 清洁室?
重要
此功能目前以公共预览版提供。
本文将介绍清洁室,它是 Azure Databricks 的一项功能,使用 Delta Sharing 和无服务器计算来提供一个安全且能够保护隐私的环境,各方可以协同处理企业的敏感数据,而不会直接访问彼此的数据。
要求
要有资格使用清洁室,你必须:
- 具有已启用无服务器计算的帐户。 请参阅启用无服务器计算。
- 具有已启用 Unity Catalog 的工作区。 请参阅为工作区启用 Unity Catalog。
清洁室的工作原理是什么?
创建清洁室时,将创建以下内容:
- Unity Catalog 元存储中的安全清洁室对象。
- “中心”清洁室,这是由 Databricks 管理的隔离临时环境。
- 协作者的 Unity Catalog 元存储中的安全清洁室对象。
表、卷(非表格数据)和协作者共享在清洁室中的笔记本仅与中心清理室共享,使用增量共享。
协作者无法查看其他协作者的表和卷中的数据,但他们可以查看列名和列类型,并且可运行在表和卷上操作的已批准的笔记本代码。 笔记本代码在中心清洁室中运行。 笔记本还可以生成 输出表 ,让协作者暂时将只读输出保存到其 Unity 目录元存储,以便他们可以在工作区中使用它。
清洁室如何确保“无信任”环境?
Databricks 清洁室模型不信任任何内容。 无信任清洁室中的所有协作者都有平等的权限,包括清洁室的创建者。 清理室旨在防止运行未经授权的代码和未经授权的数据共享。 例如,所有协作者必须批准笔记本,然后该笔记本才能运行。 此信任通过阻止协作者运行自己创建的任何笔记本来隐式强制实施:你只能运行由其他协作者创建的笔记本。
其他安全措施或限制
除了上述隐式笔记本审批过程外,还有以下安全措施:
清洁室创建后,它将被锁定,以防止新的协作者加入该清洁室。
如果任何协作者删除了该清洁室,则中心清洁室将无效,并且任何用户都无法运行任何清洁室任务。
在公共预览版期间,每个清洁室仅限于两个协作者。
不能重命名清洁室。
清洁室名称在每个协作者的元存储中必须是唯一的,以便所有协作者都可以明确引用同一个清洁室。
有关每个协作者的工作区中清洁室安全对象的注释不会传播给其他协作者。
会与其他协作者共享什么内容?
- 清洁室名称。
- 中心清洁室的云和区域。
- 组织名称(可以是你选择的任何名称)。
- 清理室共享标识符(全局元存储 ID + 工作区 ID + 用户电子邮件地址)。
- 共享表或卷的别名。
- 列元数据(列名/别名和类型)。
- 笔记本(只读)。
- 输出表 (只读的,临时的)。
- 清洁室事件系统表。
- 运行历史记录,包括:
- 正在运行的笔记本的名称
- 运行笔记本的协作者(而不是用户)。
- 笔记本运行的状态。
- 笔记本运行的开始时间。
会与中心清洁室共享什么内容?
上一节中列出的所有内容。
只读表、卷和笔记本。
表和卷使用任何提供的别名在中央清洁室的元存储中注册。 表、卷和笔记本在清洁室的整个生命周期内共享。
限制
在公共预览版期间,存在以下限制:
- 所需的 Databricks Runtime 版本不包含任何服务凭据 Scala 库。
资源配额
Azure Databricks 对所有清洁室安全对象强制实施资源配额。 这些配额列在资源限制中。 如果预期超过这些资源限制,请联系 Azure Databricks 帐户团队。
可以使用 Unity Catalog 资源配额 API 来监视配额使用情况。 请参阅监视 Unity Catalog 资源配额的使用情况。