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

了解如何为 Azure AI Studio 中心配置托管网络

重要

本文介绍的某些功能可能仅在预览版中提供。 此预览版未提供服务级别协议,不建议将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

我们提供了两个网络隔离特性。 一种是用于访问 Azure AI Studio 中心的网络隔离。 另一种是中心和项目的计算资源的网络隔离(例如计算实例、无服务器和托管联机终结点)。本文档介绍关系图中突出显示的后者。 可以使用中心内置网络隔离来保护计算资源。

中心网络隔离示意图。

需要配置以下网络隔离配置。

  • 选择网络隔离模式。 你有两个选项:允许 Internet 出站模式或仅允许已批准的出站模式。
  • 如果使用具有仅允许已批准的出站模式的 Visual Studio Code 集成,请创建使用 Visual Studio Code 部分所述的 FQDN 出站规则。
  • 如果在具有仅允许已批准的出站模式的模型中使用 HuggingFace 模型,请创建使用 HuggingFace 模型部分所述的 FQDN 出站规则。
  • 如果使用其中一种具有仅允许已批准出站模式的开放源代码模型,请按由 Azure AI 策展部分所述创建 FQDN 出站规则。

网络隔离体系结构和隔离模式

启用托管虚拟网络隔离时,会为中心创建托管虚拟网络。 为中心创建的托管计算资源会自动使用此托管虚拟网络。 托管虚拟网络可以将专用终结点用于中心使用的 Azure 资源,例如 Azure 存储、Azure Key Vault 和 Azure 容器注册表。

托管虚拟网络的出站流量有三种不同的配置模式:

出站模式 说明 方案
允许 Internet 出站 允许来自托管虚拟网络的所有 Internet 出站流量。 你希望不受限制地访问 Internet 上的机器学习资源,例如 Python 包或预先训练的模型。1
仅允许已批准的出站 通过指定服务标记允许出站流量。 * 你希望最大程度地减少数据外泄的风险,但需要在专用环境中准备所有必需的机器学习项目。
* 你想要配置对已批准的服务、服务标记或 FQDN 列表的出站访问。
已禁用 入站和出站流量不受限制。 需要从中心进行公共入站和出站。

1 可以将出站规则与“仅允许已批准的出站”模式配合使用,使结果与使用“允许 Internet 出站连接”相同。 不同之处在于:

  • 始终使用专用终结点访问 Azure 资源。
  • 必须为需要允许的每个出站连接添加规则。
  • 添加 FQDN 出站规则会增加成本,因为此规则类型使用 Azure 防火墙。 如果使用出站 FQDN 规则,则 Azure 防火墙费用将包含在计费中。 有关详细信息,请参阅定价
  • 仅允许批准的出站连接”的默认规则旨在最大程度地减少数据外泄的风险。 添加的任何出站规则都可能会增加风险。

托管虚拟网络预先配置了所需的默认规则。 它还配置为与中心、中心的默认存储、容器注册表和密钥保管库建立专用终结点连接(如果这些组件配置为专用组件,或中心隔离模式设置为仅允许已批准的出站)。 选择隔离模式后,只需考虑可能需要添加的其他出站要求。

下图显示了配置为 允许 Internet 出站 的托管虚拟网络:

为 Internet 出站配置的托管虚拟网络隔离示意图。

下图显示了配置为 仅允许已批准的出站 的托管虚拟网络:

注意

在此配置中,中心使用的存储、密钥保管库和容器注册表均标记为专用。 由于它们标记为专用,因此会使用专用终结点来与它们通信。

仅允许已批准的出站配置的托管虚拟网络隔离示意图。

先决条件

在按照本文中的步骤操作之前,请确保满足以下先决条件:

  • Azure 订阅。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。

  • 必须为 Azure 订阅注册 Microsoft.Network 资源提供程序。 为托管虚拟网络创建专用终结点时,中心会使用此资源提供程序。

    有关注册资源提供程序的信息,请参阅解决资源提供程序注册错误

  • 部署托管网络时使用的 Azure 标识需要下列 Azure 基于角色的访问控制 (Azure RBAC)操作来创建专用终结点:

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write

限制

  • Azure AI Studio 目前不支持使用自有虚拟网络,它仅支持托管虚拟网络隔离。
  • 一旦启用 Azure AI 的托管虚拟网络隔离,便无法禁用它。
  • 托管虚拟网络使用专用终结点连接来访问专用资源。 不能同时为 Azure 资源(例如存储帐户)提供专用终结点和服务终结点。 我们建议在所有情况下都使用专用终结点。
  • 删除 Azure AI 时,将删除托管虚拟网络。
  • 数据外泄保护会自动为唯一已批准的出站模式启用。 如果将其他出站规则(例如添加到 FQDN),Microsoft 无法保证不会将数据外泄到这些出站目标。
  • 使用 FQDN 出站规则会增加托管虚拟网络的成本,因为 FQDN 规则使用 Azure 防火墙。 有关详细信息,请参阅定价
  • FQDN 出站规则仅支持端口 80 和 443。
  • 将计算实例与托管网络配合使用时,可以使用 az ml compute connect-ssh 命令通过 SSH 连接到计算实例。

配置托管虚拟网络以允许 Internet 出站

提示

托管 VNet 的创建将推迟到创建计算资源或手动启动预配后。 允许自动创建时,创建第一个计算资源可能需要大约 30 分钟,因为此过程还需要预配网络。

  • 创建新的中心

    1. 登录到 Azure 门户,然后从“创建资源”菜单中选择“Azure AI Studio”。

    2. 选择“+ 新建 Azure AI”

    3. 在“基本信息”选项卡中,提供必填的信息。

    4. 在“网络”选项卡中,选择“Internet 出站专用”。

    5. 若要添加出站规则,请从“网络”选项卡中选择“添加用户定义的出站规则”。从“出站规则”边栏,提供以下信息:

      • 规则名称:规则的名称。 该名称对于此中心来说必须是唯一的。
      • 目标类型:当网络隔离是 Internet 出站专用时,专用终结点是唯一的选项。 中心托管虚拟网络不支持为所有 Azure 资源类型创建专用终结点。 请参阅 专用终结点 部分查看受支持资源的列表。
      • 订阅:包含要为其添加专用终结点的 Azure 资源的订阅。
      • 资源组:包含要为其添加专用终结点的 Azure 资源的资源组。
      • 资源类型:Azure 资源的类型。
      • 资源名称:Azure 资源的名称。
      • 子资源:Azure 资源类型的子资源。

      选择“保存”以保存规则。 可以继续使用“添加用户定义的出站规则”来添加规则。

    6. 继续照常创建中心。

  • 更新现有中心

    1. 登录到 Azure 门户,然后选择要为其启用托管虚拟网络隔离的中心。

    2. 依次选择“网络”、“Internet 出站专用”。

      • 若要添加出站规则,请从“网络”选项卡中选择“添加用户定义的出站规则”。在“出站规则”边栏中,提供在“创建新的中心”部分中创建中心时使用的相同信息。

      • 若要 删除 出站规则,请为该规则选择“删除”。

    3. 选择页面顶部的“保存”,将更改保存到托管虚拟网络。

将托管虚拟网络配置为仅允许已批准的出站

提示

创建计算资源时,会自动预配托管 VNet。 允许自动创建时,创建第一个计算资源可能需要大约 30 分钟,因为此过程还需要预配网络。 如果配置了 FQDN 出站规则,则第一个 FQDN 规则会使预配时间增加 10 分钟左右。

  • 创建新的中心

    1. 登录到 Azure 门户,然后从“创建资源”菜单中选择“Azure AI Studio”。

    2. 选择“+ 新建 Azure AI”

    3. 在“基本信息”选项卡中,提供必填的信息。

    4. 在“网络”选项卡中,选择“已批准出站专用”。

    5. 若要添加出站规则,请从“网络”选项卡中选择“添加用户定义的出站规则”。从“出站规则”边栏,提供以下信息:

      • 规则名称:规则的名称。 该名称对于此中心来说必须是唯一的。
      • 目标类型:专用终结点、服务标记或 FQDN。 服务标记和 FQDN 仅在网络隔离为专用且已批准的出站时可用。

      如果目标类型为 专用终结点,请提供以下信息:

      • 订阅:包含要为其添加专用终结点的 Azure 资源的订阅。
      • 资源组:包含要为其添加专用终结点的 Azure 资源的资源组。
      • 资源类型:Azure 资源的类型。
      • 资源名称:Azure 资源的名称。
      • 子资源:Azure 资源类型的子资源。

      提示

      中心托管 VNet 不支持为所有 Azure 资源类型创建专用终结点。 请参阅 专用终结点 部分查看受支持资源的列表。

      如果目标类型为 服务标记,请提供以下信息:

      • 服务标记:要添加到已批准出站规则的服务标记。
      • 协议:允许服务标记的协议。
      • 端口范围:服务标记允许的端口范围。

      如果目标类型为 FQDN,请提供以下信息:

      • FQDN 目标:要添加到已批准的出站规则的完全限定域名。

      选择“保存”以保存规则。 可以继续使用“添加用户定义的出站规则”来添加规则。

    6. 继续照常创建中心。

  • 更新现有中心

    1. 登录到 Azure 门户,然后选择要为其启用托管虚拟网络隔离的中心。

    2. 依次选择“网络”、“已批准出站专用”。

      • 若要添加出站规则,请从“网络”选项卡中选择“添加用户定义的出站规则”。在“出站规则”边栏中,提供在前面“创建新的中心”部分中创建中心时使用的相同信息。

      • 若要 删除 出站规则,请为该规则选择“删除”。

    3. 选择页面顶部的“保存”,将更改保存到托管虚拟网络。

手动预配托管 VNet

创建计算实例时,会自动预配托管 VNet。 依赖于自动预配时,创建第一个计算实例可能需要大约 30 分钟,因为此过程还需要预配网络。 如果配置了 FQDN 出站规则(仅适用于“仅允许批准的连接”模式),则第一个 FQDN 规则会使预配时间大约增加 10 分钟。 如果在托管网络中有大量出站规则需要预配,则完成预配可能需要较长的时间。 预配时间增加可能会导致第一个计算实例创建超时。

若要减少等待时间并避免潜在的超时错误,建议手动预配托管网络。 然后等待预配完成后再创建计算实例。

注意

要创建联机部署,必须手动预配托管网络,或先创建一个计算实例,该实例将自动预配托管网络。

使用“Azure CLI”或“Python SDK”选项卡了解如何手动预配托管 VNet。

管理出站规则

  1. 登录到 Azure 门户,然后选择要为其启用托管虚拟网络隔离的中心。
  2. 选择“网络”。 可通过“Azure AI 出站访问”部分管理出站规则。
  • 若要添加出站规则,请从“网络”选项卡中选择“添加用户定义的出站规则”。从“Azure AI 出站规则”边栏,提供以下信息:

  • 若要启用禁用规则,请使用“活动”列中的切换按钮。

  • 若要 删除 出站规则,请为该规则选择“删除”。

所需规则列表

提示

这些规则会自动添加到托管 VNet。

专用终结点

  • 当托管虚拟网络的隔离模式为 Allow internet outbound 时,专用终结点出站规则将自动创建为已禁用公用网络访问的中心和相关资源(密钥保管库、存储帐户、容器注册表、中心)的托管虚拟网络中的所需规则。
  • 当托管虚拟网络的隔离模式为 Allow only approved outbound 时,专用终结点出站规则将自动创建为中心和相关资源(密钥保管库、存储帐户、容器注册表、Azure AI 中心)的托管虚拟网络中的所需规则,无论这些资源的公用网络访问模式如何

出站服务标记规则:

  • AzureActiveDirectory
  • Azure Machine Learning
  • BatchNodeManagement.region
  • AzureResourceManager
  • AzureFrontDoor.FirstParty
  • MicrosoftContainerRegistry
  • AzureMonitor

入站服务标记规则:

  • AzureMachineLearning

特定于方案的出站规则列表

场景:访问公共机器学习包

若要允许安装用于训练和部署的 Python 包,请添加出站 FQDN 规则以允许以下主机名的出站流量:

注意

这不是 Internet 上所有 Python 资源所需的完整主机列表,这只是最常使用的主机列表。 例如,如果需要访问 GitHub 存储库或其他主机,则必须标识并添加该方案所需的主机。

主机名 用途
anaconda.com
*.anaconda.com
用于安装默认包。
*.anaconda.org 用于获取存储库数据。
pypi.org 用于列出默认索引的依赖项(如果有),索引不会被用户设置覆盖。 如果索引被覆盖,则还必须允许 *.pythonhosted.org
pytorch.org
*.pytorch.org
由基于 PyTorch 的一些示例使用。
*.tensorflow.org 由基于 Tensorflow 的一些示例使用。

方案:使用 Visual Studio Code

Visual Studio Code 依赖于特定的主机和端口来建立远程连接。

主机

如果计划将 Visual Studio Code 与中心配合使用,请添加出站 FQDN 规则以允许流量流向以下主机:

  • *.vscode.dev
  • vscode.blob.core.windows.net
  • *.gallerycdn.vsassets.io
  • raw.githubusercontent.com
  • *.vscode-unpkg.net
  • *.vscode-cdn.net
  • *.vscodeexperiments.azureedge.net
  • default.exp-tas.com
  • code.visualstudio.com
  • update.code.visualstudio.com
  • *.vo.msecnd.net
  • marketplace.visualstudio.com
  • pkg-containers.githubusercontent.com
  • github.com

端口

必须允许网络流量流向端口 8704 至 8710。 VS Code 服务器会在此范围内动态选择第一个可用端口。

方案:使用 HuggingFace 模型

如果计划将 HuggingFace 模型与中心配合使用,请添加出站 FQDN 规则以允许流量流向以下主机:

  • docker.io
  • *.docker.io
  • *.docker.com
  • production.cloudflare.docker.com
  • cnd.auth0.com
  • cdn-lfs.huggingface.co

应用场景:由 Azure AI 策展

这些模型涉及在运行时动态安装依赖项,并要求出站 FQDN 规则允许流量流向以下主机:

*.anaconda.org *.anaconda.com anaconda.com pypi.org *.pythonhosted.org *.pytorch.org pytorch.org

专用终结点

以下 Azure 服务当前支持专用终结点:

  • AI Studio 中心
  • Azure AI 搜索
  • Azure AI 服务
  • Azure API 管理
  • Azure 容器注册表
  • Azure Cosmos DB(所有子资源类型)
  • Azure 数据工厂
  • Azure Database for MariaDB
  • Azure Database for MySQL
  • Azure Database for PostgreSQL 单一服务器
  • Azure Database for PostgreSQL 灵活服务器
  • Azure Databricks
  • Azure 事件中心
  • Azure Key Vault
  • Azure 机器学习
  • Azure 机器学习注册表
  • Azure Redis 缓存
  • Azure SQL Server
  • Azure 存储(所有子资源类型)

创建专用终结点时,需要提供终结点连接到的资源类型子资源。 某些资源有多个类型和子资源。 有关详细信息,请参阅什么是专用终结点

为中心依赖项资源(例如 Azure 存储、Azure 容器注册表和 Azure Key Vault)创建专用终结点时,该资源可以位于不同的 Azure 订阅中。 但是,资源必须与中心位于同一租户中。

如果目标资源是上面列出的 Azure 资源,则会自动为连接创建专用终结点。 专用终结点需要有效的目标 ID。 连接的有效目标 ID 可以是父资源的 Azure 资源管理器 ID。 连接的目标中或 metadata.resourceid 中也需要目标 ID。 有关连接的详细信息,请参阅如何在 Azure AI Studio 添加新连接

定价

中心托管虚拟网络功能是免费的。 但是,需要为托管虚拟网络使用的以下资源付费:

  • Azure 专用链接 - 用于保护托管虚拟网络与 Azure 资源之间的通信的专用终结点依赖于 Azure 专用链接。 有关定价详细信息,请参阅 Azure 专用链接定价

  • FQDN 出站规则 - FQDN 出站规则使用 Azure 防火墙实现。 如果使用出站 FQDN 规则,则 Azure 防火墙费用将包含在计费中。 Azure 防火墙 SKU 是标准的。 Azure 防火墙是按中心预配的。

    重要

    在添加出站 FQDN 规则之前,不会创建防火墙。 如果不使用 FQDN 规则,则无需支付 Azure 防火墙费用。 有关定价的详细信息,请参阅 Azure 防火墙定价