Compartilhar via

配置Azure AI services虚拟网络

Azure AI services提供分层安全模型。 此模型使您能够将 Azure AI 服务帐户安全地限制为特定的网络子集。 配置网络规则后,只有通过指定网络集请求数据的应用程序才能访问该帐户。 可以使用 request 筛选限制对资源的访问,该筛选允许仅源自指定 IP 地址、IP 范围或来自 Azure 虚拟网络子网列表的请求。

当网络规则生效时,访问Azure AI services资源的应用程序需要授权。 支持使用 Microsoft Entra ID 凭据或有效的 API 密钥进行授权。

重要

默认情况下,为Azure AI services帐户启用防火墙规则会阻止传入的数据请求。 为了让请求得以通过,需要满足以下任一条件:

  • 请求来源于一个在目标 Azure AI 服务账户允许的子网列表中的 Azure 虚拟网络内运行的服务。 需要将源自虚拟网络的终结点请求设置为 Azure AI 服务帐户的 自定义子域
  • 请求应来自允许的 IP 地址列表。

阻止的请求包括来自其他Azure服务、Azure门户和日志记录和指标服务的请求。

注意

建议使用 Azure Az PowerShell 模块与Azure交互。 若要开始,请参阅 Install Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 Migrate Azure PowerShell从 AzureRM 迁移到 Az

场景

若要保护Azure AI services资源,应首先配置一个规则,以默认拒绝对所有网络(包括 Internet 流量)的流量的访问。 然后,应该配置相应的规则,以便向来自特定虚拟网络的流量授予访问权限。 借助此配置,可为应用程序生成安全网络边界。 你还可以配置规则以向来自所选公共互联网 IP 地址范围的流量授予访问权限,从而支持来自特定互联网或本地客户端的连接。

对 Azure AI 服务的所有网络协议,包括 REST 和 WebSocket,强制实施网络规则。 若要使用Azure测试控制台等工具访问数据,必须配置显式网络规则。 可以将网络规则应用于现有Azure AI services资源,或者在创建新的Azure AI services资源时。 一旦应用网络规则,就会对所有请求强制实施这些规则。

支持的区域和服务产品

在 Azure AI 服务可用的区域支持虚拟网络。 Azure AI services支持服务标记用于网络规则配置。 下面列出的服务包含在 CognitiveServicesManagement 服务标记中。

  • 异常检测器
  • 内容审查器
  • 自定义视觉
  • 文档智能
  • Language Understanding (LUIS)
  • 个性化体验创建服务
  • 语音服务
  • 语言
  • 翻译

注意

如果使用 LUIS、语音或语言,则 CognitiveServicesManagement 标记仅允许使用 SDK 或 REST API 使用服务。 若要从虚拟网络访问和使用 LUIS 门户、Speech Studio 或 Language Studio,需要使用以下标记:

  • AzureActiveDirectory
  • AzureFrontDoor.Frontend
  • AzureResourceManager
  • CognitiveServicesManagement
  • CognitiveServicesFrontEnd
  • Storage(仅限 Speech Studio)

更改默认网络访问规则

默认情况下,Azure AI services资源接受来自任何网络上的客户端的连接。 若要限制为仅允许选定网络访问,必须先更改默认操作。

警告

对网络规则进行更改可能会影响应用程序连接到Azure AI services的能力。 将默认网络规则设置为“拒绝”,会阻止对数据的所有访问,除非同时应用了可“授予”访问权限的特定网络规则

在将默认规则更改为拒绝访问之前,务必先使用网络规则向所有许可网络授予访问权限。 如果允许列出本地网络的 IP 地址,请确保添加本地网络中所有可能的传出公共 IP 地址。

管理默认网络访问规则

可以通过Azure门户、PowerShell 或Azure CLI管理Azure AI services资源的默认网络访问规则。

  1. 转到你想保护的 Azure AI 服务资源。

  2. 选择“资源管理”将其展开,然后选择“网络”。 若要默认拒绝访问,请在“防火墙和虚拟网络”下,选择“所选网络和专用终结点”

    “网络”页面的屏幕截图,其中显示已选择“所选网络和专用终结点”。

    在没有配置“虚拟网络”或“地址范围”的情况下,仅使用此设置,所有访问将被彻底拒绝。 拒绝所有访问时,尝试访问 Azure AI 服务资源的请求将不被允许。 Azure门户、Azure PowerShell或Azure CLI仍可用于配置Azure AI services资源。

  3. 要允许来自所有网络的流量,请选择“所有网络”。

    “网络”页面的屏幕截图,其中显示已选择“所有网络”。

  4. 选择保存以应用更改。

允许从虚拟网络进行访问

可以将Azure AI services资源配置为仅允许从特定子网进行访问。 允许的子网可能属于同一订阅中的虚拟网络,也可能属于不同订阅中的虚拟网络。 其他订阅可以属于不同的 Microsoft Entra 租户。 当子网属于其他订阅时,还需要为该订阅注册 Microsoft.CognitiveServices 资源提供程序。

为虚拟网络中的 Azure AI 服务启用 service endpoint。 服务终结点通过最佳路径将流量从虚拟网络路由到 Azure AI 服务。 有关详细信息,请参阅 Virtual Network 服务终结点

子网和虚拟网络的标识也随每个请求进行传输。 然后,管理员可以为Azure AI services资源配置网络规则,以允许来自虚拟网络中特定子网的请求。 这些网络规则授予访问权限的客户端必须继续满足Azure AI services资源的授权要求才能访问数据。

每个Azure AI services资源最多支持 100 个虚拟网络规则,这些规则可与 IP 网络规则结合使用。 有关详细信息,请参阅本文后面的允许从 Internet IP 范围进行访问

设置所需的权限

若要将虚拟网络规则应用于Azure AI services资源,需要为要添加的子网提供适当的权限。 所需的权限是默认的“参与者”角色,或“认知服务参与者”角色。 所需权限还可以添加到自定义角色定义中。

授予访问权限的Azure AI services资源和虚拟网络可能位于不同的订阅中,包括属于不同Microsoft Entra租户的订阅。

注意

目前仅通过 PowerShell、Azure CLI 和 REST API 支持对属于不同Microsoft Entra租户的虚拟网络中的子网的访问权限的规则配置。 可以在Azure门户中查看这些规则,但无法对其进行配置。

配置虚拟网络规则

可以通过Azure门户、PowerShell 或Azure CLI管理Azure AI services资源的虚拟网络规则。

要通过现有网络规则向虚拟网络授予访问权限,请执行以下操作:

  1. 转到你想保护的 Azure AI 服务资源。

  2. 选择“资源管理”将其展开,然后选择“网络”

  3. 确认选择了“所选网络和专用终结点”

  4. 在“允许从其访问”下,选择“添加现有虚拟网络”

    “网络”页面的屏幕截图,其中突出显示已选择“所选网络和专用终结点”和“添加现有虚拟网络”。

  5. 选择“虚拟网络”和“子网”选项,然后选择“启用” 。

    “添加网络”对话框的屏幕截图,可通过该对话框输入虚拟网络和子网。

    注意

    如果以前未为所选的虚拟网络和子网事先配置 Azure AI 服务的服务终结点,则可以将其配置为此操作的一部分。

    目前,只有属于同一Microsoft Entra租户的虚拟网络才能在创建规则期间进行选择。 若要授予对属于另一租户的虚拟网络中的子网的访问权限,请使用 PowerShell、Azure CLI 或 REST API。

  6. 选择保存以应用更改。

若要创建新的虚拟网络并向其授予访问权限,请执行以下操作:

  1. 在与上一过程相同的页面上,选择“添加新的虚拟网络”

    “网络”页面的屏幕截图,其中突出显示已选择“所选网络和专用终结点”和“添加新的虚拟网络”。

  2. 提供创建新的虚拟网络所需的信息,然后选择“创建”。

    显示“创建虚拟网络”对话框的屏幕截图。

  3. 选择保存以应用更改。

删除虚拟网络或子网规则的方法:

  1. 在与上一过程相同的页面上,选择“...(更多选项)”以打开虚拟网络或子网的上下文菜单,然后选择“删除”

    显示用于删除虚拟网络的选项的屏幕截图。

  2. 选择保存以应用更改。

重要

请务必将默认规则设置为“拒绝”,否则网络规则不会有任何效果

允许从 Internet IP 范围进行访问

可以将Azure AI services资源配置为允许从特定公共 Internet IP 地址范围进行访问。 此配置允许访问特定的服务和本地网络,有效地阻止了常规网络流量。

可以通过使用 CIDR 格式 (RFC 4632) 来指定允许的互联网地址范围,其形式可以是 192.168.0.0/16,也可以是单个 IP 地址,例如 192.168.0.1

提示

不支持使用 /31/32 前缀大小的小型地址范围。 请使用单独的 IP 地址规则配置这些范围。

IP 网络规则仅适用于公共 Internet IP 地址。 IP 规则不允许使用为专用网络保留的 IP 地址范围。 专用网络包括以 10.*172.16.* - 172.31.*192.168.* 开头的地址。 有关详细信息,请参阅专用地址空间 (RFC 1918)

目前仅支持 IPv4 地址。 每个Azure AI services资源最多支持 100 个 IP 网络规则,这些规则可与 虚拟网络规则结合使用。

配置来自本地网络的访问

若要使用 IP 网络规则从本地网络授予对 Azure AI services 资源的访问权限,请标识网络使用的面向 Internet 的 IP 地址。 若要获得帮助,请联系网络管理员。

如果在本地使用 Azure ExpressRoute 以进行 Microsoft 对等互连,则需要标识 NAT IP 地址。 有关详细信息,请参阅 什么是 Azure ExpressRoute

在 Microsoft 对等互连中,使用的 NAT IP 地址由客户或服务提供商提供。 若要允许访问服务资源,必须在资源 IP 防火墙设置中允许这些公共 IP 地址。

管理 IP 网络规则

可以通过Azure门户、PowerShell 或Azure CLI管理Azure AI services资源的 IP 网络规则。

  1. 转到你想保护的 Azure AI 服务资源。

  2. 选择“资源管理”将其展开,然后选择“网络”

  3. 确认选择了“所选网络和专用终结点”

  4. 在“防火墙和虚拟网络”下,找到“地址范围”选项。 若要向 Internet IP 范围授予访问权限,请输入 IP 地址或地址范围 (采用 CIDR 格式)。 只接受有效的公共 IP (非保留) 地址。

    “网络”页面的屏幕截图,其中突出显示已选择“所选网络和专用终结点”和“地址范围”。

    若要删除某个 IP 网络规则,请选择该地址范围旁边的垃圾桶 图标。

  5. 选择保存以应用更改。

重要

请务必将默认规则设置为“拒绝”,否则网络规则不会有任何效果

使用专用终结点

可以对 Azure AI 服务资源使用 专用终结点,以允许虚拟网络上的客户端通过 Azure 私有链接 安全地访问数据。 专用终结点使用虚拟网络地址空间中的 IP 地址来连接您的 Azure AI 服务资源。 虚拟网络上客户端与资源实体之间的网络流量会通过虚拟网络,以及Azure主干网络上的专用链接,从而消除公共互联网的暴露风险。

Azure AI 服务资源的专用终结点使你可以:

  • 通过将防火墙配置为阻止 Azure AI服务公共终结点上的所有连接,来保护 Azure AI服务资源。
  • 阻止数据从虚拟网络泄露,从而提高虚拟网络的安全性。
  • 使用 Azure VPN Gateway 或通过专用对等连接的 ExpressRoute,从连接到虚拟网络的本地网络安全地连接到 Azure AI services 资源。

了解专用终结点

专用终结点是虚拟网络中Azure资源的特殊网络接口。 为Azure AI services资源创建专用终结点可提供虚拟网络中的客户端与资源之间的安全连接。 从虚拟网络的 IP 地址范围为专用终结点分配 IP 地址。 专用终结点与 Azure AI 服务之间的连接使用安全的专用链接。

虚拟网络中的应用程序可以通过专用终结点无缝连接到服务。 连接使用与其他连接相同的连接字符串和授权机制。 语音服务例外,它需要单独的终结点。 有关详细信息,请查看本文中的语音服务专用终结点。 专用终结点可用于Azure AI services资源支持的所有协议,包括 REST。

可以在使用服务终结点的子网中创建专用终结点。 子网中的客户端可以使用专用终结点连接到一个Azure AI 服务资源,同时使用服务终结点访问其他资源。 有关详细信息,请参阅 Virtual Network 服务终结点

在虚拟网络中为Azure AI services资源创建专用终结点时,Azure向Azure AI services资源所有者发送同意请求以供审批。 如果请求创建专用终结点的用户也是资源的所有者,则此许可请求会自动获得批准。

Azure AI 服务资源所有者可以通过 Private 终结点连接 选项卡来管理 Azure 门户中 Azure AI 服务资源的同意请求和专用终结点。

指定专用终结点

创建专用终结点时,请指定它连接到的 Azure AI 服务资源。 有关创建专用终结点的详细信息,请参阅:

连接到专用终结点

警告

来自客户端的请求必须将 自定义子域 指定为您的 Azure AI 服务资源的专用终结点的基 URL。

使用专用终结点的虚拟网络客户端与连接到公共终结点的客户端一样,共用相同的 Azure AI 服务资源连接字符串。 语音服务例外,它需要单独的终结点。 有关详细信息,请参阅本文中的将专用终结点与语音服务结合使用。 DNS 解析会通过专用链接自动将虚拟网络中的连接路由到 Azure 人工智能服务资源。

默认情况下,Azure创建一个 private DNS 区域附加到虚拟网络,其中包含专用终结点所需的更新。 如果使用自己的 DNS 服务器,则可能需要对 DNS 配置进行更多更改。 有关专用终结点可能需要的更新,请参阅本文中的为专用终结点应用 DNS 更改

将专用终结点与语音服务结合使用

请参阅通过专用终结点使用语音服务

应用专用终结点的 DNS 更改

创建专用终结点时,Azure AI services资源的 DNS CNAME 资源记录将更新为具有前缀 privatelink 的子域中的别名。 默认情况下,Azure还会创建一个与 privatelink 子域对应的专用 DNS 区域,以及专用终结点的 DNS A 资源记录。 有关详细信息,请参阅 什么是 Azure Private DNS

当您在虚拟网络外部使用专用终结点解析终结点 URL 时,它会解析为 Azure AI 服务资源的公共终结点。 从托管专用终结点的虚拟网络进行解析时,终结点 URL 解析为专用终结点的 IP 地址。

此方法允许虚拟网络中托管的私有终结点以及虚拟网络外部的客户端使用相同的 connection string 访问 Azure AI 服务资源。

如果在网络上使用自定义 DNS 服务器,客户端必须能够将Azure AI services资源终结点的完全限定域名(FQDN)解析为专用终结点 IP 地址。 配置 DNS 服务器以将专用链接子域委托到虚拟网络的专用 DNS 区域。

提示

使用自定义或本地 DNS 服务器时,应将 DNS 服务器配置为将 privatelink 子域中Azure AI services资源名称解析为专用终结点 IP 地址。 将 privatelink 子域委托给虚拟网络的专用 DNS 区域。 或者,在 DNS 服务器上配置 DNS 区域并添加 DNS A 记录。

有关配置自己的 DNS 服务器以支持专用终结点的详细信息,请参阅以下资源:

定价

有关定价详细信息,请参阅 Azure Private Link 定价

后续步骤