OneLake 安全概览

OneLake 是一个分层数据湖,类似于 Azure Data Lake Storage (ADLS) Gen2 或 Windows 文件系统。 OneLake 中的安全性在多个级别强制执行,每个级别都对应于访问控制的不同方面。 了解控制平面和数据平面权限之间的区别是有效保护数据的关键:

  • 控制平面权限:控制用户可以在系统环境中执行的操作(例如创建、管理或共享项)。 默认情况下,控制平面权限通常提供数据平面权限。
  • 数据平面权限:管理用户可以访问或查看的数据范围,而与用户管理资源的能力无关。

可以在 Data Lake 中的每个级别设置安全性。 但是,层次结构中的某些级别受到特殊处理,因为它们与 Fabric 概念相关。 OneLake 安全性控制对 OneLake 数据的所有访问,提供继承自父项或工作区权限的不同权限。 可以在以下级别设置权限:

  • 工作区:用于创建和管理项的协作环境。 此级别通过工作区角色管理安全性。

  • :一组捆绑在一起的功能,这些功能捆绑在一个组件中。 数据项是项的子类型,允许使用 OneLake 将数据存储在其中。 项目从工作区角色继承权限,但也可以有额外的权限。

  • 文件夹:用于存储和管理数据的项中的文件夹,例如表/或文件/。

项目始终位于工作区内,工作区始终直接位于 OneLake 命名空间之下。 可按以下内容将此结构可视化:

显示 OneLake 文件夹结构层次性的示意图。以 OneLake/Workspace/Item 为例。

OneLake 中的安全性

本部分介绍基于正式版 OneLake 功能的安全模型。

工作区权限

工作区权限定义用户可以在工作区及其项中执行的操作。 这些权限在工作区级别进行管理,主要是控制面板权限,它们决定管理和项目管理能力,而不是直接访问数据的权限。 但是,工作区权限通常会继承到项目和文件夹级别,以默认授予数据访问权限。 工作区权限允许定义对工作区中所有项的访问。 有四个不同的工作区角色,每个角色授予不同类型的访问权限。 下面是每个工作区角色的默认行为。

角色 可以添加管理员吗? 是否可以添加成员? 是否可以编辑 OneLake 安全性? 可以写入数据并创建项目吗? 是否可以在 OneLake 中读取数据?
管理员
成员
参与者
查看器 不*

注意

*可以通过 OneLake 安全角色向查看者授予对数据的访问权限。

可以通过将 Fabric 工作区角色分配给安全组来简化这些角色的管理。 此方法让你可以通过在安全组中添加或删除成员来控制访问。

项目权限

凭借 共享 功能,你可以为用户提供对项的直接访问权限。 用户只能查看工作区中的项,并且不是任何工作区角色的成员。 项权限授予连接到该项目及其终结点的权限,用户可以访问。

权限 查看项元数据? 查看 SQL 中的数据? 是否可以查看 OneLake 中的数据?
读取
读取数据
全部阅读 是*

*不适用于启用了 OneLake 安全性 或数据访问角色的项目。 如果已启用预览版,则仅在使用 DefaultReader 角色时,ReadAll 才授予访问权限。 如果对 DefaultReader 角色进行编辑或删除,则访问权限将根据用户所属的数据访问角色来授予。

配置权限的另一种方法是通过项目的“管理权限”页操作。 使用此页可以为用户或组添加或删除单个项权限。 项类型决定了哪些权限可用。

OneLake 安全性(预览版)

OneLake 安全性允许用户为存储在 OneLake 中的数据定义基于角色的精细安全性,并在 Fabric 的所有计算引擎中一致地实现该安全性。 OneLake 安全性是 OneLake 中数据的 数据平面 安全模型。

注意

OneLake 安全性目前以有限的预览版提供。 若要请求加入预览版并访问这些功能,请在以下位置 https://aka.ms/onelakesecuritypreview填写表单。

管理员或成员角色中的 Fabric 用户可以创建 OneLake 安全角色,以授予用户对项内数据的访问权限。 每个角色有四个组成部分:

  • 数据:用户可访问的表或文件夹
  • 权限:用户对数据拥有的权限
  • 成员:作为角色成员的用户
  • 约束:被排除在角色访问之外的数据组成部分(如果有),例如特定的行或列

OneLake 安全角色授予对 查看器 工作区角色或具有项的 读取 权限的用户对数据的访问权限。 管理员、成员和参与者不受 OneLake 安全角色的影响,无论其角色成员身份如何,都可以读取和写入项中的所有数据。 所有 Lakehouse 中都存在 DefaultReader 角色,该角色授予任何具有 ReadAll 权限的用户访问 Lakehouse 中的数据的权限。 可以删除或编辑 DefaultReader 角色以删除该访问权限。

详细了解如何为表和文件夹创建 OneLake 安全性角色。

详细了解 OneLake 安全性的访问控制模型

计算权限

计算权限是应用于 Microsoft Fabric 中特定查询引擎的数据平面权限类型。 授予的访问权限仅适用于针对该特定引擎运行的查询,例如 SQL 终结点或 Power BI 语义模型。 但是,与直接在 OneLake 中访问数据时相比,用户通过计算引擎访问数据时可能会看到不同的结果,具体取决于应用的计算权限。 建议使用 OneLake 安全性方法来保护 OneLake 中的数据,以确保用户可能与之交互的所有引擎的结果一致

计算引擎可能具有尚未在 OneLake 安全性中提供的更高级安全功能,在这种情况下,可能需要使用计算权限来解决某些方案。 使用计算权限保护对数据的访问时,请确保最终用户只能访问设置安全性的计算引擎。 这样可以防止通过其他引擎访问数据,而无需必要的安全功能。

快捷方式安全性

Microsoft Fabric 中的快捷方式可简化数据管理。 OneLake 文件夹安全性适用于 OneLake 快捷方式,该快捷方式基于存储数据的湖屋中定义的角色。

有关快捷安全注意事项的详细信息,请参阅 OneLake 安全访问控制模型

有关特定快捷方式的访问和身份验证详细信息的信息,请参阅 OneLake 快捷方式的类型

身份验证

OneLake 使用 Microsoft Entra ID 进行身份验证;可以使用它向用户标识和服务主体授予权限。 OneLake 会自动从使用 Microsoft Entra 身份验证的工具中提取用户标识,并将其映射到在 Fabric 门户中设置的权限。

注意

若要在 Fabric 租户中使用服务主体,租户管理员必须为整个租户或特定安全组启用服务主体名称 (SPN)。 在租户管理员门户的开发人员设置中详细了解如何启用服务主体。

审核日志

若要查看 OneLake 审核日志,请按照跟踪 Microsoft Fabric 中的用户活动中的说明进行操作。 OneLake 操作名称对应于 ADLS API,例如 CreateFile 或 DeleteFile。 OneLake 审核日志不包括读取请求或通过 Fabric 工作负载向 OneLake 发出的请求。

加密和网络

静态数据

默认情况下,使用 Microsoft 管理的密钥对 OneLake 中存储的数据进行静态加密。 Microsoft 管理的密钥会适当轮换。 OneLake 中的数据经过透明加密和解密,且符合 FIPS 140-2 标准。

目前不支持使用客户管理的密钥进行静态加密。 你可以在 Microsoft Fabric 意见中提交有关此功能的请求。

传输中的数据

在公共 Internet 之间传输的数据始终使用至少 TLS 1.2 加密 Microsoft 服务。 在条件允许的情况下,Fabric 尽可能协商使用 TLS 1.3。 Microsoft 服务之间的流量始终通过 Microsoft 全球网络路由。

入站 OneLake 通信还会强制实施 TLS 1.2,并尽可能协商到 TLS 1.3。 与客户拥有的基础结构的出站 Fabric 通信首选安全协议,但当较新的协议不受支持时,可能会回退到较旧的不安全协议(包括 TLS 1.0)。

若要在 Fabric 中配置专用链接,请参阅设置和使用专用链接

允许在 Fabric 外部运行的应用通过 OneLake 访问数据

可以允许或限制从 Fabric 环境外部的应用程序访问 OneLake 数据。 管理员可以在 管理门户租户设置的 OneLake 部分找到此设置。

启用此设置时,用户可以访问来自所有源的数据。 例如,如果你有使用 Azure Data Lake Storage (ADLS) API 或 OneLake 文件资源管理器的自定义应用程序,请启用此设置。 关闭此设置时,用户仍可以从内部应用(如 Spark、数据工程和数据仓库)访问数据,但无法访问 Fabric 环境外部运行的应用程序的数据。