다음을 통해 공유

在 Azure AI 搜索中配置 IP 防火墙规则以允许索引器连接

Azure AI 搜索在索引器处理内容和技能期间会进行外部、出站调用,还会在处理包含对大型语言模型(LLM)调用的代理检索请求时进行这些调用。 如果目标 Azure 资源使用 IP 防火墙规则筛选传入调用,则必须在防火墙中创建一个入站规则,以允许来自 Azure AI 搜索的请求。

本文介绍如何查找搜索服务的 IP 地址,然后在 Azure 存储帐户上配置入站 IP 规则。 在特定于 Azure 存储的情况下,此方法也适用于使用 IP 防火墙规则进行数据访问的其他 Azure 资源,如 Azure Cosmos DB 和 Azure SQL。

先决条件

  • Azure AI 搜索服务 (基本层或更高版本)。 无法在免费层上设置防火墙规则。
  • 受防火墙保护的现有目标 Azure 资源。
  • 搜索服务的参与者所有者角色。

注意

  • 仅适用于 Azure 存储。 若要定义 IP 防火墙规则,存储帐户和搜索服务必须位于不同的区域中。 如果设置不允许不同的区域,请尝试使用 受信任的服务异常资源实例规则

  • 对于从索引器到任何受支持 Azure 资源的专用连接,我们建议设置共享专用链接。 专用连接会穿越 Microsoft 主干网络,并完全绕过公共 Internet。

获取搜索服务 IP 地址

  1. 登录到 Azure 门户 并选择搜索服务。

  2. 在左窗格中,选择“ 概述”。

  3. 复制搜索服务的完全限定域名(FQDN),应如下所示 my-search-service.search.azure.cn

    搜索服务“概述”页的屏幕截图。

  4. 通过在命令提示符中对 FQDN 执行 nslookup(或 ping)以查找搜索服务的 IP 地址。 请确保删除 https:// 前缀。

  5. 复制 IP 地址,以便在下一步中使用。 在以下示例中,复制的 IP 地址为 150.0.0.1

    nslookup contoso.search.azure.cn
    Server:  server.example.org
    Address:  10.50.10.50
    
    Non-authoritative answer:
    Name:    <name>
    Address:  150.0.0.1
    aliases:  contoso.search.azure.cn
    

    在此示例中的“非权威答案”(本示例中为 150.0.0.1)下的字段中的 IP 地址 Address 是防火墙规则所需的值。

允许从客户端 IP 地址进行访问

向搜索服务推送索引和查询请求的客户端应用程序必须在 IP 范围内表示。 通常可以在 Azure 上通过对服务的 FQDN 执行 ping 操作来确定 IP 地址(例如,ping <your-search-service-name>.search.azure.cn 将返回搜索服务的 IP 地址)。

添加客户端 IP 地址,以便从当前计算机的 Azure 门户进行访问。

  1. 在 Azure 门户中,选择搜索服务。

  2. 在左窗格中,选择 “设置>网络”。

  3. “防火墙和虚拟网络 ”选项卡上,将 公用网络访问权限 设置为 所选 IP 地址

    允许从选定的 IP 地址进行公用网络访问的 Azure 门户选项截图。

  4. IP 防火墙下,选择 “添加客户端 IP 地址”。

    在 Azure 门户中添加客户端 IP 地址的选项的屏幕截图。

  5. 保存更改。

获取 Azure 门户 IP 地址

如果在 Azure 门户中使用 旧导入数据向导 创建从 Azure Cosmos DB 或 Azure SQL 拉取的索引器,则必须向 Azure 门户 IP 地址授予对 SQL Azure 虚拟机的入站访问权限。 有关详细信息,请参阅 “允许从 Azure 门户 IP 地址访问”。

建议使用 导入数据(新)向导,该向导没有此限制。

获取“AzureCognitiveSearch”服务标记的 IP 地址

还需要创建入站规则,允许来自多租户执行环境的请求。 此环境由 Azure 管理,用于卸载处理密集型作业,如果不卸载,搜索服务可能会无法处理这些作业。 此部分说明如何获取创建此入站规则所需的 IP 地址范围。

为支持 Azure AI 搜索的每个区域定义 IP 地址范围。 指定完整范围,以确保来自多租户执行环境的请求成功。

可以从 AzureCognitiveSearch 服务标记获取此 IP 地址范围。

  1. 使用发现 API可下载的 JSON 文件。 假设搜索服务是 Azure 公有云,应下载 Azure 公共 JSON 文件

  2. 打开 JSON 文件并搜索“AzureCognitiveSearch”。 对于 ChinaNorth2 中的搜索服务,多租户索引器执行环境的 IP 地址为:

    {
    "name": "AzureCognitiveSearch.ChinaNorth2",
    "id": "AzureCognitiveSearch.ChinaNorth2",
    "properties": {
       "changeNumber": 1,
       "region": "chinanorth2",
       "regionId": 38,
       "platform": "Azure",
       "systemService": "AzureCognitiveSearch",
       "addressPrefixes": [
          "20.42.129.192/26",
          "40.91.93.84/32",
          "40.91.127.116/32",
          "40.91.127.241/32",
          "51.143.104.54/32",
          "51.143.104.90/32",
          "2603:1030:c06:1::180/121"
       ],
       "networkFeatures": null
    }
    },
    

    复制区域数组中的所有 addressPrefixes IP 地址。

  3. 对于具有“/32”后缀的 IP 地址,删除“/32”(40.91.93.84/32)在规则定义中变为 40.91.93.84。 所有其他 IP 地址可以逐字使用。

  4. 复制该区域的所有 IP 地址。

将 IP 地址添加到 IP 防火墙规则

获取必要的 IP 地址后,设置入站规则。 向存储帐户的防火墙规则添加 IP 地址范围的最简单方法是通过 Azure 门户添加。

  1. 在 Azure 门户中,选择你的存储帐户。

  2. 在左窗格中,选择 “安全 + 网络>网络”。

  3. 在“ 公共访问 ”选项卡上,选择“ 管理”。

    用于在 Azure 门户中管理公用网络访问的按钮的屏幕截图。

  4. “公用网络访问范围”下, 从所选网络中选择“启用”。

    用于在 Azure 门户中启用从所选网络进行访问的选项的屏幕截图。

  5. 添加之前获取的 IP 地址,然后选择“ 保存”。 应该为搜索服务、Azure 门户(可选)和区域“AzureCognitiveSearch”服务标记的所有 IP 地址设置规则。

    防火墙规则更新可能需要 5 到 10 分钟。 更新后,索引器可以访问防火墙后面的存储帐户数据。

使用令牌身份验证补充网络安全性

防火墙和网络安全性是防止未经授权访问数据和操作的第一步。 下一步应该是授权。

我们建议使用基于角色的访问,在这种情况下,Microsoft Entra ID 用户和组将分配到确定对你的服务拥有读写访问权限的角色。 有关内置角色的说明以及创建自定义角色的说明,请参阅 使用基于角色的访问控制连接到 Azure AI 搜索

如果你不需要基于密钥的身份验证,我们建议禁用 API 密钥并专门使用角色分配。