教程:大规模检查数据源就绪情况

若要扫描数据源,Microsoft Purview 需要访问它们。 它使用凭据获取此访问权限。 凭据是 Purview Microsoft可用于对已注册数据源进行身份验证的身份验证信息。 有几种方法可以设置 Microsoft Purview 的凭据,包括:

  • 分配给 Microsoft Purview 帐户的托管标识。
  • 存储在 Azure 密钥保管库 中的机密。
  • 服务主体。

本系列教程由两部分组成,我们将帮助你大规模地验证和配置所需的 Azure 角色分配以及跨 Azure 订阅的各种 Azure 数据源的网络访问。 然后,可以在 Microsoft Purview 中注册和扫描 Azure 数据源。

在部署 Microsoft Purview 帐户后,并在注册和扫描 Azure 数据源之前运行 Microsoft Purview 数据源就绪情况清单脚本。

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

  • 找到数据源并准备数据源订阅列表。
  • 运行就绪情况清单脚本,查找 Azure 中数据源中缺少的基于角色的访问控制 (RBAC) 或网络配置。
  • 在输出报告中,查看 Microsoft Purview 托管标识 (MSI) 所需的缺少的网络配置和角色分配。
  • 与数据 Azure 订阅所有者共享报表,以便他们可以采取建议的操作。

先决条件

注意

Microsoft Purview 数据源就绪情况清单仅适用于 Windows。 Microsoft Purview MSI 当前支持此就绪情况清单脚本。

为数据源准备 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 数据源就绪情况清单脚本下载 到所选位置。

  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。

验证权限

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

角色或权限 范围
全局读取器 Microsoft Entra租户
读者 Azure 数据源所在的 Azure 订阅
读者 创建 Microsoft Purview 帐户的订阅
SQL 管理员 (Microsoft Entra 身份验证) Azure Synapse专用池、Azure SQL数据库实例Azure SQL托管实例
访问 Azure 密钥保管库 访问获取/列出密钥保管库的机密或 Azure 密钥保管库机密用户

运行客户端就绪情况脚本

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

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

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

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

    .\purview-data-sources-readiness-checklist.ps1 -AzureDataType <DataType> -PurviewAccount <PurviewName> -PurviewSub <SubscriptionID>
    

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

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

该过程完成后,请查看输出报告,其中演示了 Azure 订阅或资源中检测到的缺失配置。 结果可以显示为“已通过”、“未通过”“感知”。 可以与组织中的相应订阅管理员共享结果,以便他们可以配置所需的设置。

更多信息

脚本支持哪些数据源?

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

  • 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。 检查Microsoft Purview MSI 是否在所选范围以下的每个订阅中分配了 存储 Blob 数据读取者 角色。
  • RBAC。 检查是否为Microsoft Purview MSI 分配了所选范围的 “读者” 角色。
  • 服务终结点。 检查服务终结点是否处于打开状态,并检查是否启用了“允许受信任的Microsoft服务访问此存储帐户”。
  • 网络:检查是否为存储创建了专用终结点并为 Blob 存储启用了专用终结点。

Azure Data Lake Storage Gen2 (ADLSGen2)

  • RBAC。 检查Microsoft Purview MSI 是否在所选范围以下的每个订阅中分配了 存储 Blob 数据读取者 角色。
  • RBAC。 检查是否为Microsoft Purview MSI 分配了所选范围的 “读者” 角色。
  • 服务终结点。 检查服务终结点是否处于打开状态,并检查是否启用了“允许受信任的Microsoft服务访问此存储帐户”。
  • 网络:检查是否为存储创建了专用终结点并为 Blob 存储启用了专用终结点。

Azure Data Lake Storage Gen1 (ADLSGen1)

  • 联网。 检查服务终结点是否已打开,并检查是否已启用“允许所有 Azure 服务访问此Data Lake Storage Gen1帐户”。
  • 权限。 检查 Microsoft Purview MSI 是否具有读取/执行权限。

Azure SQL 数据库 (AzureSQLDB)

  • SQL Server实例:

    • 网络。 检查是否启用了公共终结点或专用终结点。
    • 防火墙。 检查是否启用了 “允许 Azure 服务和资源访问此服务器 ”。
    • Microsoft Entra管理。 检查Azure SQL服务器是否具有Microsoft Entra身份验证。
    • Microsoft Entra管理。 Microsoft Entra管理员用户或组填充Azure SQL服务器。
  • SQL 数据库:

    • SQL 角色。 检查是否Microsoft Purview MSI 分配了 db_datareader 角色。

Azure SQL 托管实例 (AzureSQLMI)

  • SQL 托管实例服务器:

    • 网络。 检查是否启用了公共终结点或专用终结点。
    • ProxyOverride。 检查Azure SQL 托管实例是配置为代理还是重定向。
    • 联网。 检查 NSG 是否具有允许 AzureCloud 通过所需端口的入站规则:
      • 重定向:1433 和 11000-11999
      • 代理:3342
    • Microsoft Entra管理。 检查Azure SQL服务器是否具有Microsoft Entra身份验证。
    • Microsoft Entra管理。 Microsoft Entra管理员用户或组填充Azure SQL服务器。
  • SQL 数据库:

    • SQL 角色。 检查是否Microsoft Purview MSI 分配了 db_datareader 角色。

Azure Synapse (Synapse) 专用池

  • RBAC。 检查Microsoft Purview MSI 是否在所选范围以下的每个订阅中分配了 存储 Blob 数据读取者 角色。

  • RBAC。 检查是否为Microsoft Purview MSI 分配了所选范围的 “读者” 角色。

  • SQL Server实例 (专用池) :

    • 网络:检查是否启用了公共终结点或专用终结点。
    • 防火墙:检查是否启用了 “允许 Azure 服务和资源访问此服务器 ”。
    • Microsoft Entra管理:检查Azure SQL服务器是否具有Microsoft Entra身份验证。
    • Microsoft Entra管理:Microsoft Entra管理员用户或组填充Azure SQL服务器。
  • SQL 数据库:

    • SQL 角色。 检查是否Microsoft Purview MSI 分配了 db_datareader 角色。

后续步骤

本教程介绍了如何:

  • 运行 Microsoft Purview 就绪情况清单,以大规模检查 Azure 订阅是否缺少配置,然后再在 Microsoft Purview 中注册并扫描这些订阅。

转到下一教程,了解如何跨 Azure 数据源确定所需的访问权限,并为 Microsoft Purview 设置所需的身份验证和网络规则: