教程:为大规模Microsoft Purview MSI 配置对数据源的访问
若要扫描数据源,Microsoft Purview 需要访问它们。 本教程适用于 Azure 订阅所有者和 Microsoft Purview 数据源管理员。 它将帮助你确定所需的访问权限,并为跨 Azure 数据源的 Microsoft Purview 设置所需的身份验证和网络规则。
在本教程系列的第 2 部分中,你将:
- 找到数据源并准备数据源订阅列表。
- 运行脚本来配置任何缺少的基于角色的访问控制, (Azure 中跨数据源) 或所需的网络配置 RBAC。
- 查看输出报告。
先决条件
- 数据源所在的 Azure 订阅。 如果没有 Azure 订阅,请在开始之前 创建一个免费帐户 。
- Microsoft Purview 帐户。
- 每个订阅中的 Azure 密钥保管库资源,其中包含 Azure SQL Database、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 计算机运行脚本:
Microsoft Purview MSI 配置脚本下载 到所选位置。
在计算机上,在 Windows 任务栏上的搜索框中输入 PowerShell 。 在搜索列表中,选择并按住 (或右键单击) Windows PowerShell然后选择“以管理员身份运行”。
在 PowerShell 窗口中,输入以下命令。 (将 替换为
<path-to-script>
提取的脚本文件的文件夹路径。)dir -Path <path-to-script> | Unblock-File
输入以下命令以安装 Azure cmdlet:
Install-Module -Name Az -AllowClobber -Scope CurrentUser
如果看到提示 NuGet 提供程序需要继续,请输入 Y,然后选择 Enter。
如果看到“不受信任的存储库”提示,请输入 A,然后选择 Enter。
重复上述步骤以安装
Az.Synapse
和AzureAD
模块。
PowerShell 最多可能需要一分钟才能安装所需的模块。
收集运行脚本所需的其他数据
在运行 PowerShell 脚本以验证数据源订阅的就绪情况之前,请获取要在脚本中使用的以下参数的值:
AzureDataType
:选择以下任一选项作为数据源类型,以检查订阅中数据类型的就绪情况:BlobStorage
AzureSQLMI
AzureSQLDB
ADLSGen2
ADLSGen1
Synapse
All
PurviewAccount
:现有的 Microsoft Purview 帐户资源名称。PurviewSub
:部署 Microsoft Purview 帐户的订阅 ID。
验证权限
确保用户具有以下角色和权限:
至少需要以下权限才能在 Azure 环境中运行脚本:
Role | 范围 | 为什么需要它? |
---|---|---|
全局读取器 | Microsoft Entra租户 | 读取Azure SQL 管理员用户组成员身份和Microsoft Purview MSI |
应用程序管理员 | Microsoft Entra租户 | 将目录读取者角色分配给Azure SQL托管实例 |
参与者 | 创建 Microsoft Purview 帐户的订阅或资源组 | 读取 Microsoft Purview 帐户资源并创建密钥保管库资源和机密 |
所有者或用户访问管理员 | Azure 数据源所在的管理组或订阅 | 分配 RBAC |
参与者 | Azure 数据源所在的管理组或订阅 | 设置网络配置 |
SQL 管理员 (Microsoft Entra 身份验证) | Azure SQL服务器实例或Azure SQL托管实例 | 将 db_datareader 角色分配给 Microsoft Purview |
访问 Azure 密钥保管库 | 访问获取/列出Azure SQL数据库、Azure SQL 托管实例或Azure Synapse身份验证的机密密钥保管库 |
运行客户端就绪情况脚本
通过完成以下步骤运行脚本:
使用以下命令转到脚本的文件夹。 将 替换为
<path-to-script>
提取的文件的文件夹路径。cd <path-to-script>
运行以下命令,为本地计算机设置执行策略。 当系统提示更改执行策略时,输入 A作为“是”到“全部 ”。
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
使用以下参数运行脚本。
DataType
替换 、PurviewName
和SubscriptionID
占位符。.\purview-msi-configuration.ps1 -AzureDataType <DataType> -PurviewAccount <PurviewName> -PurviewSub <SubscriptionID>
运行命令时,可能会显示两次弹出窗口,提示你登录 Azure 并使用Microsoft Entra凭据Microsoft Entra ID。
创建报表可能需要几分钟时间,具体取决于环境中的 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 服务和资源访问此服务器”。
- Microsoft Entra管理。 为 Azure SQL 数据库启用Microsoft Entra身份验证。
SQL 数据库:
- SQL 角色。 将 db_datareader 角色分配给 Microsoft Purview MSI。
Azure SQL 托管实例 (AzureSQLMI)
SQL 托管实例服务器:
网络。 验证公共终结点或专用终结点是否已打开。 报告公共终结点是否处于关闭状态。
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实例 (专用池) :
- 网络。 报告是打开公共终结点还是专用终结点。
- 防火墙。 如果专用终结点处于关闭状态,请验证防火墙规则并启用 “允许 Azure 服务和资源访问此服务器”。
- Microsoft Entra管理。 为 Azure SQL 数据库启用Microsoft Entra身份验证。
SQL 数据库:
- SQL 角色。 将 db_datareader 角色分配给 Microsoft Purview MSI。
后续步骤
本教程介绍了如何:
- 确定所需的访问权限,并为跨 Azure 数据源Microsoft Purview 设置所需的身份验证和网络规则。
转到下一教程,了解如何 在 Microsoft Purview 中注册和扫描多个源。