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

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

在本教程系列的第 2 部分中,你将:

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

先决条件

注意

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 包含 Azure Active Directory (Azure AD 的现有 Azure 密钥保管库机密的名称,) 用户名,该用户名可以使用 Azure AD 身份验证登录到Azure Synapse、Azure SQL数据库或Azure SQL 托管实例。 ContosoDevSQLAdmin
SecretNameSQLPassword 包含 Azure AD 用户密码的现有 Azure 密钥保管库机密的名称,该密码可以使用 Azure AD 身份验证登录到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 环境中运行脚本:

Role 范围 为什么需要它?
全局读取器 Azure AD 租户 读取Azure SQL 管理员用户组成员身份和 Microsoft Purview MSI
全局管理员 Azure AD 租户 目录读取者角色分配给Azure SQL托管实例
参与者 创建 Microsoft Purview 帐户的订阅或资源组 读取 Microsoft Purview 帐户资源并创建密钥保管库资源和机密
所有者或用户访问管理员 Azure 数据源所在的管理组或订阅 分配 RBAC
参与者 Azure 数据源所在的管理组或订阅 设置网络配置
SQL 管理员 (Azure AD 身份验证) Azure SQL服务器实例或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. 使用以下参数运行脚本。 DataType替换 、 PurviewNameSubscriptionID 占位符。

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

    运行命令时,可能会显示两次弹出窗口,提示你使用 Azure Active Directory 凭据登录到 Azure 和 Azure AD。

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

如果密钥保管库中的凭据不匹配,系统可能会提示你登录到 Azure SQL 服务器实例。 可以提供凭据或选择 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实例:

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

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

Azure SQL 托管实例 (AzureSQLMI)

  • SQL 托管实例服务器:

    • 网络。 验证公共终结点或专用终结点是否已打开。 报告公共终结点是否处于关闭状态。

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

    • 网络。 更新 NSG 规则以允许 AzureCloud 通过所需端口对SQL Server实例进行入站访问:

      • 重定向:1433 和 11000-11999

      • 代理:3342

      验证此访问权限。

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

  • 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实例 (专用池) :

    • 网络。 报告是打开公共终结点还是专用终结点。
    • 防火墙。 如果专用终结点处于关闭状态,请验证防火墙规则并启用 “允许 Azure 服务和资源访问此服务器”。
    • Azure AD 管理。 为 Azure SQL 数据库启用 Azure AD 身份验证。
  • SQL 数据库:

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

后续步骤

本教程介绍了如何:

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

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