教程:大规模配置对 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 计算机上运行脚本:
在计算机上,在 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 环境中运行脚本:
角色 | 范围 | 必要性 |
---|---|---|
全局读取者 | 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 身份验证的获取/罗列密钥保管库机密 |
运行客户端就绪脚本
通过完成以下步骤来运行该脚本:
使用以下命令前往该脚本的文件夹。 将
<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>
运行该命令时,可能会出现两次弹出窗口,提示你使用 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 中注册和扫描多个源。