OneLake 安全概览

OneLake 是一个分层数据湖,类似于 Azure Data Lake Storage (ADLS) Gen2 或 Windows 文件系统。 可以在数据湖中的每个级别设置安全性。 但是,层次结构中的某些级别受到特殊处理,因为它们与 Fabric 概念相关。 OneLake 安全性控制对 OneLake 数据的所有访问,提供继承自父项或工作区权限的不同权限。

  • 工作区:用于创建和管理项的协作环境。

  • :一组功能捆绑在一起形成的单个组件。 数据项是项的子类型,允许使用 OneLake 将数据存储在其中。

  • 文件夹:项中用于存储和管理数据的文件夹。

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

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

OneLake 中的安全性

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

工作区权限

工作区权限允许定义对工作区中所有项的访问。 有四个不同的工作区角色,每个角色授予不同类型的访问权限。

角色 可以添加管理员吗? 是否可以添加成员? 可以写入数据并创建项目吗? 是否可以读取数据?
管理员
成员
参与者
查看器

注意

可以使用读写角色查看仓库项,但只能使用 SQL 查询写入仓库。

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

项目权限

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

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

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

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

计算权限

你还可以通过 Microsoft Fabric 中的 SQL 计算引擎授予数据访问权限。 通过 SQL 授予的访问权限仅适用于通过 SQL 访问数据的用户,但此安全性可用于向某些用户提供更具选择性的访问权限。 在当前状态下,SQL 支持限制对特定表和架构的访问,以及行和列级别的安全性。

根据所应用的计算权限,用户通过 SQL 访问数据与直接在 OneLake 中访问数据时可能会看到不同的结果。 为防止出现这种不匹配情况,请确保将用户的项权限配置为仅允许访问 SQL 分析终结点(使用 ReadData)或 OneLake(使用 ReadAll 或数据访问角色预览功能)。

在以下示例中,通过项共享为用户授予了对湖屋的只读访问权限。 用户通过 SQL 分析终结点获得对表的 SELECT 权限。 当用户尝试通过 OneLake API 读取数据时,他们被拒绝访问,因为他们没有足够的权限。 用户可以成功读取 SQL SELECT 语句。

显示用户通过 SQL 访问数据,但在直接查询 OneLake 时被拒绝访问的示意图。

OneLake 安全性(预览版)

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

注意

OneLake 安全性目前处于有限预览阶段。 要请求参与预览并访问这些功能,请填写 https://aka.ms/onelakesecuritypreview 的表单。

OneLake 安全性取代了 2024 年 4 月发布的现有 OneLake 数据访问角色(预览版)功能。

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

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

不属于任何角色的用户无法看到该湖屋中的任何数据。

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

OneLake 数据访问角色(预览版)

OneLake 数据访问角色功能让你可以将基于角色的访问控制 (RBAC) 应用于 OneLake 中存储的数据。 你可以定义安全角色,授予对 Fabric 项中特定文件夹的读取访问权限,并将其分配给用户或组。 访问权限决定了用户通过湖屋 UX、笔记本或 OneLake API 访问数据湖视图时看到的文件夹。

重要

从 2025 年 8 月开始,参与者将不再具有查看或管理 OneLake 数据访问角色的足够权限。

具有管理员、成员或参与者角色的 Fabric 用户可以从创建 OneLake 数据访问角色开始,仅授予对湖屋中特定文件夹的访问权限。 若要授予对湖屋中数据的访问权限,请将用户添加到数据访问角色。 不属于数据访问角色的用户无法看到该湖屋中的数据。

注意

若要访问快捷数据,除了通过 OneLake 数据访问角色进行访问外,用户还需要对目标湖屋具有 ReadAll 权限。

如果使用 Power BI 语义模型或 T-SQL 访问快捷方式,请记住,调用用户的标识不会传递到快捷方式目标路径。 相反,是传递调用项所有者的身份,从而将访问权限委托给调用用户。

数据访问角色入门中详细了解如何创建数据访问角色。

数据访问控制模型中详细了解访问角色的安全模型。

快捷方式安全性

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 环境外部运行的应用程序的数据。