你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Foundry 项目时,可以使用专用链接来保护与项目的通信。 本文介绍如何使用专用链接与项目建立专用连接。
使用基于中心的项目时,需要考虑两个网络隔离方面:
- 网络隔离以访问 Azure AI Foundry 中心:这正是本文的重点内容。 本文介绍如何使用专用链接与中心及其默认资源建立专用连接。
- 中心和项目中计算资源的网络隔离:这包括计算实例、无服务器计算、以及托管在线端点。 有关详细信息,请参阅“ 为 Azure AI Foundry 中心配置托管网络 ”一文。
在资源组中获得几个中心默认资源。 需要配置以下网络隔离配置:
- 禁用中心默认资源(例如 Azure 存储、Azure Key Vault、Azure 容器注册表)的公用网络访问。
- 建立与中心默认资源的专用终结点连接。 需要有用于默认存储帐户的 blob 和文件专用终结点。
- 如果存储帐户是专用的,则分配角色以允许访问。
先决条件
必须具有用于创建专用终结点的现有 Azure 虚拟网络。
重要
不建议对 VNet 使用 172.17.0.0/16 IP 地址范围。 这是本地 Docker 网桥网络使用的默认子网范围。
在添加专用终结点之前禁用专用终结点的网络策略。
创建使用专用终结点的 Foundry 项目
创建新项目时,请使用以下步骤创建项目。
在 Azure 门户中,搜索 Azure AI Foundry 并选择“ 创建资源”。
配置 “基本信息 ”选项卡后,选择“ 网络 ”选项卡,然后选择 “已禁用 ”选项。
在 “专用终结点 ”部分中,选择“ + 添加专用终结点”。
浏览表单以创建专用终结点时,请务必:
- 从 “基本信息”中选择与虚拟网络相同的 区域 。
- 在“虚拟网络”窗体中,选择要连接到的虚拟网络和子网。
继续浏览表单以创建项目。 到达 “审阅 + 创建 ”选项卡时,请查看设置,然后选择“ 创建 ”以创建项目。
创建使用专用终结点的中心
如果要创建新中心,请使用以下方法创建中心(Azure 门户或 Azure CLI)。 上述每种方法都需要一个现有的虚拟网络:
- Azure 门户
- Azure CLI
注释
本文档仅介绍专用链接的配置。 如需在门户中创建安全中心的相关演练,请参阅在 Azure 门户中创建安全中心。
向项目添加专用终结点
在 Azure 门户中,选择项目。
在页面左侧,选择 “资源管理”、“ 网络”,然后选择“ 专用终结点连接 ”选项卡。选择 “+ 专用终结点”。
浏览表单以创建专用终结点时,请务必:
- 从 “基本信息”中选择与虚拟网络相同的 区域 。
- 在“虚拟网络”窗体中,选择要连接到的虚拟网络和子网。
使用所需的任何其他网络配置填充表单后,使用 “查看 + 创建 ”选项卡查看设置,然后选择“ 创建 ”以创建专用终结点。
将专用终结点添加到中心
使用以下方法之一将专用终结点添加到现有中心:
从项目中删除专用终结点
可以删除项目的一个或多个专用终结点。 删除专用终结点将从与终结点关联的 Azure 虚拟网络中删除项目。 删除专用终结点可能会阻止项目访问该虚拟网络中的资源,或者虚拟网络中的资源无法访问工作区。 例如,虚拟网络不允许访问公共 Internet 或从公共 Internet 进行访问。
警告
删除项目的专用终结点 不会使其可公开访问。 若要使项目可公开访问,请使用 “启用公共访问” 部分中的步骤。
若要删除专用终结点,请使用以下信息:
- 在 Azure 门户中,选择项目。
- 在页面左侧,选择 “资源管理”、“ 网络”,然后选择“ 专用终结点连接 ”选项卡。
- 选择要删除的终结点,然后选择“删除”。
删除专用终结点
可以移除中心的一个或所有专用终结点。 移除专用终结点将从与该终结点关联的 Azure 虚拟网络中移除中心。 移除专用终结点可能会防止中心访问该虚拟网络中的资源,或防止虚拟网络中的资源访问工作区。 例如,虚拟网络不允许访问公共 Internet 或从公共 Internet 进行访问。
警告
移除中心的专用终结点不会使其可公开访问。 若要使中心可供公开访问,请使用启用公共访问部分中的步骤。
若要删除专用终结点,请使用以下信息:
启用公共访问
在某些情况下,你可能希望允许某人通过公共终结点而不是通过虚拟网络连接到安全项目。 或者,可能需要从虚拟网络中删除项目并重新启用公共访问。
重要
启用公共访问不会删除任何存在的专用终结点。 专用终结点连接到的虚拟网络后面的组件之间的所有通信仍然是安全的。 除了通过任何专用终结点进行专用访问以外,还可实现仅对项目的公共访问。
在 Azure 门户中,选择项目。
在页面左侧,选择 “资源管理”、“ 网络”,然后选择“ 防火墙和虚拟网络 ”选项卡。
选择 “所有网络”,然后选择“ 保存”。
启用公共访问
在某些情况下,可能希望允许某人通过公共终结点(而不是通过虚拟网络)连接到受保护的中心。 或者,你可能想要从虚拟网络中删除工作区,并重新启用公共访问。
重要
启用公共访问不会删除任何存在的专用终结点。 专用终结点连接到的虚拟网络后面的组件之间的所有通信仍然是安全的。 除了通过任何专用终结点进行专用访问以外,还可实现仅对中心的公共访问。
若要启用公共访问,请使用以下步骤:
仅从 Internet IP 范围启用公共访问(预览版)
通过创建 IP 网络规则,你可以使用 IP 网络规则允许从特定的公共 Internet IP 地址范围访问你的受保护中心。 每个 Azure AI Foundry 中心最多支持 200 条规则。 这些规则向基于 Internet 的特定服务和本地网络授予访问权限,阻止一般 Internet 流量。 此功能目前处于预览状态。
警告
- 如果要允许从特定公共 Internet IP 地址范围访问终结点,请启用终结点的公共网络访问标志。
- 只能使用 IPv4 地址。
- 如果工作区设置从所选 IP 启用更改为已禁用或已启用,则 IP 范围会被重置。
- 在 Azure 门户中,选择 Azure Machine AI Foundry 中心。
- 从页面左侧,选择“网络”,然后选择“公共访问”选项卡。
- 选择“已从所选 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 地址。
专用存储配置
如果存储帐户是专用的(使用专用终结点与项目通信),请执行以下步骤:
我们的服务需要使用“允许受信任服务列表中的 Azure 服务访问此存储帐户”和以下托管标识配置来在专用存储帐户中读取/写入数据。 启用 Azure AI 服务和 Azure AI 搜索的系统分配托管标识,然后为每个托管标识配置基于角色的访问控制。
角色 托管标识 资源 目的 参考文献 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 项目托管标识的每个专用终结点。将
Storage Blob Data reader
角色分配给开发人员。 此角色允许他们从存储帐户中读取数据。验证项目与存储帐户的连接是否使用 Microsoft Entra ID 进行身份验证。 要查看连接信息,请转到“管理中心”,选择“连接资源”,然后选择存储帐户连接。 如果凭据类型不是 Entra ID,请选择铅笔图标以更新连接,并将“身份验证方法”设置为“Microsoft Entra ID”。
有关保护操场聊天的信息,请参阅安全地使用操场聊天。
代理服务的端到端安全网络
创建 Foundry 资源和 Foundry 项目以生成代理时,建议使用以下网络体系结构进行最安全的端到端配置:
将每个资源的公用网络访问 (PNA) 标志设置为
Disabled
。 禁用公共网络访问会限制从公共互联网到资源的入站访问。为标准代理所需的每个 Azure 资源创建一个专用终结点:
- Azure 存储帐户
- Azure AI 搜索资源
- Cosmos DB 资源
- Azure AI Foundry 资源
若要访问资源,建议使用 Bastion VM、ExpressRoute 或 VPN 连接到 Azure 虚拟网络。 通过这些选项,可以连接到隔离的网络环境。
代理服务的网络注入
网络安全标准代理通过代理客户端的网络注入支持完全网络隔离和数据外泄保护。 为此,代理客户端将网络注入到 Azure 虚拟网络中,允许严格控制数据移动,并通过将流量保留在定义的网络边界内来防止数据外泄。 仅标准代理部署支持网络注入,不支持轻型代理部署。
此外,仅通过 BICEP 模板部署(而不是通过 UX、CLI 或 SDK)支持受网络保护的标准代理。 通过模板部署 Foundry 资源和代理后,无法更新代理服务的委托子网。 这在 Foundry 资源网络选项卡中可见,可在其中查看和复制子网,但无法更新或删除子网委派。 若要更新委托的子网,必须重新部署受网络保护的标准代理模板。
有关代理服务的安全网络的详细信息,请参阅 如何将虚拟网络与 Azure AI 代理服务 一起使用文章。
DNS 配置
在一个虚拟网络中使用专用终结点的客户端与使用公共终结点的客户端使用相同的 Azure AI Foundry 资源和项目连接字符串。 DNS 解析会通过专用链接自动地将来自虚拟网络的连接路由到 Azure AI Foundry 的资源和项目。
为私有端点应用 DNS 更改
创建专用终结点时,Azure AI Foundry 资源的 DNS CNAME 资源记录将更新为具有前缀 privatelink
的子域中的别名。 默认情况下,Azure 还会创建一个与 privatelink
子域对应的专用 DNS 区域,其中包含专用终结点的 DNS A 资源记录。 有关详细信息,请参阅 什么是 Azure 专用 DNS。
使用专用终结点从虚拟网络外部解析终结点 URL 时,会将其解析为 Azure AI Foundry 资源的公共终结点。 从托管专用终结点的虚拟网络解析时,它会解析为专用终结点的专用 IP 地址。
此方法允许对托管专用终结点的虚拟网络中的客户端和虚拟网络外部的客户端使用相同的连接字符串访问 Azure AI Foundry 资源。
如果在网络上使用自定义 DNS 服务器,客户端必须能够将 Azure AI 服务资源终结点的完全限定的域名 (FQDN) 解析为专用终结点 IP 地址。 配置 DNS 服务器以将专用链接子域委托到虚拟网络的专用 DNS 区域。
小提示
使用自定义或本地 DNS 服务器时,应将 DNS 服务器配置为将 privatelink
子域中的 Azure AI 服务资源名称解析为专用终结点 IP 地址。 将 privatelink
子域委托给虚拟网络的专用 DNS 区域。 或者,配置 DNS 服务器的 DNS 区域并添加 DNS A 记录。
有关配置自己的 DNS 服务器以支持专用终结点的详细信息,请使用以下文章:
授予对受信任的 Azure 服务的访问权限
可向一部分受信任的 Azure 服务授予对 Azure OpenAI 的访问权限,同时继续对其他应用使用网络规则。 然后,这些受信任的服务使用托管标识对 Azure OpenAI 资源进行身份验证。 下表列出了哪些服务可以访问 Azure OpenAI,前提是这些服务的托管标识具有适当的角色分配。
服务 | 资源提供者名称 |
---|---|
Azure AI 搜索 | Microsoft.Search |
可以通过使用 REST API 或 Azure 门户创建网络规则例外来授予对受信任的 Azure 服务的网络访问权限。
有关 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
- 用于标准部署
若要查找 A 记录的专用 IP 地址,请参阅 Azure 机器学习自定义 DNS 一文。
注释
项目工作区重复使用关联的中心工作区的 FQDN。 没有理由为项目工作区 GUID 配置单独的条目。
局限性
- 如果使用的是 Mozilla Firefox,则在尝试访问中心的专用终结点时可能会遇到问题。 此问题可能与 Mozilla Firefox 中基于 HTTPS 的 DNS 有关。 建议使用 Microsoft Edge 或 Google Chrome。
- 仅通过 Bicep 模板部署支持网络安全代理(自带虚拟网络)。 有关网络保护的代理部署的详细信息,请参阅 如何将虚拟网络与 Azure AI 代理服务配合使用。
- 要部署的网络保护的代理只是标准代理,而不是轻型代理。
- 代理服务或 Foundry 项目不支持托管的虚拟网络。