使用网络隔离(预览版)保护 RAG 工作流
可以通过使用 Azure 机器学习中的专用网络和两个网络管理选项来保护检索增强生成 (RAG) 流。 这些选项包括:托管虚拟网络(内部提供)或“自带”虚拟网络(适用于想要完全控制虚拟网络/子网、防火墙、网络安全组规则等的设置时)。
Azure 机器学习托管网络选项中提供了两个安全子选项:允许 Internet 出站和仅允许批准的出站,可以从中进行选择。
根据设置和方案,Azure 机器学习中的 RAG 工作流可能需要执行其他步骤才能实现网络隔离。
先决条件
- Azure 订阅。
- 访问 Azure OpenAI 服务。
- 安全的 Azure 机器学习工作区:使用工作区托管虚拟网络或“自带”虚拟网络设置。
- 已在 Azure 机器学习工作区中启用了提示流。 可以在“管理预览功能”面板中启用“使用提示流生成 AI 解决方案”以启用提示流。
使用 Azure 机器学习工作区托管 VNet
按照工作区管理的网络隔离来启用工作区管理的 VNet。
导航到 Azure 门户,然后选择左侧菜单的“设置”选项卡下的“网络”。
若要允许 RAG 工作流在矢量索引创建期间与专用 Azure 认知服务(例如 Azure OpenAI 或 Azure AI 搜索)进行通信,需要将相关用户出站规则定义为相关的资源。 选择网络设置顶部的“工作区托管的出站访问”。 然后选择“+添加用户定义的出站规则”。 输入规则名称。 然后使用“资源名称”文本框选择要将规则添加到的资源。
Azure 机器学习工作区使用自动批准在相关资源中创建专用终结点。 如果状态停滞在待处理状态,请转到相关资源手动批准专用终结点。
导航到与工作区关联的存储帐户的设置。 在左侧菜单中选择“访问控制(IAM)”。 选择“添加角色分配”。 添加对工作区托管标识的存储表数据参与者和存储 Blob 数据参与者访问权限。 这可以通过在搜索栏中输入存储表数据参与者和存储 Blob 数据参与者来完成。 需要完成此步骤和下一步两次。 一次用于添加 Blob 参与者访问权限,第二次用于添加表参与者访问权限。
确保已选择“托管标识”选项。 然后选择“选择成员”。 在“托管标识”下拉列表中选择“Azure 机器学习工作区”。 然后选择工作区的托管标识。
(可选)要添加传出 FQDN 规则,请在 Azure 门户中左侧菜单的“设置”选项卡下选择“网络”。 选择网络设置顶部的“工作区托管的出站访问”。 然后选择“+添加用户定义的出站规则”。 在“目标类型”下选择“FQDN 规则”。 在“FQDN 目标”中输入终结点 URL。 若要查找终结点 URL,请导航到 Azure 门户中已部署的终结点,选择所需的终结点,并从详细信息部分复制终结点 URL。
如果使用仅允许批准的出站托管 Vnet 工作区和 public
Azure OpenAI 资源,则需要为 Azure OpenAI 终结点添加传出 FQDN 规则。 这使得数据平面操作成为可能,这是在 RAG 中执行嵌入所需的。 如果没有此设置,则不允许访问 AOAI 资源(即使公共资源)。
(可选)为了预先上传数据文件或在存储帐户设为私有时使用 RAG 的本地文件夹上传,必须从 Vnet 后面的虚拟机访问工作区,并且子网必须在存储帐户的允许列表中。 为此,可以选择“存储帐户”,然后选择“网络设置”。 选择“对选定的虚拟网络和 IP 启用”,然后添加工作区子网。
请按照本教程了解如何从 Azure 虚拟机连接到私有存储。
使用 BYO 自定义 Vnet
配置 Azure 机器学习工作区时,选择“使用我自己的虚拟网络”。 在此方案中,用户需要正确配置相关资源的网络规则和专用终结点,因为工作区不会自动配置。
在矢量索引创建向导中,务必从计算选项下拉列表中选择“计算实例”或“计算集群”,因为无服务器计算不支持此方案。
常见问题故障排除
如果工作区遇到与网络相关的问题,导致计算无法创建或启动计算,请尝试在 Azure 门户工作区的“网络”选项卡中添加占位符 FQDN 规则,以启动托管网络更新。 然后,在 Azure 机器学习工作区中重新创建计算。
你可能会看到与
< Resource > is not registered with Microsoft.Network resource provider.
相关的错误消息,在这种情况下,应该确保 AOAI/ACS 资源已向 Microsoft 网络资源提供程序注册订阅。 为此,请导航到“订阅”,然后导航到与托管 Vnet 工作区相同的租户的资源提供程序。
注意
当托管网络首次配置专用终结点时,工作区中的首次无服务器作业预计需要额外排队 10-15 分钟。 对于计算实例和计算群集,此流程在计算创建过程中发生。