使用虚拟网络保护 Azure 机器学习推理环境
本文介绍如何在 Azure 机器学习中使用虚拟网络保护推理环境(联机终结点)。 可以使用 VNet 保护两个推理选项:
Azure 机器学习托管联机终结点
提示
保护托管联机终结点时,Azure 建议使用 Azure 机器学习“托管虚拟网络”,以替代本文中的步骤。 使用托管虚拟网络,Azure 机器学习可处理工作区和托管计算的网络隔离作业。 还可以为工作区所需的资源(例如 Azure 存储帐户)添加专用终结点。 有关详细信息,请参阅工作区托管网络隔离。
Azure Kubernetes 服务
先决条件
阅读网络安全概述一文,了解常见的虚拟网络方案和总体虚拟网络体系结构。
现有虚拟网络和子网,用于保护 Azure 机器学习工作区。
若要将资源部署到虚拟网络或子网中,你的用户帐户必须在 Azure 基于角色的访问控制 (Azure RBAC) 中具有以下操作的权限:
- 虚拟网络资源上的“Microsoft.Network/*/read”。 对于 Azure 资源管理器 (ARM) 模板部署,不需要此权限。
- “Microsoft.Network/virtualNetworks/join/action”(在虚拟网络资源上)。
- "Microsoft.Network/virtualNetworks/subnets/join/action"(在子网资源上)。
若要详细了解如何将 Azure RBAC 与网络配合使用,请参阅网络内置角色
- 如果使用 Azure Kubernetes 服务 (AKS),则必须按照保护 Azure Kubernetes 服务推理环境一文中所述保护一个现有的 AKS 群集。
保护托管联机终结点
若要了解如何保护托管联机终结点,请参阅对托管联机终结点使用网络隔离一文。
保护 Azure Kubernetes 服务联机终结点
若要使用 Azure Kubernetes 服务群集以进行安全推理,请使用以下步骤:
创建或配置安全的 Kubernetes 推理环境。
部署 Azure 机器学习扩展。
可以使用 CLI v2、Python SDK v2 和 Studio UI 执行具有 Kubernetes 联机终结点的模型部署。
- CLI v2 - https://github.com/Azure/azureml-examples/tree/main/cli/endpoints/online/kubernetes
- Python SDK V2 - https://github.com/Azure/azureml-examples/tree/main/sdk/python/endpoints/online/kubernetes
- 工作室 UI - 通过工作室执行托管联机终结点部署中的步骤。 输入终结点名称后,选择“Kubernetes”而非“托管”作为计算类型。
限制来自虚拟网络的出站连接
如果你不想要使用默认的出站规则,同时想要限制虚拟网络的出站访问,则必须允许访问 Azure 容器注册表。 例如,确保网络安全组 (NSG) 包含允许访问“AzureContainerRegistry.RegionName”服务标记的规则,其中的 {RegionName} 是 Azure 区域的名称。
后续步骤
本文是介绍如何保护 Azure 机器学习工作流系列文章的一部分。 请参阅本系列中的其他文章: