教程:大规模配置对 Microsoft Purview MSI 数据源的访问权限

若要扫描数据源,Microsoft Purview 需要访问这些数据源。 本教程适用于 Azure 订阅所有者和 Microsoft Purview 数据源管理员。 有助你确定所需的访问权限,并为 Microsoft Purview 跨 Azure 数据源设置所需的身份验证和网络规则。

在本教程系列的第 2 部分中,你将执行以下操作:

  • 找到数据源,并准备一个数据源订阅列表。
  • 运行脚本,在 Azure 中跨数据源配置任何缺失的基于角色的访问控制 (RBAC) 或所需的网络配置。
  • 审阅输出报告

必备条件

  • 数据源所在的 Azure 订阅。 如果没有 Azure 订阅,可在开始前创建一个试用帐户
  • Microsoft Purview 帐户
  • 每个订阅中的 Azure 密钥保管库资源,其中包含 Azure SQL 数据库、Azure Synapse Analytics 或 Azure SQL 托管实例等数据源。
  • Microsoft Purview MSI 配置脚本。

注意

Microsoft Purview MSI 配置脚本仅适用于 Windows。 Microsoft Purview 托管标识 (MSI) 目前支持此脚本。

重要

我们强烈建议你先测试并验证脚本在 Azure 环境中所执行的所有更改,然后再将其部署到生产环境中。

为数据源准备 Azure 订阅列表

在运行该脚本之前,请创建一个包含四个列的 .csv 文件(例如 C:\temp\Subscriptions.csv):

列名称 说明 示例
SubscriptionId 数据源的 Azure 订阅 ID。 12345678-aaaa-bbbb-cccc-1234567890ab
KeyVaultName 部署在数据源订阅中的现有密钥保管库的名称。 ContosoDevKeyVault
SecretNameSQLUserName 包含 Microsoft Entra 用户名的现有 Azure 密钥保管库机密的名称,可使用 Microsoft Entra 身份验证登录到 Azure Synapse、Azure SQL 数据库或 Azure SQL 托管实例。 ContosoDevSQLAdmin
SecretNameSQLPassword 包含 Microsoft Entra 用户密码的现有 Azure 密钥保管库机密的名称,可使用 Microsoft Entra 身份验证登录到 Azure Synapse、Azure SQL 数据库或 Azure SQL 托管实例。 ContosoDevSQLPassword

示例 .csv 文件:

屏幕截图:显示示例订阅列表。

注意

如果需要,可以更新代码中的文件名和路径。

运行脚本并安装所需的 PowerShell 模块

请按照以下步骤在 Windows 计算机上运行脚本:

  1. 将 Microsoft Purview MSI 配置脚本下载到所选的位置。

  2. 在计算机上,在 Windows 任务栏的搜索框中输入 PowerShell。 在搜索列表中,选择并按住(或右键单击)Windows PowerShell,然后选择“以管理员身份运行” 。

  3. 在 PowerShell 窗口中输入以下命令。 (将 <path-to-script> 替换为提取的脚本文件的文件夹路径。)

    dir -Path <path-to-script> | Unblock-File
    
  4. 输入以下命令来安装 Azure cmdlet:

    Install-Module -Name Az -AllowClobber -Scope CurrentUser
    
  5. 如果看到提示“需要 NuGet 提供程序才能继续”,请输入“Y”,然后按“Enter”。

  6. 如果看到提示“不受信任的存储库”,请输入“A”,然后按“Enter”。

  7. 重复前面的步骤以安装 Az.SynapseAzureAD 模块。

PowerShell 安装所需的模块可能最多需要一分钟时间。

收集运行脚本所需的其他数据

在运行 PowerShell 脚本以验证数据源订阅的就绪状态之前,请获取脚本中要使用的以下参数的值:

  • AzureDataType:选择以下任一选项作为数据源类型,以检查你的订阅中数据类型的就绪情况:

    • BlobStorage

    • AzureSQLMI

    • AzureSQLDB

    • ADLSGen2

    • ADLSGen1

    • Synapse

    • All

  • PurviewAccount:现有的 Microsoft Purview 帐户资源名称。

  • PurviewSub:在其中部署 Microsoft Purview 帐户的订阅 ID。

验证你的权限

请确保用户具有以下角色和权限:

至少需要有以下权限才能在 Azure 环境中运行脚本:

角色 范围 必要性
全局读取者 Microsoft Entra 租户 用来读取 Azure SQL 管理员用户组成员身份和 Microsoft Purview MSI
应用程序管理员 Microsoft Entra 租户 用于将“目录读取器”角色分配给 Azure SQL 托管实例
参与者 创建 Microsoft Purview 帐户时所在的订阅或资源组 用于读取 Microsoft Purview 帐户资源并创建 Key Vault 资源和机密
所有者或用户管访问理员 查找 Azure 数据源时所在的管理组或订阅 用于分配 RBAC
参与者 查找 Azure 数据源时所在的管理组或订阅 用于设置网络配置
SQL 管理员(Microsoft Entra 身份验证) Azure SQL Server 实例或 Azure SQL 托管实例 若要将“db_datareader”角色分配至 Microsoft Purview
访问 Azure 密钥保管库 访问 Azure SQL 数据库、Azure SQL 托管实例或 Azure Synapse 身份验证的获取/罗列密钥保管库机密

运行客户端就绪脚本

通过完成以下步骤来运行该脚本:

  1. 使用以下命令前往该脚本的文件夹。 将 <path-to-script> 替换为提取文件的文件夹路径。

    cd <path-to-script>
    
  2. 执行以下命令以设置本地计算机的执行策略。 当系统提示你更改执行策略时,输入“A”表示“全部更改”。

    Set-ExecutionPolicy -ExecutionPolicy Unrestricted
    
  3. 使用以下参数运行脚本。 替换 DataTypePurviewNameSubscriptionID 占位符。

    .\purview-msi-configuration.ps1 -AzureDataType <DataType> -PurviewAccount <PurviewName> -PurviewSub <SubscriptionID>
    

    运行该命令时,可能会出现两次弹出窗口,提示你使用 Microsoft Entra 凭据登录到 Azure 和 Microsoft Entra ID。

创建报表可能需要几分钟,具体取决于环境中 Azure 订阅和资源的数量。

如果密钥保管库中的凭据不匹配,系统可能会提示你登录到 Azure SQL Server 实例。 你可以提供凭据,也可以选择“Enter”跳过特定的服务器。

在此进程完成后,查看输出报表以审阅更改的内容。

详细信息

脚本支持哪些数据源?

脚本目前支持以下数据源:

  • Azure Blob 存储 (BlobStorage)
  • Azure Data Lake Storage Gen2 (ADLSGen2)
  • Azure Data Lake Storage Gen1 (ADLSGen1)
  • Azure SQL 数据库 (AzureSQLDB)
  • Azure SQL 托管实例 (AzureSQLMI)
  • Azure Synapse (Synapse) 专用池

运行脚本时,可以选择所有这些数据源或任一数据源作为输入参数。

脚本中包含哪些配置?

此脚本可帮助你自动完成以下任务:

Azure Blob 存储 (BlobStorage)

  • RBAC。 将 Azure RBAC“读取者”角色分配给所选范围内的 Microsoft Purview MSI。 验证分配。
  • RBAC。 将 Azure RBAC“存储 Blob 数据读取者”角色分配给所选范围内每个订阅中的 Microsoft Purview MSI。 验证分配。
  • 联网。 报告是否为存储创建了专用终结点,并且为 Blob 存储启用专用终结点。
  • 服务终结点。 如果专用终结点已关闭,请检查服务终结点是否打开,并且启用“允许受信任的 Microsoft 服务访问此存储帐户”。

Azure Data Lake Storage Gen2 (ADLSGen2)

  • RBAC。 将 Azure RBAC“读取者”角色分配给所选范围内的 Microsoft Purview MSI。 验证分配。
  • RBAC。 将 Azure RBAC“存储 Blob 数据读取者”角色分配给所选范围内每个订阅中的 Microsoft Purview MSI。 验证分配。
  • 联网。 报告是否为存储创建了专用终结点,并且为 Blob 存储启用专用终结点。
  • 服务终结点。 如果专用终结点已关闭,请检查服务终结点是否打开,并且启用“允许受信任的 Microsoft 服务访问此存储帐户”。

Azure Data Lake Storage Gen1 (ADLSGen1)

  • 联网。 验证服务终结点是否打开,并且启用 Data Lake Storage 上的“允许所有 Azure 服务访问此 Data Lake Storage Gen1 帐户”。
  • 权限。 分配 Microsoft Purview MSI 的读取/执行访问权限。 验证该访问权限。

Azure SQL 数据库 (AzureSQLDB)

  • SQL Server 实例:

    • Network. 报告是否启用了公共终结点或专用终结点。
    • 防火墙。 如果专用终结点已关闭,请验证防火墙规则并启用“允许 Azure 服务和资源访问此服务器”。
    • Microsoft Entra 管理。 为 Azure SQL 数据库启用 Microsoft Entra 身份验证。
  • SQL 数据库:

    • SQL 角色。 将“db_datareader”角色分配给 Microsoft Purview MSI。

Azure SQL 托管实例 (AzureSQLMI)

  • SQL 托管实例服务器:

    • Network. 验证公共终结点或专用终结点是否打开。 报告公共终结点是否关闭。

    • ProxyOverride。 验证 Azure SQL 托管实例已配置为“代理”或“重定向”。

    • 联网。 更新 NSG 规则,以允许 AzureCloud 通过规定的端口入站访问 SQL Server 实例:

      • 重定向:1433 和 11000-11999

      • 代理:3342

      验证此访问权限。

    • Microsoft Entra 管理。 为 Azure SQL 托管实例启用 Microsoft Entra 身份验证。

  • SQL 数据库:

    • SQL 角色。 将“db_datareader”角色分配给 Microsoft Purview MSI。

Azure Synapse (Synapse) 专用池

  • RBAC。 将 Azure RBAC“读取者”角色分配给所选范围内的 Microsoft Purview MSI。 验证分配。

  • RBAC。 将 Azure RBAC“存储 Blob 数据读取者”角色分配给所选范围内每个订阅中的 Microsoft Purview MSI。 验证分配。

  • SQL Server 实例(专用池):

    • Network. 报告公共终结点或专用终结点是否已打开。
    • 防火墙。 如果专用终结点已关闭,请验证防火墙规则并启用“允许 Azure 服务和资源访问此服务器”。
    • Microsoft Entra 管理。 为 Azure SQL 数据库启用 Microsoft Entra 身份验证。
  • SQL 数据库:

    • SQL 角色。 将“db_datareader”角色分配给 Microsoft Purview MSI。

后续步骤

在本教程中,你了解了如何执行以下操作:

  • 如何确定所需的访问权限,并为 Microsoft Purview Azure 跨 Azure 数据源设置所需的身份验证和网络规则。

转到下一教程,了解如何在 Microsoft Purview 中注册和扫描多个源