Microsoft Fabric 端到端安全应用场景

安全性是任何数据分析解决方案的关键方面,尤其是在涉及到敏感或保密数据时。 因此,Microsoft Fabric 提供了一组全面的安全功能,使用户能够保护静态数据和传输中的数据,以及控制用户和应用程序的访问权限和权限。

在本文中,你将了解 Microsoft Fabric 安全概念和功能,这些概念和功能有助于用户使用 Fabric 自信地构建自己的分析解决方案。

背景

本文介绍了一种应用场景,即你是一名就职于美国一家医疗保健组织工作的数据工程师。 组织收集和分析源自各种系统的患者数据,包括电子健康记录、实验室结果、保险索赔和可穿戴设备。

你计划在 Fabric 中使用奖牌体系结构来构建 Lakehouse,Lakehouse 由三层组成:青铜层、白银层和黄金层。

  • 青铜层在来自数据源的原始数据到达时即存储原始数据。
  • 白银层应用数据质量检查和转换来准备数据以进行分析。
  • 黄金层提供用于报告和可视化的聚合和扩充数据。

一些数据源位于本地网络上,而其他数据源位于防火墙之后,需要安全且经过身份验证的访问权限。 还有一些数据源在 Azure 中进行管理,例如Azure SQL 数据库和Azure 存储。 需要以不向公共互联网公开数据的方式连接到这些 Azure 数据源。

你已决定使用 Fabric,因为它可以安全地引入、存储、处理和分析云中的数据。 重要的是,它在进行这些操作的同时也遵守组织的行业和策略法规。

由于 Fabric 是服务型软件(SaaS),因此无需预配单个资源,例如存储或计算资源。 只需具有 Fabric 容量即可。

需要设置数据访问权限要求。 具体而言,需要确保只有你和数据工程师才能访问 Lakehouse 的青铜层和白银层中的数据。 这些层是你计划在执行数据清理、验证、转换和扩充操作的位置。 还需要限制对黄金层中数据的访问权限。 只有授权用户(包括数据分析师和商务用户)才有权访问黄金层。 他们需要相应的访问权限,来将数据用于各种分析目的,例如报告、机器学习和预测分析。 需要通过用户的角色和部门,进一步限制数据访问权限。

连接到 Fabric(入站保护)

首先设置入站保护,这涉及到你和其他用户如何登录并有权访问 Fabric。

由于 Fabric 部署到 Microsoft Entra 租户中,因此身份验证和授权由 Microsoft Entra 处理。 你使用 Microsoft Entra 组织帐户(工作或学校帐户)登录。 接下来,要考虑其他用户如何连接到 Fabric。

Microsoft Entra 租户是一个由 IT 管理员控制的标识安全边界。 在此安全边界内,IT 管理员将负责管理 Microsoft Entra 对象(如用户帐户)和租户范围设置的配置。 与任何 SaaS 服务一样,Fabric 会对租户进行逻辑隔离。 除非得到显式授权,否则其他租户永远无法访问租户中的数据和资源。

下面介绍用户登录到 Fabric 时会发生什么情况。

关系图显示了 Fabric 安全体系结构的概要表示形式。下表描述了关系图中的项。

项目 描述
项 1。 用户打开浏览器(或客户端应用程序),并登录到 Fabric 门户
项 2。 用户将立即重定向到 Microsoft Entra ID,他们需要进行身份验证。 身份验证会验证登录者是否是正确的登录人员。
项 3。 身份验证成功后,Web 前端将接收用户请求,并从最近的位置传送前端(HTML 和 CSS)内容。 它还可将请求路由到元数据平台和后端容量平台。
项 4。 驻留在租户的主区域中的元数据平台将存储租户的元数据,例如工作区和访问控制。 此平台确保用户有权访问相关工作区和 Fabric 项。
项 5。 后端容量平台会执行计算操作并存储数据。 它位于容量区域中。 系统将工作区分配到 Fabric 容量时,驻留在工作区中的所有数据(包括 OneLake 数据湖)都会在容量区域中存储并处理。

元数据平台和后端容量平台均在受保护的虚拟网络中运行。 这些网络将向互联网公开一系列安全端点,以便它们可以接收来自客户和其他服务的请求。 除了这些终结点外,服务还受到阻止从公共 Internet 访问的网络安全规则的保护。

当用户登录到 Fabric 时,可以强制实施其他保护层。 这样,租户将仅供某些用户访问,并且须满足其他条件(如网络位置和设备符合性)。 此保护层称为入站保护

在此应用场景中,你负责 Fabric 中的敏感患者信息。 因此,组织已要求访问 Fabric 的所有用户必须执行多重身份验证 (MFA),并且他们必须位于企业网络上,只确保用户标识是不够的。

组织还使用户能够随处工作并使用其个人设备,从而为他们提供灵活性。 由于 Microsoft Intune 支持自带设备 (BYOD),因此你在 Intune 中注册了已批准的用户设备。

此外,需要确保这些设备符合组织策略。 具体而言,这些策略要求只有在设备安装了最新的操作系统和最新的安全修补程序时才能连接。 使用 Microsoft Entra 条件访问设置这些安全要求。

条件访问提供了几种保护租户的方法。 您可以:

如果需要锁定整个 Fabric 租户,可以使用虚拟网络并阻止公共互联网访问权限。 然后,仅允许从该安全虚拟网络内部访问 Fabric。 通过在 Fabric 的租户级别启用专用链接来设置此要求。 它可确保所有 Fabric 端点均解析为虚拟网络中的专用 IP 地址,包括对所有 Power BI 报表的访问权限。 (启用专用端点会对许多 Fabric 项目造成影响,因此在启用专用端点之前,应全面阅读本文。)

保护对 Fabric 外部数据的访问权限(出站保护)

接下来,要设置出站保护,这涉及安全访问防火墙或私有端点后的数据。

组织有一些位于本地网络的数据源。 由于这些数据源位于防火墙后,Fabric 需要安全访问权限。 要允许 Fabric 安全地连接到本地数据源,请安装本地数据网关

数据工厂数据流数据管道可以使用网关来引入、准备和转换本地数据,然后使用复制活动将其加载到 OneLake。 数据工厂支持一组全面的连接器,使用户能够连接到 100 多个不同的数据存储。

随后使用 Power Query 生成数据流,该数据流提供低代码接口的直观体验。 使用该数据流从数据源引入数据,并使用 300 多种数据转换中的任何一种对其进行转换。 然后,使用数据管道构建并编排复杂的提取、转换和加载 (ETL) 过程。 ETL 过程可以刷新数据流并大规模执行许多不同的任务,同时处理 PB 级数据。

在此应用场景中已有多个 ETL 过程。 首先,Azure 数据工厂 (ADF) 中有一些管道。 目前,这些管道使用自承载集成运行时引入本地数据,并将其加载到 Azure 存储中的数据湖。 其次,在 Azure Databricks 中有一个用 Spark 编写的数据引入框架。

现在使用 Fabric 后,只需将 ADF 管道的输出目标重定向到使用 Lakehouse 连接器。 对于 Azure Databricks 中的引入框架,可以使用支持 Azure 博客文件系统 (ABFS) 驱动程序的 OneLake APIOneLake 与 Azure Databricks 集成。 (也可以使用 Apache Spark,以同一方法将 OneLake 与 Azure Synapse Analytics 集成。)

此外,还有一些数据源位于 Azure SQL 数据库中。 需要使用专用端点连接到这些数据源。 在这种情况下,你决定设置虚拟网络 (VNet) 数据网关,并使用数据流安全地连接到 Azure 数据并将其加载到 Fabric 中。 使用 VNet 数据网关时,无需预配和管理基础结构(对于本地数据网关,需要执行这些操作)。 这是因为 Fabric 会在 Azure 虚拟网络中安全且动态地创建容器。

如果要在 Spark 中开发或迁移数据引入框架,则可以在托管专用端点的帮助下,从 Fabric 笔记本和作业安全地和私密地连接到 Azure 中的数据源。 可以在 Fabric 工作区中创建托管专用端点,以连接到 Azure 中阻止了公共互联网访问权限的数据源。 它们支持专用端点,例如 Azure SQL 数据库和 Azure 存储。 托管专用端点是在专用于 Fabric 工作区的托管 VNet 中预配和管理的。 与典型的 Azure 虚拟网络不同,Azure 门户中找不到托管 VNet 和托管专用端点。 这是因为它们完全由 Fabric 管理,可在工作区设置中找到它们。

由于 Azure Data Lake Storage (ADLS) Gen2 帐户中已存储了大量数据,因此现在只需将 Fabric 工作负载(如 Spark 和 Power BI)连接到它。 此外,借助 OneLake ADLS 快捷方式,可以轻松地从任何 Fabric 体验(如数据集成管道、数据工程笔记本和 Power BI 报表)连接到现有数据。

具有工作区标识 的 Fabric 工作区可以安全地访问 ADLS Gen2 存储帐户,即使在禁用了公用网络的情况下也是如此。 这可以通过受信任的工作区访问权限实现。 它允许 Fabric 使用 Microsoft 主干网络安全地连接到存储帐户。 这意味着通信不使用公共互联网,如此便能够禁用对存储帐户的公共网络访问权限,但仍允许某些 Fabric 工作区连接到它们。

合规性

要使用 Fabric 安全地引入、存储、处理和分析云中的数据,同时保持遵守行业法规和组织策略的要求。

Fabric 是 Microsoft Azure Core Services 的一部分,受《Microsoft Online Services 条款》《Microsoft Enterprise 隐私声明》约束。 虽然认证通常在产品发布(正式发布,简称 GA)之后进行,但 Microsoft 会从一开始以及整个开发生命周期内集成合规性最佳做法。 这种主动方法为未来的认证确保了坚实的基础,尽管它们遵循既定的审核周期。 简单地说,我们会从一开始就优先考虑构建合规性,即使正式的认证稍后才到来。

Fabric 符合许多行业标准,如 ISO 27001、27017、27018 和 27701。 Fabric 也符合 HIPAA,这对医疗保健数据隐私和安全性至关重要。 可以在 Microsoft Azure 合规性产品/服务中检查附录 A 和 B,以便深入了解哪些云服务在认证范围内。 还可以从服务信任门户 (STP) 访问审核文档。

合规性是共同的责任。 为了遵守法律和法规,云服务提供商及其客户将共同承担责任,以确保每个提供商都履行自己的职责。 在考虑和评估公有云服务时,必须了解共担责任模型、云提供商处理哪些安全任务,以及你处理哪些任务。

数据处理

由于你正在处理敏感的患者信息,因此你需要确保所有数据在静态和传输过程中都受到充分的保护。

静态加密为已存储的数据(静止的)提供数据保护。 对静态数据进行的攻击包括:试图获得存储数据的硬件的物理访问权限,然后入侵其中包含的数据。 静态加密旨在防止攻击者访问未加密的数据,其方法是确保这些数据在磁盘上时是加密的。 静态加密是遵守某些行业标准和法规所需的强制性措施,如国际标准化组织 (ISO) 和健康保险可携性和责任法案(Health Insurance Portability and Accountability Act,HIPAA)。

所有 Fabric 数据存储都使用 Microsoft 管理的密钥进行静态加密 ,该密钥为客户数据和系统数据和元数据提供保护。 在未加密状态下,数据永远不会持久化保存到永久存储。 凭借 Microsoft 管理的密钥,用户可受益于静态数据的加密,而无需面临自定义密钥管理解决方案的风险或成本。

也会对传输中的数据加密。 从客户端系统传输至 Fabric 端点的所有入站流量,都至少强制实施传输层安全性 (TLS) 1.2。 条件允许时,其会尽可能协商到 TLS 1.3。 TLS 提供严格的身份验证,消息隐私性和完整性强(允许检测消息篡改、拦截和伪造),具有良好的互操作性,算法灵活,易于部署和使用。

除了加密,Microsoft 服务之间的网络流量始终通过 Microsoft 全球网络进行路由,这是世界上最大的主干网络之一。

客户管理的密钥 (CMK) 加密和 Microsoft Fabric

客户管理的密钥 (CMK) 允许您使用自己的密钥加密静态数据。 默认情况下,Microsoft Fabric 使用平台管理的密钥对静态数据进行加密。 在此模型中,Microsoft 负责密钥管理的各个方面,OneLake 上的静态数据使用其密钥加密。 从合规角度来看,客户可能需要使用 CMK 来加密静态数据。 在 CMK 模型中,客户完全控制密钥,并使用自己的密钥加密静态数据。

关系图显示了通过 Fabric OneLake 快捷方式来使用 CMK 的高级表示形式。

如果需要使用 CMK 加密静态数据,建议您使用启用了 CMK 加密的云存储服务(ADLS Gen2、AWS S3、GCS),并使用 OneLake 快捷方式从 Microsoft Fabric 访问数据。 在此模式中,数据将继续驻留在云存储服务或外部存储解决方案中,并在其中使用 CMK 启用静态加密,您可以从 Fabric 执行就地读取操作,同时保持合规。 在 Fabric 中创建快捷方式后,其他 Fabric 体验就可以访问数据。

使用此模式时,需要注意一些事项:

  • 对于需要使用 CMK 进行静态加密的数据,可使用此处讨论的模式。 无此要求的数据可使用平台管理的密钥进行静态加密,这些数据可本机存储在 Microsoft Fabric OneLake 中。
  • Fabric 湖屋KQL 数据库是 Microsoft Fabric 中支持创建快捷方式的两个工作负载。 在此模式中,数据继续驻留在启用了 CMK 的外部存储服务上,可以使用湖屋和 KQL 数据库中的快捷方式将数据引入 Microsoft Fabric 进行分析,但数据实际上存储在启用了 CMK 加密的 OneLake 之外。
  • ADLS Gen2 快捷方式支持写入,使用此快捷方式类型,还可以将数据写回存储服务,并使用 CMK 对其进行静态加密。 将 CMK 与 ADLS Gen2 结合使用时,请注意以下 Azure Key Vault (AKV)Azure 存储注意事项。
  • 如果使用与 AWS S3 兼容的第三方存储解决方案(Cloudflare、具有公开终结点的 Qumolo Core、公开 MinIO 和具有公开终结点的 Dell ECS),并且已启用 CMK,本文档中讨论的模式可以扩展到这些第三方存储解决方案。 通过 Amazon S3 兼容的快捷方式,可以使用这些解决方案中的快捷方式将数据引入 Fabric。 与基于云的存储服务一样,可以使用 CMK 加密将数据存储在外部存储上,并执行就地读取操作。
  • AWS S3 支持使用客户管理的密钥进行静态加密。 Fabric 可以使用 S3 快捷方式对 S3 存储桶执行就地读取;但是,不支持使用 AWS S3 快捷方式的写入操作。
  • Google 云存储支持使用客户管理的密钥进行数据加密。 Fabric 可以在 GCS 上执行就地读取操作,但不支持使用 GCS 快捷方式进行写入操作。
  • 为 Microsoft Fabric 启用审计以跟踪活动。
  • 在 Microsoft Fabric 中,Power BI 体验支持客户管理的密钥
  • 禁用与 S3、GCS 和 S3 兼容的快捷方式的快捷方式缓存功能。 由于缓存的数据保存在 OneLake 上。

数据驻留

在处理患者数据时,出于合规性原因,组织已强制规定数据不应离开美国地理边界。 组织的主要业务发生在纽约和西雅图的总部。 设置 Power BI 时,组织已选择“美国东部”区域作为租户主区域。 对于操作,你已在美国西部区域创建了一个 Fabric 容量,它距离你的数据源更近。 由于 OneLake 在全球可用,因此你担心是否可以在使用 Fabric 的同时满足组织的数据驻留策略。

在 Fabric 中,可以创建多地理位置容量,这些容量位于租户主区域以外的地理位置(地区)。 你将 Fabric 工作区分配给这些容量。 这种情况下,工作区内所有项的计算和存储(包括 OneLake 和体验特定存储)位于多地理位置区域中,不过租户元数据依然在主区域内。 数据将只在这两个地理位置中存储并进行处理,从而确保满足组织的数据驻留要求。

访问控制

需要确保只有你和数据工程师能完全访问 Lakehouse 的青铜层和白银层中的数据。 这些层使你能够执行数据清理、验证、转换和扩充操作。 需要将黄金层中的数据的访问权限限制为仅授权用户(例如数据分析师和业务用户),这些用户可以将数据用于各种分析目的,例如报告和分析。

Fabric 提供了灵活的权限模型,可用于控制对工作区中的项和数据的访问权限。 工作区是在 Fabric 中进行项分组的安全对象逻辑实体。 使用工作区角色来控制对工作区中项的访问权限。 工作区的四个基本角色包括:

  • 管理员:可以查看、修改、共享和管理工作区中的所有内容,包括管理权限。
  • 成员:可以查看、修改和共享工作区中的所有内容。
  • 参与者:可以查看和修改工作区中的所有内容。
  • 查看者:可以查看工作区中的所有内容,但无法对其进行修改。

在此应用场景中,你将创建三个工作区,每个奖牌层(青铜、白银和黄金)各有一个工作区。 由于创建了工作区,因此会为你自动分配“管理员”角色。

随后,将安全组添加到这三个工作区的“参与者”角色。 由于你的工程师同仁是安全组的成员,因此他们能够在这些工作区中创建和修改 Fabric 项,但是他们无法与任何其他人共享任何项。 他们也无法向其他用户授予访问权限。

在青铜工作区和白银工作区中,你和工程师创建构造项来引入数据、存储数据和处理数据。 Fabric 项包括 Lakehouse、管道和笔记本。 在“黄金”工作区中,你将创建两个 Lakehouse、多个管道和笔记本,以及一个 Direct Lake 语义模型,该模型提供存储在其中一个 Lakehouse 中的数据的快速查询性能。

然后,你需要仔细考虑数据分析师和业务用户如何访问他们有权访问的数据。 具体而言,他们只能访问与自身角色和部门相关的数据。

第一个 Lakehouse 包含实际数据,并且不会在其 SQL 分析端点中强制实施任何数据权限。 第二个 Lakehouse 包含第一个 Lakehouse 的快捷方式,并在其 SQL 分析端点中强制实施精细的数据权限。 语义模型连接到第一个 Lakehouse。 若要为用户强制实施适当的数据权限(这样他们就只能访问与其角色和部门相关的数据),请勿与用户共享第一个 Lakehouse。 相反,应仅共享 Direct Lake 语义模型和第二个 Lakehouse(在 SQL 分析端点中强制实施数据权限)。

应设置语义模型以使用固定标识,然后在语义模型中实现行级安全性 (RLS),以强制实施模型规则来治理用户可以访问的数据。 随后,仅将语义模型与数据分析师和商业用户共享,因为他们不应访问工作区中的其他项,例如管道和笔记本。 最后,向语义模型授予构建权限,以便用户可以创建 Power BI 报表。 这样,语义模型将成为其 Power BI 报表的共享语义模型和源。

数据分析师需要访问黄金工作区中的第二个 Lakehouse。 他们将连接到 Lakehouse 的 SQL 分析端点,以写入 SQL 查询和执行分析。 因此,可与他们共享该 Lakehouse,并通过使用 SQL 安全模型,在 SQL 分析端点中仅提供对他们所需对象(例如具有屏蔽规则的表、行和列)的访问权限。 数据分析师现在只能访问与其角色和部门相关的数据,他们也无法访问工作区中的其他项,例如管道和笔记本。

常用安全应用场景

下表列出了常见安全应用场景和可用于完成这些场景的工具。

方案 工具 方向
我是一名 ETL 开发人员,我想从多个源系统和表将大量数据大规模加载到 Fabric。 源数据在本地(或其他云)提供,位于具有专用端点的防火墙和/或 Azure 数据源后。 本地数据网关用于数据管道复制活动)。 出站
我是一名 Power User,我想从我有权访问的源系统将数据加载到 Fabric。 因为我不是开发人员,我需要使用低代码接口转换数据。 源数据在本地(或其他云)提供,位于防火墙后。 通过数据流 Gen 2 使用本地数据网关 出站
我是一名 Power User,我想从我有权访问的源系统加载 Fabric 中的数据。 源数据位于专用端点后的 Azure 中,而且我不想安装和维护本地数据网关基础结构。 VNet 数据网关数据流第 Gen 2 配合使用。 出站
我是一名开发人员,可以使用 Spark 笔记本编写数据引入代码。 我想从我有权访问的源系统加载 Fabric 中的数据。 源数据位于专用端点后的 Azure 中,而且我不想安装和维护本地数据网关基础结构。 Fabric 笔记本Azure 专用端点配合使用。 出站
我在 Azure 数据工厂 (ADF) 和 Synapse 管道中有许多现有管道,这些管道连接到我的数据源并将数据加载到 Azure。 我现在想要修改这些管道,以便将数据加载到 Fabric 中。 在现有管道中使用 Lakehouse 连接器 出站
我有一个在 Spark 中开发的数据引入框架,可以安全地连接到我的数据源,并将其加载到 Azure 中。 我在 Azure Databricks 和/或 Synapse Spark 上运行该框架。 我想继续使用 Azure Databricks 和/或 Synapse Spark 来将数据加载到 Fabric 中。 使用 OneLake 和 Azure Data Lake Storage (ADLS) Gen2 API(Azure Blob 文件系统驱动程序) 出站
我想确保我的 Fabric 端点受到公共互联网的保护。 作为 SaaS 服务,Fabric 后端已受公共 Internet 的保护。 要获得更多保护,请使用面向 Fabric 的 Microsoft Entra 条件访问策略和/或为 Fabric 启用租户级别的专用链接,并阻止公共互联网访问权限。 入站
我想确保只能从公司网络和/或合规设备内部访问 Fabric。 使用面向 Fabric 的 Microsoft Entra 条件访问策略 入站
我想确保访问 Fabric 的任何人都必须执行多重身份验证。 使用面向 Fabric 的 Microsoft Entra 条件访问策略 入站
我想从公共互联网锁定整个 Fabric 租户,并仅允许从虚拟网络内部进行访问。 为 Fabric 启用租户级别的专用链接,并阻止公共互联网访问权限。 入站

有关 Fabric 安全性的详细信息,请参阅下列资源: