提示流中的网络隔离
可以使用专用网络保护提示流。 本文介绍在受专用网络保护的环境中使用提示流的要求。
涉及的服务
使用提示流开发 LLM 应用程序时,需要一个安全的环境。 可以通过网络设置使以下服务成为专用服务。
- 工作区:可将 Azure 机器学习工作区设置为专用工作区,并限制其入站和出站。
- 计算资源:还可以限制工作区中计算资源的入站和出站规则。
- 存储帐户:可以将存储帐户的可访问性限制为特定虚拟网络。
- 容器注册表:还需要使用虚拟网络保护容器注册表。
- 终结点:需要限制 Azure 服务或 IP 地址访问你的终结点。
- 对于相关 Azure 认知服务(例如 Azure OpenAI、Azure 内容安全和 Azure AI 搜索),可以使用网络配置将它们设为专用,然后使用专用终结点让 Azure 机器学习服务与其通信。
- 其他非 Azure 资源,例如 SerpAPI 等。如果有严格的出站规则,则需要添加 FQDN 规则才能访问它们。
不同网络设置中的选项
在 Azure 机器学习中,我们有两个选项来保护网络隔离:自备网络或使用工作区托管的虚拟网络。 详细了解如何保护工作区资源。
下表展示了不同网络设置中的提示流选项。
流入量 | 流出量 | 创作中的计算类型 | 推理中的计算类型 | 工作区的网络选项 |
---|---|---|---|---|
公用 | 公用 | 无服务器(推荐)、计算实例 | 托管联机终结点(推荐)、K8s 联机终结点 | 托管(推荐)/自备 |
专用 | 公用 | 无服务器(推荐)、计算实例 | 托管联机终结点(推荐)、K8s 联机终结点 | 托管(推荐)/自备 |
公用 | 专用 | 无服务器(推荐)、计算实例 | 托管联机终结点 | 托管 |
Private | Private | 无服务器(推荐)、计算实例 | 托管联机终结点 | 托管 |
- 在专用 VNet 方案中,我们建议使用已启用工作区的托管虚拟网络。 这是保护工作区和相关资源的最简单方法。
- 你还可以有一个工作区用于使用虚拟网络进行提示流创作,另一个工作区用于使用具有工作区托管虚拟网络的托管联机终结点进行提示流部署。
- 我们不支持在单个工作区中混合使用托管虚拟网络和自备虚拟网络。 由于托管联机终结点仅支持托管虚拟网络,因此无法在启用了自备虚拟网络的工作区中将提示流部署到托管联机终结点。
使用工作区托管虚拟网络保护提示流
建议使用工作区托管虚拟网络在提示流中支持网络隔离。 它提供轻松的配置来保护工作区。 在工作区级别启用托管虚拟网络后,与同一虚拟网络中的工作区相关的资源将在工作区级别使用相同的网络设置。 还可以将工作区配置为使用专用终结点来访问其他 Azure 资源,例如 Azure OpenAI、Azure 内容安全和 Azure AI 搜索。
按照工作区托管网络隔离来启用工作区托管虚拟网络。
重要
托管虚拟网络的创建将推迟到创建计算资源或手动启动预配后。 可以使用以下命令手动触发网络预配。
az ml workspace provision-network --subscription <sub_id> -g <resource_group_name> -n <workspace_name>
将工作区 MSI 作为
Storage File Data Privileged Contributor
添加到与工作区关联的存储帐户。2.1 转到 Azure 门户,找到工作区。
2.2 查找与工作区关联的存储帐户。
2.3 跳转到存储帐户的“角色分配”页。
2.4 查找存储文件数据特权参与者角色。
2.5 将存储文件数据特权参与者角色分配给工作区托管标识。
注意
此操作可能需要几分钟才能生效。
如果要与专用 Azure 认知服务通信,需要将相关用户定义的出站规则添加到相关资源。 Azure 机器学习工作区使用自动批准在相关资源中创建专用终结点。 如果状态停滞在待处理状态,请转到相关资源手动批准专用终结点。
如果将出站流量限制为仅允许特定目标,则必须添加相应的用户定义的出站规则,以允许相关的 FQDN。
在启用托管 VNet 的工作区中,只能将提示流部署到托管联机终结点。 可以遵循使用网络隔离保护托管的联机终结点中的说明来保护托管联机终结点。
安全提示流使用你自己的虚拟网络
若要将 Azure 机器学习相关资源设置为专用资源,请参阅保护工作区资源。
如果设有严格的出站规则,请确保已打开所需的公共 Internet 访问。
将工作区 MSI 作为
Storage File Data Privileged Contributor
添加到与工作区关联的存储帐户。 请按照保护具有工作区托管虚拟网络的提示流中的第 2 步操作。如果在流创作中使用无服务器计算类型,则需要在工作区级别设置自定义虚拟网络。 详细了解如何使用虚拟网络保护 Azure 机器学习训练环境
serverless_compute: custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name> no_public_ip: false # Set to true if you don't want to assign public IP to the compute
同时,可以关注专用 Azure 认知服务,将其设为专用服务。
如果要在由自己的虚拟网络保护的工作区中部署提示流,可以将其部署到同一虚拟网络中的 AKS 群集。 可以按照保护 Azure Kubernetes 服务推理环境来保护 AKS 群集。 详细了解如何通过代码将提示流部署到 ASK 群集。
可以创建同一虚拟网络的专用终结点,也可以利用虚拟网络对等互连使它们相互通信。
已知的限制
- AI 工作室不支持自带虚拟网络,它仅支持工作区托管虚拟网络。
- 具有所选出口的托管联机终结点仅支持具有托管虚拟网络的工作区。 如果希望使用自己的虚拟网络,则可能需要两个工作区,一个用于使用虚拟网络创作提示流,另一个用于使用带工作区托管虚拟网络的托管联机终结点部署提示流。