使用虚拟网络保护 Azure 机器学习训练环境

适用于:Python SDK azure-ai-ml v2(当前版本)

提示

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

Azure 机器学习计算实例、无服务器计算和计算群集可用于在 Azure 虚拟网络中安全地训练模型。 规划环境时,可以使用或不使用公共 IP 地址配置计算实例/群集或无服务器计算。 两者之间的一般区别如下:

  • 无公共 IP:可降低成本,因为它不具有相同的网络资源要求。 通过删除来自 Internet 的入站流量的要求来提高安全性。 但是,若要启用对所需资源(Microsoft Entra ID、Azure 资源管理器等)的出站访问,还需要进行其他配置更改。
  • 公共 IP:默认有效,但由于额外的 Azure 网络资源,成本更高。 需要 Azure 机器学习服务经由公共互联网发起入站通信。

下表包含这些配置之间的差异:

配置 使用公共 IP 不使用公共 IP
入站流量 AzureMachineLearning 服务标记。
出站流量 默认情况下,可以不受限制地访问公共 Internet。
可以使用网络安全组或防火墙限制其访问的内容。
默认情况下,可以使用 Azure 提供的默认出站访问来访问公用网络。
如果你需要将出站流量路由到 Internet 上所需的资源,我们建议使用虚拟网络 NAT 网关或防火墙。
Azure 网络资源 公共 IP 地址、负载均衡器、网络接口

还可以使用 Azure Databricks 或 HDInsight 在虚拟网络中训练模型。

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

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

本文介绍如何在虚拟网络中保护以下训练计算资源:

  • Azure 机器学习计算群集
  • Azure 机器学习计算实例
  • Azure 机器学习无服务器计算
  • Azure Databricks
  • 虚拟机
  • HDInsight 群集

先决条件

  • 阅读网络安全概述一文,了解常见的虚拟网络方案和总体虚拟网络体系结构。

  • 与计算资源配合使用的现有虚拟网络和子网。 此虚拟网络必须与Azure 机器学习工作区位于同一订阅中。

    • 建议将工作区和训练作业使用的存储帐户放在计划用于计算实例、无服务器计算和群集的同一 Azure 区域中。 如果它们不在同一 Azure 区域中,可能会产生数据传输成本并增加网络延迟。
    • 确保在你的虚拟网络中允许与 *.instances.ml.azure.cn 进行 *.instances.ml.azure.cn 通信。 WebSocket 由 Jupyter 在计算实例上使用。
  • 虚拟网络中的现有子网。 此子网用于为无服务器计算创建计算实例、群集和节点。

    • 请确保该子网未委托给其他 Azure 服务。
    • 请确保该子网包含足够的可用 IP 地址。 每个计算实例只需要一个 IP 地址。 计算群集中的每个节点以及每个无服务器计算节点都需要一个 IP 地址。
  • 如果您有自己的 DNS 服务器,建议使用 DNS 转发来解析计算实例和集群的完全限定域名 (FQDN)。 有关详细信息,请参阅将自定义 DNS 与 Azure 机器学习配合使用

  • 若要将资源部署到虚拟网络或子网中,你的用户帐户必须在 Azure 基于角色的访问控制 (Azure RBAC) 中具有以下操作的权限:

    • 虚拟网络资源上的“Microsoft.Network/*/read”。 对于 Azure 资源管理器 (ARM) 模板部署,不需要此权限。
    • “Microsoft.Network/virtualNetworks/join/action”(在虚拟网络资源上)。
    • "Microsoft.Network/virtualNetworks/subnets/join/action"(在子网资源上)。

    若要详细了解如何将 Azure RBAC 与网络配合使用,请参阅网络内置角色

限制

  • Azure Lighthouse 不支持虚拟网络中的计算群集/实例和无服务器计算部署。

  • 在训练期间,必须打开端口 445,以便在计算实例与默认存储帐户之间进行专用网络通信。 例如,如果你的计算资源位于一个虚拟网络中,而存储帐户位于另一个虚拟网络中,请不要阻止通往存储帐户所在虚拟网络的 445 端口流量。

工作区中不同虚拟网络或区域中的计算群集

重要

不能在不同的区域或虚拟网络中创建 计算实例 ,而只能创建 计算群集

若要在与工作区虚拟网络不同的区域中的Azure 虚拟网络中创建计算群集,可以使用多种选项在两个虚拟网络之间启用通信。

重要

无论选择哪种方法,还必须为计算群集创建虚拟网络;Azure 机器学习不会为你创建它。

还必须允许默认存储帐户、Azure 容器注册表和Azure 密钥保管库访问计算群集的虚拟网络。 可通过多种方法来实现此目的。 例如,可以为计算群集的虚拟网络中的每个资源创建专用终结点,也可以使用虚拟网络对等互连来允许工作区虚拟网络访问计算群集虚拟网络。

场景:虚拟网络对等互连

  1. 将工作区配置为使用 Azure 虚拟网络。 有关详细信息,请参阅保护工作区资源

  2. 创建将用于计算群集的第二个 Azure 虚拟网络。 它可以位于与用于你的工作区的 Azure 区域不同的区域中。

  3. 配置两个虚拟网络之间的 虚拟网络对等互连

    提示

    等待虚拟网络对等互连状态变为“已连接”后,再继续。

  4. 修改 privatelink.api.azureml.ms DNS 区域,将链接添加到计算群集的虚拟网络。 使用专用终结点参与虚拟网络时,Azure 机器学习工作区创建此区域。

    1. 将新的虚拟网络链接添加到 DNS 区域。 可以通过多种方法执行此操作:

      • 在 Azure 门户中,导航到 DNS 区域,然后选择“虚拟网络链接”。 然后选择 “+ 添加 ”,然后选择为计算群集创建的虚拟网络。
      • 通过 Azure CLI 使用 az network private-dns link vnet create 命令。 有关详细信息,请参阅 az network private-dns link vnet create
      • 通过 Azure PowerShell 使用 New-AzPrivateDnsVirtualNetworkLink 命令。 有关详细信息,请参阅 New-AzPrivateDnsVirtualNetworkLink
  5. privatelink.notebooks.chinacloudapi.cn DNS 区域重复上一步和子步骤。

  6. 配置以下Azure资源,以允许从这两个虚拟网络进行访问。

    • 工作区的默认存储帐户。
    • 工作区的 Azure 容器注册表。
    • 工作区的 Azure 密钥保管库。

    提示

    可以通过多种方式配置这些服务以允许访问虚拟网络。 例如,可为这两个虚拟网络中的每个资源创建专用终结点。 或者,可以将资源配置为允许从这两个虚拟网络进行访问。

  7. 像使用虚拟网络时一样创建计算群集,但选择为计算群集创建的虚拟网络。 如果虚拟网络位于其他区域,请在创建计算群集时选择该区域。

    警告

    在设置区域时,如果它是你的工作区或数据存储所在区域以外的区域,则可能会出现网络延迟加重和数据传输成本增加的情况。 在创建群集以及在该群集上运行作业时,可能会存在这样的延迟和成本。

场景:专用终结点

  1. 将工作区配置为使用 Azure 虚拟网络。 有关详细信息,请参阅保护工作区资源

  2. 创建将用于计算群集的第二个 Azure 虚拟网络。 它可以位于与用于你的工作区的 Azure 区域不同的区域中。

  3. 在包含计算群集的虚拟网络中为工作区创建新的专用终结点。

    • 若要使用 Azure 门户添加新的专用终结点,请选择工作区,然后选择“网络”。 选择“专用终结点连接”、“+ 专用终结点”,然后使用字段创建新的专用终结点。

      • 选择“区域”时,请选择与虚拟网络相同的区域。
      • 选择“资源类型”时,请使用“Microsoft.MachineLearningServices/workspaces” 。
      • 将“资源”设置为工作区名称。
      • 虚拟网络子网 设置为为计算群集创建的虚拟网络和子网。

      最后,选择“创建”以创建专用终结点。

    • 要使用 Azure CLI 添加新的专用终结点,请使用 az network private-endpoint create。 有关使用此命令的示例,请参阅为 Azure 机器学习工作区配置专用终结点

  4. 像使用虚拟网络时一样创建计算群集,但选择为计算群集创建的虚拟网络。 如果虚拟网络位于其他区域,请在创建计算群集时选择该区域。

    警告

    在设置区域时,如果它是你的工作区或数据存储所在区域以外的区域,则可能会出现网络延迟加重和数据传输成本增加的情况。 在创建群集以及在该群集上运行作业时,可能会存在这样的延迟和成本。

无公共 IP 的计算实例/集群或无服务器计算

重要

此信息仅在使用 Azure 虚拟网络时有效。 如果使用的是托管虚拟网络,则无法在 Azure 虚拟网络中部署计算资源。 有关使用托管虚拟网络的信息,请参阅使用托管网络进行托管计算

以下配置是对先决条件部分所列配置的补充,并且特定于创建没有配置公共 IP 的计算实例/群集。 它们也适用于无服务器计算:

  • 必须为计算资源使用工作区专用终结点才能与虚拟网络中的Azure 机器学习服务通信。 有关详细信息,请参阅为 Azure 机器学习工作区配置专用终结点

  • 在虚拟网络中,允许 出站 流量流向以下服务标记或完全限定的域名(FQDN):

    服务标记 协议 端口 说明
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    与 Azure 机器学习服务通信。
    BatchNodeManagement.<region> 任何 443 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。 与 Azure Batch 通信。 计算实例和计算群集是使用 Azure Batch 服务实现的。
    Storage.<region> TCP 443 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。 此服务标记用于与 Azure Batch 使用的 Azure 存储帐户通信。

    重要

    Storage.<region> 的出站访问可能被用来将数据从您的工作区中外泄出去。 通过使用服务终结点策略,你可以缓解此漏洞的问题。 有关详细信息,请参阅 Azure 机器学习数据外泄防护一文。

    FQDN 协议 端口 说明
    <region>.tundra.ml.azure.cn UDP 5831 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。
    microsoftgraph.chinacloudapi.cn TCP 443 与 Microsoft 图形 API 通信。
    *.instances.ml.azure.cn TCP 443/8787/18881 与 Azure 机器学习通信。
    *.<region>.batch.chinacloudapi.cn 任何 443 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。 与 Azure Batch 通信。
    *.<region>.service.batch.chinacloudapi.cn 任何 443 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。 与 Azure Batch 通信。
    *.blob.core.chinacloudapi.cn TCP 443 与 Azure Blob 存储通信。
    *.queue.core.chinacloudapi.cn TCP 443 与 Azure 队列存储通信。
    *.table.core.chinacloudapi.cn TCP 443 与 Azure 表存储通信。
  • 默认情况下,配置为无公共 IP 的计算实例/群集不具有对 Internet 的出站访问。 如果你可以通过它访问 Internet,那是因为 Azure 默认出站访问已启用,并且你有一个允许出站流量访问 Internet 的 NSG。 但是,我们不建议使用默认出站访问。 如果需要对 Internet 的出站访问,则建议改用防火墙和出站规则或 NAT 网关和网络服务组来允许出站流量。

    有关 Azure 机器学习使用的出站流量的详细信息,请参阅以下文章:

    有关可与 Azure 防火墙配合使用的服务标记的详细信息,请参阅虚拟网络服务标记一文。

使用以下信息创建没有公共 IP 地址的计算实例或群集:

az ml compute create 命令中,替换以下值:

  • rg:将在其中创建计算的资源组。
  • ws:Azure 机器学习工作区名称。
  • yourvnet:Azure 虚拟网络。
  • yoursubnet:用于计算的子网。
  • AmlComputeComputeInstance:指定 AmlCompute 将创建计算群集。 ComputeInstance 创建计算实例
# create a compute cluster with no public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute --set enable_node_public_ip=False

# create a compute instance with no public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance --set enable_node_public_ip=False

使用以下信息为给定工作区配置虚拟网络中没有公共 IP 地址的 无服务器计算 节点:

重要

如果您使用的是无公共 IP 的无服务器计算,并且工作区使用了 IP 允许列表,则必须向工作区添加出站专用终结点。 无服务器计算需要与工作区通信,但在未配置公共 IP 时,它使用 Azure 默认出站进行 Internet 访问。 此出站的公共 IP 是动态的,无法将其添加到 IP 允许列表中。 创建指向工作区的出站专用终结点后,发往该工作区的无服务器计算流量即可绕过 IP 允许列表。

创建工作区:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithnpip
location: eastus
public_network_access: Disabled
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

更新工作区:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: true

具有公共 IP 的计算实例/集群或无服务器计算

重要

此信息仅在使用 Azure 虚拟网络时有效。 如果使用的是托管虚拟网络,则无法在 Azure 虚拟网络中部署计算资源。 有关使用托管虚拟网络的信息,请参阅使用托管网络进行托管计算

以下配置是对先决条件部分所列配置的补充,并且特定于创建具有公共 IP 的计算实例/群集。 它们也适用于无服务器计算:

  • 如果将多个计算实例/群集置于一个虚拟网络中,可能需要请求为一个或多个资源增加配额。 机器学习计算实例或群集自动在包含虚拟网络的资源组中分配网络资源。 对于每个计算实例或群集,此服务分配以下资源:

    • 系统会自动创建网络安全组 (NSG)。 此 NSG 允许来自 AzureMachineLearning 服务标记、通过 44224 端口的入站 TCP 流量。

      重要

      计算实例和计算群集会自动创建具有所需规则的 NSG。

      如果在子网级别具有其他 NSG,则子网级别的 NSG 中的规则不得与自动创建的 NSG 中的规则相冲突。

      若要了解 NSG 如何筛选网络流量,请参阅网络安全组如何筛选网络流量

    • 一个负载均衡器

    对于计算群集,每当群集纵向缩减到 0 个节点时,将删除这些资源,而当群集横向扩展时,将创建这些资源。

    对于计算实例,这些资源将一直保留,直到该实例被删除。 停止实例不会删除资源。

    重要

    这些资源受订阅的资源配额限制。 如果虚拟网络资源组被锁定,则删除计算群集/实例将失败。 在删除计算群集/实例之前,无法删除负载均衡器。 此外,请确保不存在禁止创建网络安全组的 Azure Policy 分配。

  • 在虚拟网络中,允许来自 服务标记的通过端口 44224AzureMachineLearning TCP 流量。

    重要

    创建计算实例/群集时,会动态为其分配一个 IP 地址。 由于该地址在创建之前是未知的,并且创建过程中需要入站访问,因此无法在防火墙上静态分配该地址。 相反,如果将防火墙用于虚拟网络,则必须创建用户定义的路由以允许此入站流量。

  • 在虚拟网络中,允许将出站流量发送到以下服务标记:

    服务标记 协议 端口 说明
    AzureMachineLearning TCP
    UDP
    443/8787/18881
    5831
    与 Azure 机器学习服务通信。
    BatchNodeManagement.<region> 任何 443 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。 与 Azure Batch 通信。 计算实例和计算群集是使用 Azure Batch 服务实现的。
    Storage.<region> TCP 443 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。 此服务标记用于与 Azure Batch 使用的 Azure 存储帐户通信。

    重要

    Storage.<region> 的出站访问可能被用来将数据从您的工作区中外泄出去。 通过使用服务终结点策略,你可以缓解此漏洞的问题。 有关详细信息,请参阅 Azure 机器学习数据外泄防护一文。

    FQDN 协议 端口 说明
    <region>.tundra.ml.azure.cn UDP 5831 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。
    microsoftgraph.chinacloudapi.cn TCP 443 与 Microsoft 图形 API 通信。
    *.instances.ml.azure.cn TCP 443/8787/18881 与 Azure 机器学习通信。
    *.<region>.batch.chinacloudapi.cn 任何 443 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。 与 Azure Batch 通信。
    *.<region>.service.batch.chinacloudapi.cn 任何 443 <region> 替换为包含 Azure 机器学习工作区的 Azure 区域。 与 Azure Batch 通信。
    *.blob.core.chinacloudapi.cn TCP 443 与 Azure Blob 存储通信。
    *.queue.core.chinacloudapi.cn TCP 443 与 Azure 队列存储通信。
    *.table.core.chinacloudapi.cn TCP 443 与 Azure 表存储通信。

使用以下信息在虚拟网络中创建具有公共 IP 地址的计算实例或群集:

az ml compute create 命令中,替换以下值:

  • rg:将在其中创建计算的资源组。
  • ws:Azure 机器学习工作区名称。
  • yourvnet:Azure 虚拟网络。
  • yoursubnet:用于计算的子网。
  • AmlComputeComputeInstance:指定 AmlCompute 将创建计算群集。 ComputeInstance 创建计算实例
# create a compute cluster with a public IP
az ml compute create --name cpu-cluster --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type AmlCompute

# create a compute instance with a public IP
az ml compute create --name myci --resource-group rg --workspace-name ws --vnet-name yourvnet --subnet yoursubnet --type ComputeInstance

使用以下信息为给定工作区配置虚拟网络中具有公共 IP 地址的 无服务器计算 节点:

创建工作区:

az ml workspace create -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
name: testserverlesswithvnet
location: eastus
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

更新工作区:

az ml workspace update -n <workspace-name> -g <resource-group-name> --file serverlesscomputevnetsettings.yml
serverless_compute:
  custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name>
  no_public_ip: false

Azure Databricks

  • 该虚拟网络必须与 Azure 机器学习工作区位于同一订阅和区域。
  • 如果工作区的 Azure 存储帐户也在虚拟网络中受保护,则它们必须与 Azure Databricks 群集位于同一虚拟网络中。
  • 除了 Azure Databricks 使用的 databricks-privatedatabricks-public 子网以外,还需要为虚拟网络创建 default 子网。
  • Azure Databricks 不使用专用终结点来与虚拟网络通信。

若要详细了解如何结合使用 Azure Databricks 和虚拟网络,请参阅在 Azure 虚拟网络中部署 Azure Databricks

虚拟机或 HDInsight 群集

本节将介绍如何将虚拟网络中的虚拟机或 Azure HDInsight 群集与你的工作区配合使用。

创建 VM 或 HDInsight 群集

重要

Azure 机器学习只支持运行 Ubuntu 的虚拟机。

使用 Azure 门户或 Azure CLI 创建 VM 或 HDInsight 群集,然后将群集置于 Azure 虚拟网络中。 有关详细信息,请参阅以下文章:

配置网络端口

允许 Azure 机器学习与 VM 或群集上的 SSH 端口进行通信,为网络安全组配置源条目。 SSH 端口通常是端口 22。 若要允许来自此源的流量,请执行以下操作:

  1. 在“来源”下拉列表中,选择“服务标签”。

  2. 在“源服务标记”下拉列表中,选择“AzureMachineLearning”。

    在虚拟网络中的 VM 或 HDInsight 群集上进行实验时使用的入站规则的屏幕截图。

  3. 源端口范围下拉列表中,选择*

  4. 在“目标”下拉列表中,选择“任何”。

  5. 在“目标端口范围”下拉列表中,选择“22”。

  6. 协议下,选择任意

  7. 在“操作”下,选择“允许”。

保留网络安全组的默认出站规则。 有关详细信息,请参阅安全组中的“默认安全规则”。

如果你不想要使用默认的出站规则,同时想要限制虚拟网络的出站访问,请参阅所需公共 Internet 访问部分。

连接 VM 或 HDInsight 群集

将 VM 或 HDInsight 群集附加到 Azure 机器学习工作区。 有关详细信息,请参阅在工作室中管理用于模型训练和部署的计算资源

训练模型所需的公共互联网访问权限

重要

虽然本文的前面部分介绍了创建计算资源所需的配置,但需要此部分的配置信息才能使用这些资源训练模型。

Azure 机器学习需要对公共 Internet 进行入站和出站访问。 下表概述了需要的访问权限及其用途。 对于以 .region 结尾的服务标记,请将 region 替换为包含你的工作区的 Azure 区域。 例如,Storage.chinanorth3

提示

“必填”选项卡列出了必填的入站和出站配置。 “特定情况”选项卡列出了可能要启用的特定配置所需的可选入站和出站配置。

方向 协议 &
港口
服务标记 目的
出站 TCP:80、443 AzureActiveDirectory 使用 Microsoft Entra ID 进行身份验证。
出站 TCP:443、18881
UDP:5831
AzureMachineLearning 使用 Azure 机器学习服务。
笔记本中的 Python Intellisense 使用端口 18881。
创建、更新和删除 Azure 机器学习计算实例时使用端口 5831。
出站 ANY:443 BatchNodeManagement.region 与 Azure 机器学习计算实例/集群对应的 Azure Batch 后端进行通信。
出站 TCP:443 AzureResourceManager 使用 Azure 机器学习、Azure CLI 和 Azure 机器学习 SDK 创建 Azure 资源。
出站 TCP:443 Storage.region 访问存储在 Azure 存储帐户中、用于计算群集和计算实例的数据。 有关防止数据通过此出站外泄的信息,请参阅数据外泄保护
出站 TCP:443 AzureFrontDoor.FrontEnd
* 在由世纪互联运营的 Azure 中不需要。
Azure 机器学习工作室的全球入口点。 为 AutoML 存储图像和环境。 有关防止数据通过此出站外泄的信息,请参阅数据外泄保护
出站 TCP:443 MicrosoftContainerRegistry.region
注意:此标记依赖于 AzureFrontDoor.FirstParty 标记
访问由 Microsoft 提供的 Docker 镜像。 为 Azure Kubernetes 服务设置 Azure 机器学习路由器。

提示

如果需要 IP 地址而不是服务标记,请使用下列选项之一:

IP 地址可能会定期改变。

可能还需要允许出站流量发往 Visual Studio Code 和非 Microsoft 站点,以便安装机器学习项目所需的包。 下表列出了用于机器学习的常用存储库:

主机名 目的
anaconda.com
*.anaconda.com
用于安装默认包。
*.anaconda.org 用于获取存储库数据。
pypi.org 用于列出默认索引的依赖项(如果有),索引不会被用户设置覆盖。 如果索引被覆盖,还必须同时启用 *.pythonhosted.org
cloud.r-project.org 在安装用于 R 开发的 CRAN 包时使用。
*.pytorch.org 供某些基于 PyTorch 的示例使用。
*.tensorflow.org 一些基于 TensorFlow 的示例使用了它。
code.visualstudio.com 需要下载并安装 Visual Studio Code 桌面版。 Visual Studio Code Web 不需要这个。
update.code.visualstudio.com
*.vo.msecnd.net
用于检索通过安装脚本安装在计算实例上的 Visual Studio Code 服务器组件。
marketplace.visualstudio.com
vscode.blob.core.chinacloudapi.cn
*.gallerycdn.vsassets.io
下载并安装 Visual Studio Code 扩展所必需。 这些主机支持远程连接到由适用于 Visual Studio Code 的 Azure ML 扩展提供的计算实例。 有关详细信息,请参阅在 Visual Studio Code 中连接到 Azure 机器学习计算实例
raw.githubusercontent.com/microsoft/vscode-tools-for-ai/master/azureml_remote_websocket_server/* 用于检索安装在计算实例上的 websocket 服务器位。 websocket 服务器用于将来自 Visual Studio Code 客户端(桌面应用程序)的请求传输到计算实例上运行的 Visual Studio Code 服务器。

注意

使用 Azure 机器学习 VS Code 扩展时,远程计算实例需要访问公共存储库才能安装该扩展所需的包。 如果计算实例需要代理来访问这些公共存储库或 Internet,则需要在计算实例的 HTTP_PROXY 文件中设置和导出 HTTPS_PROXY~/.bashrc 环境变量。 可以使用自定义脚本在预配时自动执行此过程。

将 Azure Kubernetes 服务 (AKS) 与 Azure 机器学习一起使用时,请允许将以下流量发送到 AKS VNet:

有关使用防火墙解决方案的信息,请参阅在 Azure 机器学习中使用防火墙

后续步骤

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