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

如何为 Azure AI Foundry 配置专用链接

注释

提供了一个以 Foundry 项目为中心的备用版本: 如何为 Azure AI Foundry 项目配置专用链接

使用基于中心的项目时,需要考虑两个网络隔离方面:

  • 网络隔离以访问 Azure AI Foundry 中心:这正是本文的重点内容。 本文介绍如何使用专用链接与中心及其默认资源建立专用连接。
  • 中心和项目中计算资源的网络隔离:这包括计算实例、无服务器计算、以及托管在线端点。 有关详细信息,请参阅“ 为 Azure AI Foundry 中心配置托管网络 ”一文。

Azure AI Foundry 中心网络隔离示意图。

在资源组中获得几个中心默认资源。 需要配置以下网络隔离配置:

  • 禁用中心默认资源(例如 Azure 存储、Azure Key Vault、Azure 容器注册表)的公用网络访问。
  • 建立与中心默认资源的专用终结点连接。 需要有用于默认存储帐户的 blob 和文件专用终结点。
  • 如果存储帐户是专用的,则分配角色以允许访问。

先决条件

  • 必须具有用于创建专用终结点的现有 Azure 虚拟网络。

    重要

    不建议对 VNet 使用 172.17.0.0/16 IP 地址范围。 这是本地 Docker 网桥网络使用的默认子网范围。

安全地连接到 Foundry

若要连接到受虚拟网络保护的 Foundry,请使用以下方法之一:

  • Azure VPN 网关 - 通过公共 Internet 上的专用连接将本地网络连接到虚拟网络。 有两种 VPN 网关类型可供选择:

    • 点到站点:每台客户端计算机使用 VPN 客户端连接到虚拟网络。
    • 站点到站点:VPN 设备将虚拟网络连接到本地网络。
  • ExpressRoute - 本地网络通过连接提供商经由专用连接来连接到 Azure。

  • Azure Bastion - 在虚拟网络中创建 Azure 虚拟机(跳转盒),然后从浏览器中通过 Azure Bastion 使用 RDP 或 SSH 连接到该虚拟机。 将 VM 用作开发环境。 由于它位于虚拟网络中,因此可以直接访问工作区。

创建使用专用终结点的中心

如果要创建新中心,请使用以下方法创建中心(Azure 门户或 Azure CLI)。 上述每种方法都需要一个现有的虚拟网络:

注释

本文档仅介绍专用链接的配置。 如需在门户中创建安全中心的相关演练,请参阅在 Azure 门户中创建安全中心

  1. 在 Azure 门户中,搜索 Azure AI Foundry。 从左侧菜单中选择AI 中心,然后选择+ 创建,最后选择中心

    Azure AI Foundry 门户的屏幕截图。

  2. 配置 “基本信息 ”和 “存储 ”选项卡后,选择“ 入站访问 ”选项卡,然后选择“ + 添加”。 出现提示时,输入专用终结点的 Azure 虚拟网络和子网的数据。 选择“区域”时,请选择与虚拟网络相同的区域。

    “入站访问”选项卡的屏幕截图,其中禁用了公用网络访问。

  3. 选择“ 出站访问 ”选项卡,然后选择最符合需求的 网络隔离 选项。

    “创建中心”的屏幕截图,其中包含用于设置网络隔离信息的选项。

将专用终结点添加到中心

使用以下方法之一将专用终结点添加到现有中心:

  1. Azure 门户中选择您的中心。

  2. 从页面左侧,选择“设置”,“网络”,然后选择“专用终结点连接”选项卡。选择 “+ 专用终结点”

    “专用终结点连接”选项卡的屏幕截图。

  3. 浏览表单以创建专用终结点时,请务必:

    • “基本信息”中选择与虚拟网络相同的 区域
    • 在“资源”中,选择 amlworkspace 作为目标子资源
    • 在“虚拟网络”窗体中,选择要连接到的虚拟网络和子网。
  4. 使用所需的任何其他网络配置填充表单后,使用 “查看 + 创建 ”选项卡查看设置,然后选择“ 创建 ”以创建专用终结点。

删除专用终结点

可以移除中心的一个或所有专用终结点。 移除专用终结点将从与该终结点关联的 Azure 虚拟网络中移除中心。 移除专用终结点可能会防止中心访问该虚拟网络中的资源,或防止虚拟网络中的资源访问工作区。 例如,虚拟网络不允许访问公共 Internet 或从公共 Internet 进行访问。

警告

移除中心的专用终结点不会使其可公开访问。 若要使中心可供公开访问,请使用启用公共访问部分中的步骤。

若要删除专用终结点,请使用以下信息:

  1. Azure 门户中选择您的中心。

  2. 从页面左侧,选择“设置”,“网络”,然后选择“专用终结点连接”选项卡

  3. 选择要删除的终结点,然后选择“删除”。

    所选专用终结点的屏幕截图,其中突出显示了“删除”选项。

启用公共访问

在某些情况下,可能希望允许某人通过公共终结点(而不是通过虚拟网络)连接到受保护的中心。 或者,你可能想要从虚拟网络中删除工作区,并重新启用公共访问。

重要

启用公共访问不会删除任何存在的专用终结点。 专用终结点连接到的虚拟网络后面的组件之间的所有通信仍然是安全的。 除了通过任何专用终结点进行专用访问以外,还可实现仅对中心的公共访问。

若要启用公共访问,请使用以下步骤:

  1. Azure 门户中选择您的中心。
  2. 从页面左侧,选择“网络”,然后选择“公共访问”选项卡。
  3. 选择从所有网络启用,然后选择保存

仅从 Internet IP 范围启用公共访问(预览版)

通过创建 IP 网络规则,你可以使用 IP 网络规则允许从特定的公共 Internet IP 地址范围访问你的受保护中心。 每个 Azure AI Foundry 中心最多支持 200 条规则。 这些规则向基于 Internet 的特定服务和本地网络授予访问权限,阻止一般 Internet 流量。 此功能目前处于预览状态。

警告

  • 如果要允许从特定公共 Internet IP 地址范围访问终结点,请启用终结点的公共网络访问标志。
  • 只能使用 IPv4 地址。
  • 如果工作区设置从所选 IP 启用更改为已禁用已启用,则 IP 范围会被重置。
  1. Azure 门户中,选择 Azure Machine AI Foundry 中心。
  2. 从页面左侧,选择“网络”,然后选择“公共访问”选项卡。
  3. 选择“已从所选 IP 地址中启用”,输入地址范围,然后选择“保存”

还可以使用 Azure 机器学习 Python SDK 中的 Workspace 类来定义允许入站访问的 IP 地址:

class Workspace(Resource):
    """Azure ML workspace.
    :param public_network_access: Whether to allow public endpoint connectivity
        when a workspace is private link enabled.
    :type public_network_access: str
    :param network_acls: The network access control list (ACL) settings of the workspace.
    :type network_acls: ~azure.ai.ml.entities.NetworkAcls
 
    def __init__(
        self,
        *,
        public_network_access: Optional[str] = None,
        network_acls: Optional[NetworkAcls] = None,

IP 网络规则的限制

以下限制适用于 IP 地址范围:

  • IP 网络规则仅适用于公共 Internet IP 地址。

    IP 规则中不允许使用保留 IP 地址范围,例如以 10、172.16 到 172.31 和 192.168 开头的专用地址。

  • 您必须使用CIDR 表示法,如 16.17.18.0/24 的形式或单个 IP 地址(例如 16.17.18.19),来提供允许的互联网地址范围。

  • 仅支持使用 IPv4 地址配置存储防火墙规则。

  • 启用此功能后,可以使用任何客户端工具(如 Curl)测试公共终结点,但门户中的终结点测试工具不受支持。

  • 创建中心后,只能设置 AI Foundry 中心的 IP 地址。

专用存储配置

如果存储帐户是专用的(使用专用终结点与项目通信),请执行以下步骤:

  1. 我们的服务需要使用“允许受信任服务列表中的 Azure 服务访问此存储帐户”和以下托管标识配置来在专用存储帐户中读取/写入数据。 启用 Azure AI 服务和 Azure AI 搜索的系统分配托管标识,然后为每个托管标识配置基于角色的访问控制。

    角色 托管标识 Resource 目的 Reference
    Reader Azure AI Foundry 项目 存储帐户的专用终结点 从专用存储帐户读取数据。
    Storage File Data Privileged Contributor Azure AI Foundry 项目 存储帐户 读取/写入提示流数据。 提示流文档
    Storage Blob Data Contributor Azure AI 服务 存储帐户 从输入容器读取,将预处理结果写入到输出容器。 Azure OpenAI 文档
    Storage Blob Data Contributor Azure AI 搜索 存储帐户 读取 Blob 和写入知识存储 搜索文档

    小窍门

    存储帐户可以有多个专用终结点。 需要将 Reader 角色分配给 Azure AI Foundry 项目托管标识的每个专用终结点。

  2. Storage Blob Data reader 角色分配给开发人员。 此角色允许他们从存储帐户中读取数据。

  3. 验证项目与存储帐户的连接是否使用 Microsoft Entra ID 进行身份验证。 要查看连接信息,请转到“管理中心”,选择“连接资源”,然后选择存储帐户连接。 如果凭据类型不是 Entra ID,请选择铅笔图标以更新连接,并将“身份验证方法”设置为“Microsoft Entra ID”

有关保护操场聊天的信息,请参阅安全地使用操场聊天

DNS 配置

有关 DNS 转发配置,请参阅 Azure 机器学习自定义 DNS 一文。

如果需要配置没有 DNS 转发的自定义 DNS 服务器,请为所需的 A 记录使用以下模式。

  • <AI-HUB-GUID>.workspace.<region>.cert.api.azureml.ms

  • <AI-HUB-GUID>.workspace.<region>.api.azureml.ms

  • ml-<workspace-name, truncated>-<region>-<AI-HUB-GUID>.<region>.notebooks.azure.net

    注释

    可能会截断此 FQDN 的工作区名称。 截断是为了使 ml-<workspace-name, truncated>-<region>-<workspace-guid> 的字符小于或等于 63 个。

  • <instance-name>.<region>.instances.azureml.ms

    注释

    • 只能从虚拟网络内访问计算实例。
    • 此 FQDN 的 IP 地址不是计算实例的 IP 地址。 请改用工作区专用终结点的专用 IP 地址(*.api.azureml.ms 条目的 IP。)
  • <instance-name>-22.<region>.instances.azureml.ms - 仅供 az ml compute connect-ssh 命令用于连接到托管虚拟网络中的计算。 如果不使用托管网络或 SSH 连接,则不需要。

  • <managed online endpoint name>.<region>.inference.ml.azure.com - 由托管联机终结点使用

  • models.ai.azure.com - 用于无服务器 API 部署

若要查找 A 记录的专用 IP 地址,请参阅 Azure 机器学习自定义 DNS 一文。

注释

项目工作区重复使用关联的中心工作区的 FQDN。 没有理由为项目工作区 GUID 配置单独的条目。

局限性

  • 如果使用的是 Mozilla Firefox,则在尝试访问中心的专用终结点时可能会遇到问题。 此问题可能与 Mozilla Firefox 中基于 HTTPS 的 DNS 有关。 建议使用 Microsoft Edge 或 Google Chrome。

后续步骤