本文内容
适用范围: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 出站 的托管虚拟网络:
下图显示了配置为 仅允许已批准的出站 的托管虚拟网络:
备注
在此配置中,工作区使用的存储、密钥保管库和容器注册表均标记为专用。 由于它们标记为专用,因此会使用专用终结点来与它们通信。
备注
将托管 VNet 工作区配置为 允许 Internet 出站后,无法将工作区重新配置为 禁用。 同样,一旦将托管 VNet 工作区配置为 仅允许批准的出站,则无法重新配置工作区以 允许 Internet 出站。 在工作区中选择托管 VNet 的隔离模式时,请记住这一点。
如果要使用集成笔记本或在工作室的默认存储帐户中创建数据集,客户端需要访问默认存储帐户。 为客户端使用的 Azure 虚拟网络中的默认存储帐户创建专用终结点或服务终结点。
部分 Azure 机器学习工作室在客户端的 Web 浏览器中本地运行,并与工作区的默认存储直接通信。 在客户端的虚拟网络中(为默认存储帐户)创建专用终结点或服务终结点可确保客户端能够与存储帐户通信。
如果与工作区关联的 Azure 存储帐户已禁用公用网络访问权限,请确保为在客户端虚拟网络中创建的专用终结点授予针对工作区托管标识的“读取者”角色。 这同时适用于博客和文件存储专用终结点。 托管虚拟网络创建的专用终结点不需要该角色。
有关创建专用终结点或服务终结点的详细信息,请参阅以私密方式连接到存储帐户和服务终结点文章。
如果使用服务终结点或专用终结点(禁用公共访问)将以下服务添加到虚拟网络,则允许受信任的 Microsoft 服务访问这些服务:
服务 | 终结点信息 | 允许受信任的信息 |
---|---|---|
Azure Key Vault |
专用终结点 服务终结点 |
允许受信任的 Microsoft 服务绕过此防火墙 |
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 订阅时,请根据需要更改这些值。
备注
若要使用 Azure 机器学习在托管虚拟网络中建立专用终结点连接,工作区托管标识(无论是系统分配的还是用户分配的)必须有权批准目标资源上的专用终结点连接。 以前,这是通过 Azure 机器学习服务的自动角色分配完成的。 但是,对自动角色分配存在安全问题。 为了提高安全性,从 2025 年 4 月 30 日开始,我们将停止此自动权限授予逻辑。 建议为 Azure AI Enterprise 网络连接审批者 角色或自定义角色分配目标资源类型所需的专用终结点连接权限,并将此角色授予 Azure 机器学习工作区的托管标识,以允许 Azure 机器学习服务批准与目标 Azure 资源的专用终结点连接。
下面是 Azure AI 企业网络连接审批者 角色涵盖的专用终结点目标资源类型列表:
- Azure 应用程序网关
- Azure Monitor
- Azure AI 搜索
- 事件中心
- Azure SQL 数据库
- Azure 存储
- Azure 机器学习工作区
- Azure 机器学习注册表
- Azure AI Foundry
- Azure Key Vault
- Azure CosmosDB
- 适用于 MySQL 的 Azure 数据库
- 适用于 PostgreSQL 的 Azure 数据库
- Azure AI 服务
- 适用于 Redis 的 Azure 缓存
- 容器注册表
- API 管理
若要改为创建自定义角色,请参阅 Azure AI 企业网络连接审批者角色 ,以添加每个资源类型的特定操作。
要为不在 Azure AI 企业网络连接审批者 角色涵盖范围内的目标资源类型(如 Azure 数据工厂、Azure Databricks 和 Azure Function Apps)创建专用终结点出站规则,建议定义一个自定义的、范围限定的角色,仅包含批准这些目标资源类型上专用终结点连接所需的操作。
在默认工作区资源中创建专用终结点出站规则时,由于在工作区创建期间授予的角色分配已自动涵盖必要权限,因此无需执行其他操作。
提示
托管 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 create
或 az 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_tag
、fqdn
和 private_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 create
或 az 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 作业,必须执行以下操作:
- 为工作区配置托管虚拟网络,并为 Azure 存储帐户添加出站专用终结点。
- 配置托管虚拟网络后,对其进行预配并标记以允许 Spark 作业。
配置出站专用终结点。
使用 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
可以通过指定
az ml workspace update
参数和 YAML 文件的名称,将 YAML 配置文件与--file
命令一起使用。 例如,以下命令使用名为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 规则传播。预配托管虚拟网络。
备注
如果工作区已启用公共网络访问,则必须在预配托管 VNet 之前禁用它。 如果在预配托管 VNet 时未禁用公共网络访问,则可能无法在受管 VNet 中自动创建工作区的专用终结点。 否则,必须在预配后为工作区手动配置专用终结点出站规则。
以下示例演示如何使用
--include-spark
参数为无服务器 Spark 作业预配托管虚拟网络。az ml workspace provision-network -g my_resource_group -n my_workspace_name --include-spark
创建计算实例时,会自动预配托管虚拟网络。 依赖于自动预配时,创建第一个计算实例可能需要大约 30 分钟,因为此过程还需要预配网络。 如果配置了 FQDN 出站规则(仅适用于“仅允许批准的连接”模式),则第一个 FQDN 规则会使预配时间大约增加 10 分钟。 如果在托管网络中有大量出站规则需要预配,则完成预配可能需要较长的时间。 预配时间增加可能会导致第一个计算实例创建超时。
若要减少等待时间并避免潜在的超时错误,建议手动预配托管网络。 然后等待预配完成后再创建计算实例。
你也可以使用 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 映像,请结合 az ml workspace update
参数使用 --image-build-compute
命令:
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
专用终结点:
- 当托管虚拟网络的隔离模式为
Allow internet outbound
时,专用终结点出站规则将自动创建为已禁用公用网络访问的工作区和相关资源(密钥保管库、存储帐户、容器注册表、Azure 机器学习工作区)的托管虚拟网络中的所需规则。 - 当托管虚拟网络的隔离模式为
Allow only approved outbound
时,专用终结点出站规则将自动创建为工作区和相关资源(密钥保管库、存储帐户、容器注册表、Azure 机器学习工作区)的托管虚拟网络中的所需规则,无论这些资源的公用网络访问模式如何。 - 这些规则会自动添加到托管虚拟网络。
为了使 Azure 机器学习正常运行,需要一组必需的服务标记,无论是托管还是自定义虚拟网络设置都需要这些标记。 对更换某些必需的服务标记没有其他选择。 下表描述了每个必需的服务标记及其在 Azure 机器学习中的用途。
服务标签规则 | 入站或出站 | 目的 |
---|---|---|
AzureMachineLearning |
入站 | 创建、更新和删除 Azure 机器学习计算实例/群集。 |
AzureMachineLearning |
出站 | 使用 Azure 机器学习服务。 笔记本中的 Python Intellisense 使用端口 18881。 创建、更新和删除 Azure 机器学习计算实例时使用端口 5831。 |
AzureActiveDirectory |
出站 | 使用 Microsoft Entra ID 进行身份验证。 |
BatchNodeManagement.region |
出站 | 与 Azure Batch 后端进行通信,以支持 Azure 机器学习计算实例/群集。 |
AzureResourceManager |
出站 | 使用 Azure 机器学习、Azure CLI 和 Azure 机器学习 SDK 创建 Azure 资源。 |
AzureFrontDoor.FirstParty |
出站 | 访问由 Microsoft 提供的 Docker 镜像。 |
MicrosoftContainerRegistry |
出站 | 访问由 Microsoft 提供的 Docker 镜像。 为 Azure Kubernetes 服务设置 Azure 机器学习路由器。 |
AzureMonitor |
出站 | 用于将监视和指标数据记录到 Azure Monitor。 仅当尚未保护工作区的 Azure Monitor 时,才需要。 此出站也用于记录支持事件的信息。 |
VirtualNetwork |
出站 | 当虚拟网络或对等虚拟网络中存在专用终结点时所需。 |
备注
仅作为安全边界的服务标记是不够的。 对于租户级隔离,请尽可能使用专用终结点。
若要允许安装用于训练和部署的 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 与 Azure 机器学习配合使用,请添加出站 FQDN 规则以允许流量流向以下主机:
备注
这不是 Internet 上所有 Visual Studio Code 资源所需的完整主机列表,这只是最常使用的主机列表。 例如,如果需要访问 GitHub 存储库或其他主机,则必须标识并添加该方案所需的主机。 有关主机名的完整列表,请参阅 Visual Studio Code 中的网络连接。
主机名 | 用途 |
---|---|
*.vscode.dev *.vscode-unpkg.net *.vscode-cdn.net *.vscodeexperiments.azureedge.net default.exp-tas.com |
需要访问 vscode.dev(Web 版 Visual Studio Code) |
code.visualstudio.com |
是下载和安装 VS Code 桌面所必需的。 VS Code Web 不需要此主机。 |
update.code.visualstudio.com *.vo.msecnd.net |
用于通过设置脚本检索安装在计算实例上的 VS Code 服务器组件。 |
marketplace.visualstudio.com vscode.blob.core.chinacloudapi.cn *.gallerycdn.vsassets.io |
是下载并安装 VS Code 扩展所必需的。 这些主机可实现与计算实例的远程连接。 有关详细信息,请参阅在 VS Code 中管理 Azure 机器学习资源。 |
vscode.download.prss.microsoft.com |
用于 Visual Studio Code 的下载 CDN |
如果计划使用 Azure 机器学习批处理终结点进行部署或使用 ParallelRunStep,请添加出站专用终结点规则,以允许流量流向默认存储帐户的以下子资源:
queue
table
- Azure AI 服务的专用终结点
- Azure AI 搜索的专用终结点
如果计划将 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 地址访问,请使用以下操作:
添加一个出站专用终结点规则,以允许流向 Azure 机器学习工作区的流量。 此规则允许在托管虚拟网络中创建的计算实例访问工作区。
提示
创建工作区期间无法添加此规则,因为工作区尚不存在。
启用公用网络对工作区的访问。 有关详细信息,请参阅启用公用网络访问。
将 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
- 适用于 MariaDB 的 Azure 数据库
- Azure Database for PostgreSQL 单一服务器
- Azure Database for PostgreSQL 灵活服务器
- 适用于 MySQL 的 Azure 数据库
- Azure API 管理
创建专用终结点时,需要提供终结点连接到的资源类型和子资源。 某些资源有多个类型和子资源。 有关详细信息,请参阅什么是专用终结点。
为 Azure 机器学习依赖项资源(例如 Azure 存储、Azure 容器注册表和 Azure 密钥保管库)创建专用终结点时,该资源可以位于不同的 Azure 订阅中。 但是,资源必须与 Azure 机器学习工作区位于同一租户中。
重要
为 Azure 机器学习托管 VNet 配置专用终结点时,只有进行第一个计算时创建或强制进行托管 VNet 预配时,才会创建专用终结点。 有关强制实施托管 VNet 预配的详细信息,请参阅 为无服务器 Spark 作业配置。
Azure 机器学习托管虚拟网络功能是免费的。 但是,需要为托管虚拟网络使用的以下资源付费:
Azure 专用链接 - 用于保护托管虚拟网络与 Azure 资源之间的通信的专用终结点依赖于 Azure 专用链接。 有关定价详细信息,请参阅 Azure 专用链接定价。
FQDN 出站规则 - FQDN 出站规则使用 Azure 防火墙实现。 如果使用出站 FQDN 规则,则 Azure 防火墙费用将添加到账单中。 默认情况下会使用标准版本的 Azure 防火墙。 有关选择基本版本的信息,请参阅选择 Azure 防火墙版本。
重要
在添加出站 FQDN 规则之前,不会创建防火墙。 有关定价的详细信息,请参阅 Azure 防火墙定价,并查看标准版的价格。
- 启用工作区的托管虚拟网络隔离(允许 Internet 出站或仅允许已批准的出站)后,将无法将其禁用。
- 托管虚拟网络使用专用终结点连接来访问专用资源。 不能同时为 Azure 资源(例如存储帐户)提供专用终结点和服务终结点。 我们建议在所有情况下都使用专用终结点。
- 删除工作区时,将删除托管虚拟网络。
- 确保 Azure 机器学习资源和资源组上没有范围锁。 可能会阻止与托管虚拟网络相关的内部操作。
- 数据外泄保护会自动为唯一已批准的出站模式启用。 如果将其他出站规则(例如添加到 FQDN),Microsoft 无法保证不会将数据外泄到这些出站目标。
- 使用托管虚拟网络时,不支持在工作区以外的区域创建计算群集。
- Azure 机器学习托管虚拟网络不支持 Kubernetes 和附加的 VM。
- 使用 FQDN 出站规则会增加托管虚拟网络的成本,因为 FQDN 规则使用 Azure 防火墙。 有关详细信息,请参阅定价。
- FQDN 出站规则仅支持端口 80 和 443。
- 如果计算实例位于托管网络中,并且未配置任何公共 IP,请使用
az ml compute connect-ssh
命令通过 SSH 连接到该实例。 - 使用托管虚拟网络时,无法在自定义虚拟网络内部署计算资源。 只能在托管虚拟网络内创建计算资源。
- 如果将托管网络配置为“仅允许已批准的出站”,则无法使用 FQDN 规则访问 Azure 存储帐户。 必须改用专用终结点。
- 确保将为自定义策略中的托管虚拟网络创建的 Azure 托管专用终结点加入允许列表。
如果你有一个现有的工作区,并且想要为其启用托管虚拟网络,目前没有现有托管计算资源支持的迁移路径。 需要删除所有现有托管计算资源,并在启用托管虚拟网络后重新创建它们。 以下列表包含必须删除和重新创建的计算资源:
- 计算群集
- 计算实例
- 托管联机终结点