你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用虚拟网络保护 Azure 机器学习工作区资源(VNet)

适用范围:Azure CLI ml 扩展 v2(最新版)Python SDK azure-ai-ml v2(最新版)

适用于:Azure CLI ml 扩展 v1Python SDK azureml v1

重要说明

本文提供有关使用 Azure 机器学习 SDK v1 的信息。 SDK v1 自 2025 年 3 月 31 日起弃用。 对它的支持将于 2026 年 6 月 30 日结束。 可以在该日期之前安装和使用 SDK v1。 使用 SDK v1 的现有工作流将在支持结束日期后继续运行。 但是,当产品发生体系结构更改时,它们可能会面临安全风险或中断性变更。

建议在 2026 年 6 月 30 日之前过渡到 SDK v2。 有关 SDK v2 的详细信息,请参阅 什么是 Azure 机器学习 CLI 和 Python SDK v2? 以及 SDK v2 参考

重要说明

本文中的一些 Azure CLI 命令使用适用于 Azure 机器学习的 azure-cli-ml 或 v1 扩展。 对 CLI v1 的支持于 2025 年 9 月 30 日结束。 Microsoft将不再为此服务提供技术支持或更新。 使用 CLI v1 的现有工作流将继续在支持终止日期后运行。 但是,当产品发生体系结构更改时,它们可能会面临安全风险或中断性变更。

建议尽快过渡到 mlv2 扩展。 有关 v2 扩展的详细信息,请参阅 Azure 机器学习 CLI 扩展和 Python SDK v2

提示

可以使用 Azure 机器学习托管虚拟网络,而不是执行本文中的步骤。 使用托管虚拟网络,Azure 机器学习可处理工作区和托管计算的网络隔离作业。 还可以为工作区所需的资源(例如 Azure 存储帐户)添加专用终结点。 有关详细信息,请参阅工作区托管网络隔离

了解如何使用 Azure 虚拟网络(VNet)保护 Azure 机器学习工作区资源和计算环境。 本文使用一个示例方案来说明如何配置完整的虚拟网络。

本文是介绍如何保护 Azure 机器学习工作流系列文章的一部分。 请参阅本系列中的其他文章:

有关创建安全工作区的教程,请参阅 教程:创建安全工作区Bicep 模板Terraform 模板

Prerequisites

本文假定你熟悉以下文章:

示例方案

本部分介绍如何设置通用网络方案,以保护 Azure 机器学习与专用 IP 地址的通信。

下表比较了服务如何使用和不使用虚拟网络(VNet)访问 Azure 机器学习网络的不同部分:

场景 工作区 关联的资源 训练计算环境 推理计算环境
无虚拟网络 公共 IP 公共 IP 公共 IP 公共 IP
公共工作区,虚拟网络中的所有其他资源 公共 IP 公共 IP(服务终结点)
- 或 -
专用 IP(专用终结点)
公共 IP 专用 IP
确保虚拟网络中的资源安全 专用 IP(专用终结点) 公共 IP(服务终结点)
- 或 -
专用 IP(专用终结点)
专用 IP 专用 IP
  • 工作区 - 为你的工作区创建专用终结点。 专用终结点通过多个专用 IP 地址将工作区连接到 VNet。
    • 公共访问 - 可以选择为受保护的工作区启用公共访问。
  • 关联资源 - 使用服务终结点或专用终结点连接到工作区资源,例如 Azure 存储和 Azure Key Vault。 对于 Azure 容器服务,请使用专用终结点。
    • 服务终结点:为 Azure 服务提供虚拟网络的标识。 在虚拟网络中启用服务终结点后,可以添加虚拟网络规则,以在虚拟网络中保护 Azure 服务资源。 服务终结点使用公共 IP。
    • 专用终结点:是网络接口,可安全地连接到由 Azure 专用链接提供支持的服务。 专用终结点使用 VNet 中的专用 IP 地址将服务有效接入 VNet 中。
  • 训练计算访问 - 使用公共或专用 IP 地址访问训练计算目标,如 Azure 机器学习计算实例和 Azure 机器学习计算群集。
  • 推理计算访问 - 使用专用 IP 地址访问 Azure Kubernetes 服务 (AKS) 计算群集。

后续部分介绍如何保护前述网络方案。 若要确保网络安全,必须:

  1. 保护工作区和关联的资源
  2. 保护训练环境
  3. 保护推理环境
  4. 可选:启用工作室功能
  5. 配置防火墙设置
  6. 配置 DNS 名称解析

公共工作区和受保护的资源

重要说明

虽然 Azure 机器学习支持此配置,但Microsoft不建议这样做。 虚拟网络后面的 Azure 存储帐户中的数据可以在公共工作区中公开。 在生产环境中使用该配置之前,请与安全团队验证此配置。

若要通过公共互联网访问工作区,同时确保虚拟网络中所有关联资源的安全,请执行以下步骤:

  1. 创建 Azure 虚拟网络。 此网络可保护工作区使用的资源。

  2. 使用以下选项之一创建可公开访问的工作区

    OR

  3. 使用服务终结点或专用终结点将以下服务添加到虚拟网络。 还要允许受信任的 Microsoft 服务访问以下服务:

  4. 在工作区的 Azure 存储帐户的属性中,将客户端 IP 地址添加到防火墙设置中的允许列表。 有关详细信息,请参阅配置防火墙和虚拟网络

保护工作区和关联的资源

使用以下步骤确保工作区和关联的资源安全。 这些步骤可使服务在虚拟网络中进行通信。

  1. 创建 Azure 虚拟网络。 此网络保护工作区和其他资源。 然后创建启用了专用链接的工作区,以启用 VNet 与工作区之间的通信。

  2. 使用服务终结点或专用终结点将以下服务添加到虚拟网络。 还要允许受信任的 Microsoft 服务访问以下服务:

    服务 终结点信息 允许受信任的信息
    Azure Key Vault 专用终结点
    服务终结点
    允许受信任的 Microsoft 服务绕过此防火墙
    Azure 存储帐户 服务和专用终结点
    专用终结点
    从 Azure 资源实例授予访问权限

    授予对受信任的 Azure 服务的访问权限
    Azure 容器注册表 专用终结点 允许受信任的服务
  1. 创建 Azure 虚拟网络。 此虚拟网络保护工作区和其他资源。 然后创建启用了专用链接的工作区,以启用 VNet 与工作区之间的通信。

  2. 使用服务终结点或专用终结点将以下服务添加到虚拟网络。 还要允许受信任的 Microsoft 服务访问以下服务:

    服务 终结点信息 允许受信任的信息
    Azure Key Vault 专用终结点
    服务终结点
    允许受信任的 Microsoft 服务绕过此防火墙
    Azure 存储帐户 服务和专用终结点
    专用终结点
    从 Azure 资源实例授予访问权限

    授予对受信任的 Azure 服务的访问权限
    Azure 容器注册表 专用终结点 允许受信任的服务

关系图显示了工作区和关联资源如何在 VNet 中进行通信。

有关如何完成这些步骤的详细说明,请参阅确保 Azure 机器学习工作区安全

有关如何完成这些步骤的详细说明,请参阅确保 Azure 机器学习工作区安全

限制

保护虚拟网络中的工作区和关联的资源具有以下限制:

  • 工作区和默认存储帐户必须位于同一虚拟网络中。 但是,它们可以位于同一虚拟网络中的不同子网中。 例如,工作区可以位于一个子网,而存储帐户可以位于另一个子网。

    建议工作区的 Azure Key Vault 和 Azure 容器注册表也位于同一虚拟网络中。 但是,这两个资源也可以位于 对等互连 的虚拟网络中。

保护训练环境

此部分介绍如何保护 Azure 机器学习中的训练环境。 你还将了解 Azure 机器学习如何完成训练作业来了解网络配置协同工作的方法。

若要保护训练环境,请执行以下步骤:

  1. 在虚拟网络中创建 Azure 机器学习计算实例和计算机群集。 训练作业在这些计算上运行。

  2. 如果计算群集或计算实例使用了公共 IP 地址,则必须允许入站通信,以便管理服务可以将作业提交到你的计算资源。

    提示

    可以使用或不使用公共 IP 地址创建计算群集和计算实例。 如果使用公共 IP 地址创建它们,则获取具有公共 IP 的负载均衡器,以接受来自 Azure 批处理服务和 Azure 机器学习服务的入站访问。 如果使用防火墙,则需要配置用户定义的路由 (UDR)。 如果在不使用公共 IP 的情况下创建它们,则会收到专用链接服务,以接受来自 Azure 批处理服务和没有公共 IP 的 Azure 机器学习服务的入站访问。

  1. 在虚拟网络中创建 Azure 机器学习计算实例和计算机群集。 训练作业在这些计算上运行。

  2. 如果计算群集或计算实例使用了公共 IP 地址,则必须允许入站通信,以便管理服务可以将作业提交到你的计算资源。

    提示

    可以使用或不使用公共 IP 地址创建计算群集和计算实例。 如果使用公共 IP 地址创建它们,则获取具有公共 IP 的负载均衡器,以接受来自 Azure 批处理服务和 Azure 机器学习服务的入站访问。 如果使用防火墙,则需要配置用户定义的路由 (UDR)。 如果在不使用公共 IP 的情况下创建它们,则会收到专用链接服务,以接受来自 Azure 批处理服务和没有公共 IP 的 Azure 机器学习服务的入站访问。

关系图显示了如何保护托管计算群集和实例的安全。

有关如何完成这些步骤的详细说明,请参阅确保训练环境安全

有关如何完成这些步骤的详细说明,请参阅确保训练环境安全

训练作业提交示例

本部分介绍 Azure 机器学习如何安全地在服务之间进行通信,以提交训练作业。 此示例展示所有配置如何协同工作以实现通信安全。

  1. 客户端将训练脚本和培训数据上传到使用服务或专用终结点保护的存储帐户。

  2. 客户端通过专用终结点将训练作业提交到 Azure 机器学习工作区。

  3. Azure Batch 服务从工作区接收作业。 然后,它通过计算资源的公共负载均衡器将训练作业提交到计算环境。

  4. 计算资源接收作业并开始训练。 计算资源使用密钥保管库中存储的信息访问存储帐户以下载训练文件和上传输出。

关系图显示了安全的训练作业提交工作流。

限制

  • Azure 计算实例和 Azure 计算群集必须与工作区位于同一虚拟网络、区域和订阅中。 如果关联的资源位于与工作区不同的区域中,则可能会遇到额外的延迟。

保护推理环境

可以为托管联机终结点启用网络隔离以保护以下网络流量:

  • 入站评分请求。
  • 与工作区、Azure 容器注册表和 Azure Blob 存储的出站通信。

有关详细信息,请参阅为托管联机终结点启用网络隔离

在本部分中,你将了解在使用适用于 ML v1 或 Azure 机器学习 Python SDK v1 的 Azure CLI 扩展时可用于保护推理环境的选项。 执行 v1 部署时,使用 Azure Kubernetes 服务 (AKS) 群集进行大规模生产部署。

虚拟网络中的 AKS 群集有两个选项:

  • 将默认 AKS 群集部署或附加到 VNet。
  • 将专用 AKS 群集附加到 VNet。

默认 AKS 群集:具有一个带公共 IP 的控制平面。 可以在部署过程中将默认 AKS 群集添加到 VNet,也可以在创建群集后附加群集。

专用 AKS 群集 具有控制平面,只能通过专用 IP 进行访问。 创建群集后,必须附加专用 AKS 群集。

有关如何添加默认群集和专用群集的详细说明,请参阅确保推理环境安全

无论使用默认 AKS 群集还是专用 AKS 群集,如果 AKS 群集位于 VNET 后面,则工作区及其关联资源(存储、密钥保管库和 ACR)必须具有与 AKS 群集相同的 VNET 中的专用终结点或服务终结点。

以下网络示意图显示了一个受保护的 Azure 机器学习工作区,其中包含附加到虚拟网络的专用 AKS 群集。

关系图显示了附加的专用 AKS 群集。

可选:启用公共访问

可以使用专用终结点保护虚拟网络后面的工作区,但仍允许通过公共 Internet 进行访问。 初始配置与确保工作区和关联资源安全的方式相同。

使用专用终结点保护工作区后,使用以下步骤使客户端能够使用 SDK 或 Azure 机器学习工作室远程开发:

  1. 启用对工作区的公共访问
  2. 配置 Azure 存储防火墙,以允许与通过公共 Internet 连接的客户端的 IP 地址通信。
  1. 启用对工作区的公共访问
  2. 配置 Azure 存储防火墙,以允许与通过公共 Internet 连接的客户端的 IP 地址通信。

可选:启用工作室功能

如果存储位于虚拟网络中,则必须使用额外的配置步骤在工作室中启用完整功能。 默认情况下,禁用以下功能:

  • 预览工作室中的数据。
  • 在设计器中将数据可视化。
  • 在设计器中部署模型。
  • 提交 AutoML 试验。
  • 启动标记项目。

若要启用完整的工作室功能,请参阅在虚拟网络中使用 Azure 机器学习工作室

限制

ML 辅助数据标记不支持虚拟网络背后的默认存储帐户。 相反,对于 ML 辅助数据标记,请使用存储帐户而不是默认帐户。

提示

只要不是默认的存储帐户,你就可以在虚拟网络背后保护数据标签使用的帐户。

配置防火墙设置

配置防火墙以控制 Azure 机器学习工作区资源和公共 Internet 之间的流量。 尽管我们建议使用 Azure 防火墙,但你也可以使用其他防火墙产品。

有关防火墙设置的详细信息,请参阅使用防火墙后面的工作区

自定义 DNS

如果需要为虚拟网络使用自定义 DNS 解决方案,则必须为工作区添加主机记录。

有关所需域名和 IP 地址的详细信息,请参阅如何将工作区与自定义 DNS 服务器配合使用

Microsoft Sentinel

Microsoft Sentinel 是一种可以与 Azure 机器学习集成的安全解决方案。 例如,它可以与通过 Azure 机器学习提供的 Jupyter 笔记本集成。 有关详细信息,请参阅使用 Jupyter 笔记本搜寻安全威胁

公共访问权限

如果你同意使用公共终结点,则 Microsoft Sentinel 可以自动为你创建工作区。 在此配置中,安全运营中心 (SOC) 分析师和系统管理员通过 Sentinel 连接到工作区中的笔记本。

有关此过程的信息,请参阅 从 Microsoft Sentinel 创建 Azure 机器学习工作区

关系图显示了 Microsoft Sentinel 公共连接。

专用终结点

若要保护虚拟网络中的工作区和关联的资源,必须先创建 Azure 机器学习工作区。 还必须在工作区所在的同一虚拟网络中创建虚拟机跳转盒,并启用与工作区的 Azure Bastion 连接。 与公共配置类似,SOC 分析师和管理员可以使用 Microsoft Sentinel 进行连接,但必须使用 Azure Bastion 连接到 VM 来执行某些作。

有关此配置的详细信息,请参阅 从 Microsoft Sentinel 创建 Azure 机器学习工作区

关系图显示了通过 VNet 建立的 Microsoft Sentinel 连接。

本文是介绍如何保护 Azure 机器学习工作流系列文章的一部分。 请参阅本系列中的其他文章: