共用方式為

为Azure AI Search配置网络访问和防火墙规则

本文介绍如何限制对搜索服务公共终结点的网络访问。 可以将 IP 防火墙规则配置为仅允许特定的 IP 地址、范围或子网,并可以选择为受信任的Azure服务启用例外。

若要阻止 公共终结点的所有数据平面访问,请改用 专用终结点

先决条件

在 Azure 门户中配置网络访问

  1. Azure 门户中,转到你的搜索服务。

  2. 在“设置”下,选择最左侧窗格中的“网络”。 如果未看到此选项,请检查服务层级。 基本层和更高层上提供了网络选项。

  3. 选择所选 IP 地址。 除非要配置专用终结点,否则请避免使用“禁用”选项

    截图显示 Azure 门户中的网络访问选项。

  4. IP 防火墙下,选择 “添加客户端 IP 地址”。 此步骤为个人设备的公共 IP 地址向 Azure AI Search 创建入站规则。

    截图显示如何在 Azure 门户中配置 IP 防火墙。

    小窍门

    门户使用您的客户端 IP 地址来建立直接连接。 如果客户端位于允许的 IP 列表中,则可以使用所有门户功能,无需额外配置。

  5. 为将向搜索服务发送请求的其他设备和服务添加其他客户端 IP 地址。

    以 CIDR 格式指定 IP 地址和范围。 CIDR 表示法的示例是 8.8.8.0/24,它表示范围从 8.8.8.0 到 8.8.8.255 的 IP。

    若要获取Azure服务的公共 IP 地址,请参阅 Azure IP 范围和服务标记。 如果搜索客户端托管在 Azure 函数中,请参阅 Azure 函数中的 IP 地址

  6. Exceptions 下,选择受信任的服务列表中的 Allow Azure 服务以访问此搜索服务

    显示网络配置页上的异常复选框的屏幕截图。

    信任的服务列表包括:

    • Azure Machine Learning的 Microsoft.MachineLearningServices

    启用此例外时,您需要依赖于 Microsoft Entra ID 身份验证、托管标识和角色分配。 在搜索服务上具有有效角色分配的任何 Azure AI 服务工具或 AML 功能都可以绕过防火墙。 有关详细信息,请参阅授予对受信任服务的访问权限

  7. 保存所做更改。

为Azure AI Search服务启用 IP 访问控制策略后,会拒绝从允许的 IP 地址范围列表之外的计算机向数据平面发出的所有请求。

请求来源于不在允许列表中的 IP 地址时,将返回一个不包含其他详细信息的通用“403 禁止”响应。

重要

这些更改可能需要几分钟才能生效。 请至少等待 15 分钟,然后再排查与网络配置相关的任何问题。

授予对受信任Azure服务的访问权限

是否选择了受信任的服务例外? 如果是,则搜索服务会允许来自受信任Azure资源的请求和响应,而无需检查 IP 地址。 受信任的资源必须具有托管标识(系统或用户分配的托管标识,但通常是系统分配的托管标识)。 受信任的资源必须在 Azure AI Search 上具有角色分配,授予其对数据和操作的权限。

Azure AI Search的受信任服务列表包括:

  • 用于 Azure AI 服务的 Microsoft.CognitiveServices
  • Azure Machine Learning的 Microsoft.MachineLearningServices

此网络异常的工作流是从其他 AML 功能发出的请求,转向 Azure AI Search。

受信任的资源必须具有托管标识

若要为 Azure AI 服务和 Azure 机器学习设置托管标识,请执行以下步骤:

若要为Azure AI services资源设置托管标识,请执行以下操作:

  1. 查找您的 Azure AI 服务资源

  2. 在左窗格中,选择 “资源管理>标识”。

  3. 系统分配 设置为 开启

受信任的资源必须具有角色分配

Azure资源具有托管标识后,在 Azure AI Search上分配角色以授予对数据和操作的权限。

受信任的服务用于矢量化工作负载:从文本和图像内容生成矢量,并将有效负载发送回搜索服务,以执行查询或编制索引。 来自受信任的服务的连接用于将有效负载传送到 Azure AI 搜索。

  1. Azure 门户中,转到你的搜索服务。

  2. 在最左侧窗格中,在“访问控制(IAM)”下选择“身份”

  3. 依次选择“添加”、“添加角色分配”

  4. 在“角色”页上

    • 选择“搜索索引数据参与者”,以加载包含由嵌入模型生成的矢量的搜索索引。 如果要在编制索引期间使用集成向量化,请选择此角色。
    • 或者,选择“搜索索引数据读取器”,以便在查询时提供包含由嵌入模型生成的向量的查询。 查询中使用的嵌入不会写入索引,因此不需要写入权限。
  5. 选择下一步

  6. 成员页面上,选择托管标识选择成员

  7. 按系统分配的托管标识进行筛选,然后选择您的 Azure AI 服务资源的托管标识。

注意

本文介绍用于允许请求进入搜索服务的受信任例外情况,而 Azure AI Search 本身也在其他 Azure 资源的受信任服务列表中。 具体而言,您可以使用受信任服务的例外情况来允许从 Azure AI Search 连接到 Azure Storage。

限制和注意事项

配置网络访问时,请考虑以下事项:

  • 某些工作流需要访问公共终结点。 具体而言,Azure 门户中的 导入数据向导连接到内置(托管)示例数据,并通过公共终结点嵌入模型。 有关详细信息,请参阅 导入向导中的安全连接

  • 如果您正在使用示例数据进行概念验证测试的早期阶段,可以推迟网络访问控制,直到您真正需要它们的时候再实施。

  • 网络规则仅适用于针对搜索服务公共终结点的数据平面操作(例如创建或查询索引,及 搜索 REST API 描述的所有其他操作)。

  • 有关服务管理相关的控制平面操作,请参阅 Azure Resource Manager 支持的网络保护措施。

后续步骤

通过防火墙允许请求后,必须对请求进行身份验证和授权。 可以使用两个选项:

  • 基于密钥的身份验证,此方法中,请求会提供管理员或查询 API 密钥。 此选项为默认值。

  • 使用Microsoft Entra ID的基于角色的访问控制,其中调用方是搜索服务中某个安全角色的成员。 这是最安全的选项。 它使用Microsoft Entra ID对Azure AI Search进行身份验证和角色分配,以授予对数据和操作的权限。