工作区托管虚拟网络隔离

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

Azure 机器学习为托管虚拟网络(托管虚拟网络)隔离提供支持。 托管虚拟网络隔离通过内置的工作区级别 Azure 机器学习托管虚拟网络简化并自动执行网络隔离配置。 托管虚拟网络保护托管的 Azure 机器学习资源,例如计算实例、计算群集、无服务器计算和托管联机终结点。

使用托管网络保护工作区,可以为工作区和托管计算出站访问提供网络隔离。 你创建和管理的 Azure 虚拟网络用于对工作区的入站访问提供网络隔离。 例如,在 Azure 虚拟网络中创建工作区的专用终结点。 连接到虚拟网络的任何客户端都可以通过专用终结点访问工作区。 在托管计算上运行作业时,托管网络会限制计算可以访问的内容。

托管虚拟网络体系结构

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

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

提示

无论使用哪种出站模式,都可以将发往 Azure 资源的流量配置为使用专用终结点。 例如,可以允许所有发往 Internet 的出站流量,但通过为资源添加出站规则来限制与 Azure 资源的通信。

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

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

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

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

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

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

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

注意

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

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

注意

将托管 VNet 工作区配置为“允许 Internet 出站”后,该工作区将无法重新配置为“禁用”。 同样,将托管 VNet 工作区配置为“仅允许已批准的出站”后,该工作区将无法重新配置为“允许 Internet 出站”。 在工作区中选择托管 VNet 的隔离模式时,请牢记这一点。

Azure 机器学习工作室

如果要使用集成笔记本或在工作室的默认存储帐户中创建数据集,客户端需要访问默认存储帐户。 为客户端使用的 Azure 虚拟网络中的默认存储帐户创建专用终结点或服务终结点。

部分 Azure 机器学习工作室在客户端的 Web 浏览器中本地运行,并与工作区的默认存储直接通信。 在客户端的虚拟网络中(为默认存储帐户)创建专用终结点或服务终结点可确保客户端能够与存储帐户通信。

有关创建专用终结点或服务终结点的详细信息,请参阅以私密方式连接到存储帐户服务终结点文章。

受保护的关联资源

如果使用服务终结点或专用终结点(禁用公共访问)将以下服务添加到虚拟网络,则允许受信任的 Microsoft 服务访问这些服务:

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

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

先决条件

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

  • Azure 订阅。 如果没有 Azure 订阅,可在开始前创建一个试用帐户。 试用免费版或付费版 Azure 机器学习

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

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

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

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write
  • Azure CLI 和 Azure CLI 的 ml 扩展。 有关详细信息,请参阅安装、设置和使用 CLI (v2)

    提示

    Azure 机器学习托管 VNet 是在 2023 年 5 月 23 日推出的。 如果你的 ml 扩展版本较旧,则可能需要进行更新,以便顺利完成本文中的示例。 若要更新扩展,请使用以下 Azure CLI 命令:

    az extension update -n ml
    
  • 本文中的 CLI 示例假定你使用的是 Bash(或兼容的)shell。 例如,从 Linux 系统或者适用于 Linux 的 Windows 子系统

  • 本文中的 Azure CLI 示例使用 ws 表示工作区的名称,并使用 rg 表示资源组的名称。 将命令用于 Azure 订阅时,请根据需要更改这些值。

注意

如果使用 UAI 工作区,请确保将 Azure AI 企业网络连接审批者角色添加到你的标识。 有关详细信息,请参阅用户分配的托管标识

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

提示

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

重要

如果计划提交无服务器 Spark 作业,则必须手动启动预配。 有关详细信息,请参阅为无服务器 Spark 作业配置部分。

若要配置允许 Internet 出站通信的托管虚拟网络,可以使用 --managed-network allow_internet_outbound 参数或包含以下条目的 YAML 配置文件:

managed_network:
  isolation_mode: allow_internet_outbound

还可以为工作区所依赖的其他 Azure 服务定义出站规则。 这些规则定义允许 Azure 资源与托管虚拟网络进行安全通信的专用终结点。 以下规则演示如何将专用终结点添加到 Azure Blob 资源。

managed_network:
  isolation_mode: allow_internet_outbound
  outbound_rules:
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

可以使用 az ml workspace createaz ml workspace update 命令配置托管虚拟网络:

  • 创建新的工作区

    以下示例将创建新工作区。 --managed-network allow_internet_outbound 参数为工作区配置托管虚拟网络:

    az ml workspace create --name ws --resource-group rg --managed-network allow_internet_outbound
    

    若要改为使用 YAML 文件创建工作区,请使用 --file 参数并指定包含配置设置的 YAML 文件:

    az ml workspace create --file workspace.yaml --resource-group rg --name ws
    

    以下 YAML 示例定义具有托管虚拟网络的工作区:

    name: myworkspace
    location: EastUS
    managed_network:
      isolation_mode: allow_internet_outbound
    
  • 更新现有工作区

    警告

    在更新现有工作区以使用托管虚拟网络之前,必须删除工作区的所有计算资源。 这包括计算实例、计算群集和托管联机终结点。

    以下示例更新现有工作区。 --managed-network allow_internet_outbound 参数为工作区配置托管虚拟网络:

    az ml workspace update --name ws --resource-group rg --managed-network allow_internet_outbound
    

    若要使用 YAML 文件更新现有工作区,请使用 --file 参数并指定包含配置设置的 YAML 文件:

    az ml workspace update --file workspace.yaml --name ws --resource-group MyGroup
    

    以下 YAML 示例为工作区定义托管虚拟网络。 它还演示了如何将专用终结点连接添加到工作区使用的资源;在本例中,即 blob 存储的专用终结点:

    name: myworkspace
    managed_network:
      isolation_mode: allow_internet_outbound
      outbound_rules:
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

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

提示

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

重要

如果计划提交无服务器 Spark 作业,则必须手动启动预配。 有关详细信息,请参阅为无服务器 Spark 作业配置部分。

若要配置仅允许已批准的出站通信的托管虚拟网络,可以使用 --managed-network allow_only_approved_outbound 参数或包含以下条目的 YAML 配置文件:

managed_network:
  isolation_mode: allow_only_approved_outbound

还可以定义出站规则以定义已批准的出站通信。 可以创建 service_tagfqdnprivate_endpoint 类型的出站规则。 以下规则演示了如何将专用终结点添加到 Azure Blob 资源,将服务标记添加到 Azure 数据工厂,并将 FQDN 添加到 pypi.org

重要

  • 仅当托管 VNet 配置为 allow_only_approved_outbound 时,为服务标记或 FQDN 添加出站这一操作才有效。
  • 如果添加出站规则,则 Microsoft 无法保证数据不会外泄。

警告

FQDN 出站规则是使用 Azure 防火墙实现的。 如果使用出站 FQDN 规则,则 Azure 防火墙费用将添加到账单中。 有关详细信息,请参阅定价

managed_network:
  isolation_mode: allow_only_approved_outbound
  outbound_rules:
  - name: added-servicetagrule
    destination:
      port_ranges: 80, 8080
      protocol: TCP
      service_tag: DataFactory
    type: service_tag
  - name: add-fqdnrule
    destination: 'pypi.org'
    type: fqdn
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

可以使用 az ml workspace createaz ml workspace update 命令配置托管虚拟网络:

  • 创建新的工作区

    以下示例使用 --managed-network allow_only_approved_outbound 参数配置托管虚拟网络:

    az ml workspace create --name ws --resource-group rg --managed-network allow_only_approved_outbound
    

    以下 YAML 文件定义具有托管虚拟网络的工作区:

    name: myworkspace
    location: ChinaNorth3
    managed_network:
      isolation_mode: allow_only_approved_outbound
    

    若要使用 YAML 文件创建工作区,请使用 --file 参数:

    az ml workspace create --file workspace.yaml --resource-group rg --name ws
    
  • 更新现有工作区

    警告

    在更新现有工作区以使用托管虚拟网络之前,必须删除工作区的所有计算资源。 这包括计算实例、计算群集和托管联机终结点。

    以下示例使用 --managed-network allow_only_approved_outbound 参数为现有工作区配置托管虚拟网络:

    az ml workspace update --name ws --resource-group rg --managed-network allow_only_approved_outbound
    

    以下 YAML 文件为工作区定义托管虚拟网络。 它还演示如何将已批准的出站添加到托管虚拟网络。 在此示例中,为两个服务标记都添加了出站规则:

    警告

    FQDN 出站规则是使用 Azure 防火墙实现的。 如果使用出站 FQDN 规则,则 Azure 防火墙的费用将添加到账单中。有关详细信息,请参阅定价

    name: myworkspace_dep
    managed_network:
      isolation_mode: allow_only_approved_outbound
      outbound_rules:
      - name: added-servicetagrule
        destination:
          port_ranges: 80, 8080
          protocol: TCP
          service_tag: DataFactory
        type: service_tag
      - name: add-fqdnrule
        destination: 'pypi.org'
        type: fqdn
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

为无服务器 Spark 作业配置

提示

仅当计划提交无服务器 Spark 作业时,才需要执行本部分中的步骤。 如果你不打算提交无服务器 Spark 作业,则可以跳过本部分。

若要为托管虚拟网络启用无服务器 Spark 作业,必须执行以下操作:

  • 为工作区配置托管虚拟网络,并为 Azure 存储帐户添加出站专用终结点。
  • 配置托管虚拟网络后,对其进行预配并标记以允许 Spark 作业。
  1. 配置出站专用终结点。

    使用 YAML 文件定义托管虚拟网络配置,并为 Azure 存储帐户添加专用终结点。 此外,设置 spark_enabled: true

    提示

    此示例适用于通过 isolation_mode: allow_internet_outbound 配置为允许 Internet 流量的托管 VNet。 如果只想允许已批准的出站流量,请使用 isolation_mode: allow_only_approved_outbound

    name: myworkspace
    managed_network:
      isolation_mode: allow_internet_outbound
      outbound_rules:
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

    可以通过指定 --file 参数和 YAML 文件的名称,将 YAML 配置文件与 az ml workspace update 命令一起使用。 例如,以下命令使用名为 workspace_pe.yml 的 YAML 文件更新现有工作区:

    az ml workspace update --file workspace_pe.yml --resource_group rg --name ws
    

    注意

    启用“仅允许已批准的出站” (isolation_mode: allow_only_approved_outbound) 后,Spark 会话配置中定义的 conda 包依赖项将无法安装。 若要解决此问题,请将没有外部依赖项的独立 Python 包 wheel 上传到 Azure 存储帐户,并为此存储帐户创建专用终结点。 使用 Python 包 wheel 的路径作为 Spark 作业中的 py_files 参数。 设置 FQDN 出站规则不会绕过此问题,因为 Spark 不支持 FQDN 规则传播。

  2. 预配托管虚拟网络。

    注意

    如果工作区已启用公共网络访问,则必须在预配托管 VNet 之前禁用它。 如果在预配托管 VNet 时未禁用公共网络访问,则可能无法在受管 VNet 中自动创建工作区的专用终结点。 否则,必须在预配后为工作区手动配置专用终结点出站规则。

    以下示例演示如何使用 --include-spark 参数为无服务器 Spark 作业预配托管虚拟网络。

    az ml workspace provision-network -g my_resource_group -n my_workspace_name --include-spark
    

手动预配托管 VNet

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

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

你也可以使用 provision_network_now 标志在工作区创建期间预配托管网络。 此标志目前为预览版。

注意

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

以下示例演示如何在工作区创建期间预配托管虚拟网络。 --provision-network-now 标志目前为预览版。

az ml workspace create -n myworkspace -g my_resource_group --managed-network AllowInternetOutbound --provision-network-now

以下示例演示如何手动预配托管虚拟网络。

提示

如果你打算提交无服务器 Spark 作业,请添加 --include-spark 参数。

az ml workspace provision-network -g my_resource_group -n my_workspace_name

若要验证预配是否已完成,请使用以下命令:

az ml workspace show -n my_workspace_name -g my_resource_group --query managed_network

配置映像生成

当工作区的 Azure 容器注册表位于虚拟网络后面时,它不能用于直接生成 Docker 映像。 应该将工作区配置为使用计算群集或计算实例来生成映像。

重要

用于生成 Docker 映像的计算资源需要能够访问用于训练和部署模型的包存储库。 如果使用的网络配置为仅允许批准的出站连接,则你可能需要添加允许访问公共存储库的规则使用专用 Python 包

若要将工作区更新为使用计算群集或计算实例来生成 Docker 映像,请结合 --image-build-compute 参数使用 az ml workspace update 命令:

az ml workspace update --name ws --resource-group rg --image-build-compute mycompute

管理出站规则

若要列出工作区的托管虚拟网络出站规则,请使用以下命令:

az ml workspace outbound-rule list --workspace-name ws --resource-group rg

若要查看托管虚拟网络出站规则的详细信息,请使用以下命令:

az ml workspace outbound-rule show --rule rule-name --workspace-name ws --resource-group rg

若要从托管虚拟网络中删除出站规则,请使用以下命令:

az ml workspace outbound-rule remove --rule rule-name --workspace-name ws --resource-group rg

所需规则列表

提示

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

专用终结点

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

出站服务标记规则:

  • AzureActiveDirectory
  • AzureMachineLearning
  • BatchNodeManagement.region
  • AzureResourceManager
  • AzureMonitor

入站服务标记规则:

  • AzureMachineLearning

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

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

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

警告

FQDN 出站规则是使用 Azure 防火墙实现的。 如果使用出站 FQDN 规则,则 Azure 防火墙费用将添加到账单中。 有关详细信息,请参阅定价

注意

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

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

场景:将 Visual Studio Code 桌面或 Web 与计算实例配合使用

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

警告

FQDN 出站规则是使用 Azure 防火墙实现的。 如果使用出站 FQDN 规则,则 Azure 防火墙费用将添加到账单中。 有关详细信息,请参阅定价

  • *.vscode.dev
  • vscode.blob.core.chinacloudapi.cn
  • *.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
  • vscode.download.prss.microsoft.com

方案:使用批处理终结点或 ParallelRunStep

如果计划使用 Azure 机器学习批处理终结点进行部署或使用 ParallelRunStep,请添加出站专用终结点规则,以允许流量流向默认存储帐户的以下子资源

  • queue
  • table
  • Azure AI 服务的专用终结点
  • Azure AI 搜索的专用终结点

方案:使用 HuggingFace 模型

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

警告

FQDN 出站规则是使用 Azure 防火墙实现的。 如果使用出站 FQDN 规则,则 Azure 防火墙费用将添加到账单中。 有关详细信息,请参阅定价

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

场景:启用从所选 IP 地址访问

如果要启用从特定 IP 地址访问,请使用以下操作:

  1. 添加一个出站专用终结点规则,以允许流向 Azure 机器学习工作区的流量。 此规则允许在托管虚拟网络中创建的计算实例访问工作区。

    提示

    创建工作区期间无法添加此规则,因为工作区尚不存在。

  2. 启用公用网络对工作区的访问。 有关详细信息,请参阅启用公用网络访问

  3. 将 IP 地址添加到 Azure 机器学习的防火墙。 有关详细信息,请参阅启用仅限从 IP 范围访问

    注意

    仅支持 IPv4 地址。

有关详细信息,请参阅配置专用链接

专用终结点

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

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

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

为 Azure 机器学习依赖项资源(例如 Azure 存储、Azure 容器注册表和 Azure 密钥保管库)创建专用终结点时,该资源可以位于不同的 Azure 订阅中。 但是,资源必须与 Azure 机器学习工作区位于同一租户中。

重要

为 Azure 机器学习托管 VNet 配置专用终结点时,只有进行第一个计算时创建或强制进行托管 VNet 预配时,才会创建专用终结点。 有关强制实施托管 VNet 预配的详细信息,请参阅 为无服务器 Spark 作业配置

定价

Azure 机器学习托管虚拟网络功能是免费的。 但是,需要为托管虚拟网络使用的以下资源付费:

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

  • FQDN 出站规则 - FQDN 出站规则使用 Azure 防火墙实现。 如果使用出站 FQDN 规则,则 Azure 防火墙费用将添加到账单中。 Azure 防火墙(标准 SKU)由 Azure 机器学习预配。

    重要

    在添加出站 FQDN 规则之前,不会创建防火墙。 有关定价的详细信息,请参阅 Azure 防火墙定价,并查看标准版的价格

限制

  • Azure AI Studio 不支持使用个人 Azure 虚拟网络来保护中心、项目或计算资源。 只能使用托管网络功能来保护这些资源。
  • 启用工作区的托管虚拟网络隔离(允许 Internet 出站或仅允许已批准的出站)后,将无法将其禁用。
  • 托管虚拟网络使用专用终结点连接来访问专用资源。 不能同时为 Azure 资源(例如存储帐户)提供专用终结点和服务终结点。 我们建议在所有情况下都使用专用终结点。
  • 删除工作区时,将删除托管虚拟网络。
  • 数据外泄保护会自动为唯一已批准的出站模式启用。 如果将其他出站规则(例如添加到 FQDN),Microsoft 无法保证不会将数据外泄到这些出站目标。
  • 使用托管虚拟网络时,不支持在工作区以外的区域创建计算群集。
  • Azure 机器学习托管虚拟网络不支持 Kubernetes 和附加的 VM。
  • 使用 FQDN 出站规则会增加托管虚拟网络的成本,因为 FQDN 规则使用 Azure 防火墙。 有关详细信息,请参阅定价
  • FQDN 出站规则仅支持端口 80 和 443。
  • 如果计算实例位于托管网络中,并且未配置任何公共 IP,请使用 az ml compute connect-ssh 命令通过 SSH 连接到该实例。
  • 使用托管虚拟网络时,无法在自定义虚拟网络内部署计算资源。 只能在托管虚拟网络内创建计算资源。
  • 托管网络隔离无法建立从托管虚拟网络到用户本地资源的专用连接。 有关支持的专用连接列表,请参阅专用终结点
  • 如果将托管网络配置为“仅允许已批准的出站”,则无法使用 FQDN 规则访问 Azure 存储帐户。 必须改用专用终结点。

迁移计算资源

如果你有一个现有的工作区,并且想要为其启用托管虚拟网络,目前没有现有托管计算资源支持的迁移路径。 需要删除所有现有托管计算资源,并在启用托管虚拟网络后重新创建它们。 以下列表包含必须删除和重新创建的计算资源:

  • 计算群集
  • 计算实例
  • 托管联机终结点

后续步骤