你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 中云级分析的预配安全性

本文介绍你的组织如何通过 Azure 中的数据访问和权利管理来实施安全预配。

管理数据访问

组织可以使用身份验证授权来控制对方案服务的访问。 我们的最佳实践部分为设置每个特定服务的安全性提供了指导。 例如,Azure Data Lake 最佳实践部分描述了 Azure Data Lake Storage 中的访问控制和数据湖配置

在之前的文章中,我们已经描述了如何载入创建数据产品的数据应用程序。 我们的重点是尽可能多地使用自动化。

在 Azure 平台中,有两种方法可以访问数据产品:

  • 使用 Azure Purview(数据策略)
  • 使用自定义数据市场,通过 Microsoft Entra 权利管理授予访问权限

Azure 权限方法在 Azure 存储的数据所有者的数据集预配中进行了说明。 请注意,数据所有者还可以为资源组和订阅定义策略。

本文介绍如何将 Microsoft Entra 权利管理与自定义数据市场配合使用,以授予对数据产品的访问权限。

注意

每个企业都必须为每个数据产品详细定义其数据治理流程。 例如,具有公共分类或仅供内部使用的数据可能会受到资源的保护,但任何机密或更高级别的数据都可以使用 Azure 云规模分析的数据隐私中概述的选项得到保护。 若要详细了解分类类型,请参阅在现代企业中管理 Azure 数据的要求

管理 Microsoft Entra 权利

权利管理是一种标识治理功能,通过自动执行访问请求工作流、访问分配、审核和过期,使组织能够大规模管理标识和访问生命周期。 有关权利管理的回顾及其价值,请参阅 什么是 Microsoft Entra 权利管理? 视频。

本文假设你熟悉 Microsoft Entra ID 权利管理 ,或者你至少已研究过 Microsoft 文档并了解以下术语。

术语 说明
访问包 团队或项目所需的且受策略约束的资源捆绑包。 访问包必须始终包含在目录中。 针对用户需要请求访问的方案,创建一个新的访问包。
访问请求 请求访问访问包中的资源的请求。 访问请求通常经过批准工作流程。 如果获得批准,请求者将收到访问包分配。
赋值 用户的访问包分配。 为用户提供访问包的所有资源角色。 访问包分配通常设置为在特定时间后过期。
目录 相关资源和访问包的容器。 目录用于委托,以便非管理员可以创建自己的访问包。 目录所有者可以将其拥有的资源添加到目录。
目录创建者 有权创建新目录的用户。 当已获授权成为目录创建者的非管理员用户创建新目录时,他们将自动成为该目录的所有者。
连接的组织 你与之有关联的外部 Microsoft Entra 目录或域。 可以指定来自已连接组织的用户被允许请求访问。
策略 一组定义数据访问生命周期的规则。 规则可以包括用户如何获得访问权限、谁可以批准用户以及用户通过分配获得访问权限的时间。 策略链接到访问包。 一个访问包可以有多个策略。 一个示例是一个包,其中包含一个针对请求访问的员工的策略和针对请求访问的外部用户的第二个策略。

重要

Microsoft Entra 租户目前可以使用 500 个访问包预配 500 个目录。 如果你的组织需要增加这些容量,请联系 Azure 支持

数据访问管理工作流

你的组织可以将访问治理委托给域数据专员和首席数据官,并将自定义应用程序与 Microsoft Entra 权利管理结合使用。 该委托使数据应用程序团队可以自由地支持自己,而无需服从你的平台团队。 你可以通过 Microsoft Graph REST API权利管理 REST API 设置多个审批级别并自动化端到端的入职和数据访问管理。

Microsoft Entra 权利管理包允许你委托对非管理员(如数据应用程序团队)的访问权限,以便他们可以创建访问包。 访问包包含用户可以请求的资源,例如对数据产品的访问。 你的数据管理员和其他授权访问包管理员可以定义策略,其中包含用户可以请求访问、谁可以批准他们的访问以及他们批准的访问何时到期的规则。

创建目录

如果你正在实施数据湖库,请在权利管理中为每个数据登陆区创建一个目录。 根据自动化程度和实施规模,你可以:

  • 调用权利管理 REST API 为域创建目录。
  • 通过权利管理门户为每个数据登陆区创建另一个目录。

如果你正在实施数据网格,请在权利管理中为每个域创建一个目录。 根据自动化程度和实施规模,你可以:

  • 调用权利管理 REST API 为域创建目录。
  • 通过权利管理门户为每个域创建另一个目录。

提示

每个目录都可以有自己的组权限,用于包创建和权限管理。

数据产品创建

数据产品在 Azure 中的云规模分析数据产品中进行了介绍。 对于自定义应用程序,数据载入涉及将提供端到端安全性的期望。

数据载入过程需要关键元数据,包括:

  • 多语言存储位置(计算或数据湖)
  • 审批者(如数据管理员或域的首席数据官)
  • 生命周期要求
  • 查看要求
  • 数据产品名称
  • 分类

Create data product security groups图 1:数据访问管理数据产品创建

图 1 说明了你的数据应用程序团队如何为驻留在数据湖中的数据产品自动化安全配置。 在数据产品载入到以下位置后,请求会发送到 Microsoft Graph REST API:

  1. 通过 Azure Active Directory Graph API 创建两个安全组,一个允许读/写访问,另一个只允许读访问。

    • 建议对数据湖中的 Microsoft Entra 直通身份验证使用以下 Microsoft Entra 组命名约定:
      • 域名或数据登陆区域名称
      • 数据产品名称
      • Data Lake 层:
        • RAW 表示原始数据
        • ENR 表示扩充后的数据
        • CUR 表示策展数据
      • 数据产品名称
        • RW 表示读取-写入
        • R 表示只读
    • 建议使用以下 Microsoft Entra 组命名约定进行表访问控制:
      • 域名或数据登陆区域名称
      • 数据产品名称
      • 架构或表驯服
        • RW 表示读取-写入
        • R 表示只读
  2. 将你的安全组分配给数据产品。 对于数据湖,这涉及在数据产品文件夹级别和正确的湖层(原始、丰富或策划)应用你的两个安全组。

  3. 创建一个访问包,将你的安全组与所需的批准者和生命周期(访问审查和到期)捆绑在一起。

提示

在复杂的场景中,你可以创建一个权限集合安全组来捕获多个安全组,但这将是你已经创建数据产品安全组之后的手动任务。

请求数据产品访问权限

你可以使用自定义应用程序和权利管理 REST API 自动授予数据产品访问权限。

Request access to a data product图 2:请求访问数据产品。

图 2 提供了数据产品访问请求工作流程的概览。

用户访问请求

  1. 数据用户浏览数据市场以发现他们想要访问的产品。
  2. 数据市场与权利管理 REST API 连接,并请求用户访问数据产品。
  3. 根据政策和帐户,批准者会收到通知并在其访问管理门户中查看访问请求。 如果请求获得批准,则会通知用户并向用户提供对数据集的访问权限。
  4. 如果你的组织希望根据元数据(例如用户的部门、标题或位置)授予用户权限,则可以将 Microsoft Entra ID 中的动态组添加为已批准的组。

用户请求状态

数据市场中包含的其他服务可以检查数据产品访问请求的当前状态。 这些服务可以与权利管理 REST API 交互,以列出对用户或服务主体名称的所有未完成请求。

数据访问管理总结

Azure 中的数据访问管理分为以下几个层:

  • 物理层(例如存储数据集的多语言)
  • Microsoft Entra 安全组
  • 访问包
  • 访问数据集的用户和团队

Example of using Microsoft Entra Entitlement Management.

上图提供了一个示例数据网格实现,其中为每个域创建了一个目录。 数据产品团队将新数据集或产品加入数据域。 创建并分配给数据集的 Microsoft Entra 组。 可以使用 Microsoft Entra 直通身份验证或使用 Azure Databricks、Azure Synapse Analytics 或其他分析 polyglot 存储的表访问控制授予访问权限。

Microsoft Entra 权利管理在域访问包目录中创建访问包。 访问包可以包含多个 Microsoft Entra 组。 Finance Analysis 包提供对财务和 LOB A 的访问权限,而 Finance Writers 包提供对架构 F 和 LOB A 的访问权限。仅向数据集创建者授予写入权限。 否则,只读访问应为默认值。

重要

上图说明了如何添加 Microsoft Entra 用户组。 可以使用同样的流程来添加 Azure 服务主体,集成或数据产品团队可以使用这些服务主体来引入管道等等。 你应该设置两个生命周期设置:一个用于用户请求短期访问(30 天),另一个用于请求较长时间访问(90 天)。

后续步骤