你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
注意
Azure AI 搜索可通过Azure门户、REST API 和Azure SDK获取。 它也是 Foundry IQ 的基础;Foundry IQ 是一个托管式知识层,可将企业内容转化为供 Microsoft Foundry 门户中的智能体使用的、可复用且具备权限感知能力的知识库。
网络安全边界是围绕平台即服务(PaaS)资源的逻辑网络边界,并且你将其部署在虚拟网络之外。 它建立一个外围,用于控制对 Azure AI 搜索、Azure 存储 等资源的公用网络访问,并在 Microsoft Foundry Models 中建立 Azure OpenAI。
本文介绍如何将 Azure AI 搜索服务加入网络安全外围,以控制对搜索服务的网络访问。 加入网络安全外围后,你就可以:
- 记录对搜索服务的所有访问,并将其与同一外围中的其他 Azure 资源放在一起。
- 阻止将任何数据从搜索服务泄漏到外围以外的其他服务。
- 允许使用网络安全外围的入站和出站访问功能访问你的搜索服务。
可以在 Azure 门户中向网络安全外围添加搜索服务,如本文所述。 或者,使用 搜索管理 REST API 查看和同步配置设置。
先决条件
一个现有的网络安全外围。 可以创建一个与搜索服务关联的外围。
Azure AI 搜索、任何区域中的任何可计费层。
Azure 角色分配:在边界(或其资源组或订阅)上具有网络安全边界参与者角色,以创建和管理边界、配置文件、访问规则和关联。 在搜索服务上拥有搜索服务参与者(或参与者)角色,以将其与边界关联。 有关详细信息,请参阅什么是网络安全外围?
如果计划使用索引器,请使用 系统或用户分配的托管标识 配置搜索服务,并在每个数据源上为标识分配适当的数据平面角色。
局限性
支持的索引器数据源目前仅限于 Azure Blob 存储、Azure Cosmos DB for NoSQL 和 Azure SQL 数据库。
与 Azure PaaS 进行数据检索的索引器连接是主要的外围用例。 对于其他流量, 请配置入站和出站规则。 有关对 Microsoft Foundry 资源的出站调用,请参阅 对 Microsoft Foundry 资源的出站访问。 共享专用链接 是特定资源类型的替代方法。
对 Microsoft Foundry 资源的出站访问权限
包括搜索服务和 Microsoft Foundry 资源的网络安全外围为两者之间的出站呼叫提供专用通道。 由于外围在资源和网络层运行,因此调用 Foundry 资源的每个搜索服务功能都使用相同的允许路径,包括:
所有调用 Foundry 资源的技能,例如 Azure OpenAI 嵌入技能、GenAI 提示技能、内容理解技能 以及其他用于 AI 增强和计费的 Foundry 资源技能。
在集成向量化期间的查询时使用的Azure OpenAI 向量器。
知识智能体向 Foundry 模型部署发出的智能体检索调用。
启用专用频道:
将搜索服务和 Foundry 资源都添加到同一网络安全边界中,或分别添加到允许二者之间通信的不同安全边界中。
如果这两个资源位于同一安全边界内,并且搜索服务使用托管标识向 Foundry 资源进行身份验证,则无需添加出站规则。 边界内部流量被隐式允许。 如果这些资源位于不同的边界中,或者搜索服务使用 API 密钥进行身份验证,请在与你的搜索服务关联的边界上添加一条出站 FQDN 访问规则,并将 Foundry 资源的主机名设为目标。 有关配置 Foundry 端的指南,请参阅 将 Microsoft Foundry 添加到网络安全外围。
在两个阶段验证访问权限:
在学习模式下使用外围,运行调用 Foundry 资源的技能组、矢量化查询或智能体检索调用。 查看外围日志以确认预期的访问路径。
切换到强制模式并重新运行相同的操作。 在索引器执行历史记录和外围的出站允许日志中确认成功。
对类型为 Microsoft.CognitiveServices 的 AIServices 资源 (Microsoft Foundry) 的网络安全边界 (NSP) 支持现已正式发布。 NSP 对类型为 OpenAI (Azure OpenAI 服务) 的资源的支持处于公共预览状态。 有关当前支持列表,请参阅 载入的专用链接资源。
作为替代方法,仍支持与 Foundry 资源的共享专用链接。
将搜索服务分配到网络安全外围
将搜索服务与外围关联,以便所有索引和查询流量都受外围规则的约束。
Tip
对于自动化,请使用 搜索管理 REST API 而不是门户。 有关详细信息,请参阅 使用 REST API 管理 Azure AI 搜索服务。
在 Azure 门户中,为订阅查找网络安全外围服务。
在左侧窗格中,选择“设置”“关联的资源”>。
选择“添加”“将资源与现有配置文件关联”。>
对于“配置文件”,请选择你在创建网络安全外围时创建的配置文件。
选择“添加”,然后选择搜索服务。
选择左下角的“关联”以创建关联。
从网络安全外围删除搜索服务
若要将搜索服务与边界解除关联,请:
转到 Azure 门户中的网络安全外围资源。
在左侧窗格中,选择“设置”“关联的资源”>。
在表中查找搜索服务,选择行末尾的三个点,然后选择“ 删除关联”。
确认删除。 删除关联后,外围规则不再应用于搜索服务,
publicNetworkAccess搜索服务上的设置将再次控制入站流量。
网络安全外围访问模式
网络安全外围支持关联资源的两种不同的访问模式:
| 模式 | Description |
|---|---|
| 学习模式 | 这是默认访问模式。 在学习模式下,网络安全边界会记录所有发往搜索服务的流量;如果该边界处于强制模式,这些流量将被拒绝。 此访问模式允许网络管理员在实施访问规则之前了解搜索服务的现有访问模式。 |
| 已强制执行模式 | 在强制模式下,网络安全外围会记录并拒绝访问规则未显式允许的所有流量。 |
网络安全外围和搜索服务网络设置
publicNetworkAccess 设置决定搜索服务与网络安全边界的关联。
在学习模式下,
publicNetworkAccess设置控制对资源的公共访问。在强制模式下,网络安全外围规则将覆盖该
publicNetworkAccess设置。 例如,如果publicNetworkAccess设置为enabled的搜索服务与强制模式下的网络安全外围相关联,则对该搜索服务的访问仍然受网络安全外围访问规则的控制。
更改网络安全外围访问模式
转到 Azure 门户中的网络安全外围资源。
在左侧窗格中,选择“设置”“关联的资源”>。
在表中查找您的搜索服务。
选择行末尾的三个点,然后选择“更改访问模式”。
选择所需的访问模式,然后选择“应用”。
启用日志记录网络访问
转到 Azure 门户中的网络安全外围资源。
在左侧窗格中,选择“监视”>“诊断设置”。
选择“添加诊断设置”。
为
diagnostic输入任意名称,例如 。在“日志”下,选择“allLogs”。 “allLogs”可确保记录对网络安全外围内资源的所有入站和出站网络访问。
在“目标详细信息”下,选择“存档到存储帐户”或“发送到 Log Analytics 工作区”。 存储帐户必须与网络安全外围位于同一区域中。 可以使用现有存储帐户,也可以创建新的存储帐户。 Log Analytics 工作区可以位于不同于网络安全外围使用的区域。 你也可以选择其他任何适用的目的地。
选择“保存”以创建诊断设置并开始记录网络访问。
若要验证日志记录是否已启用,请向搜索服务发送流量(例如,执行查询)。 在大约 10 分钟内,在Log Analytics中查询
NSPAccessLogs表,或检查存储帐户中的相应insights-logs-*容器。
读取网络访问日志
网络安全外围日志将传送到 诊断设置中选择的目标。 最常见的目标是Log Analytics工作区和存储帐户。
Log Analytics 工作区
该 NSPAccessLogs 表包含每个日志类别的所有日志,例如 NspPublicInboundPerimeterRulesAllowed。 每个日志都包含与日志类别匹配的网络安全外围网络访问的记录。
下面是 NspPublicInboundPerimeterRulesAllowed 日志格式的示例:
| 列名称 | 含义 | 示例值 |
|---|---|---|
| 结果描述 | 网络访问操作的名称。 | POST /indexes/my-index/docs/search |
| 个人资料 | 与搜索服务关联的网络安全外围。 | defaultProfile |
| ServiceResourceId | 搜索服务的资源 ID。 | search-service-resource-id |
| 匹配的规则 | 日志匹配的规则的 JSON 说明。 | { "accessRule": "IP firewall" } |
| 源IP地址 | 入站网络访问的源 IP(如果适用)。 | 192.0.2.1 |
| AccessRuleVersion | 用于强制实施网络访问规则的网络安全外围访问规则的版本。 | 0 |
存储帐户
存储帐户具有每个日志类别的容器,例如 insights-logs-nsppublicinboundperimeterrulesallowed。 容器中的文件夹结构与网络安全外围的资源 ID 和获取日志的时间相匹配。 JSON 日志的每行都包含与日志类别匹配的网络安全外围网络访问记录。
例如,入境周界规则允许类别日志使用以下格式:
"properties": {
"ServiceResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/network-security-perimeter/providers/Microsoft.Search/searchServices/network-security-perimeter-search",
"Profile": "defaultProfile",
"MatchedRule": {
"AccessRule": "myaccessrule"
},
"Source": {
"IpAddress": "192.0.2.1",
}
}
为搜索服务添加访问规则
网络安全外围配置文件指定允许或拒绝通过外围访问的规则。
在外围内,所有资源可在网络级别相互访问。 你仍需要设置身份验证和授权,但在网络级别,接受来自外围内的连接请求。
对于网络安全外围以外的资源,必须指定入站和出站访问规则。 入站规则指定允许哪些连接进入,出站规则指定允许哪些请求发出。
搜索服务接受来自 Microsoft Foundry 门户以及发送索引或查询请求的任何应用的入站请求。 搜索服务在基于索引器的索引编制和技能组执行期间发送出站请求。 本部分介绍如何为 Azure AI 搜索方案设置入站和出站访问规则。
注意
当搜索服务使用托管标识和基于 Microsoft Entra 的 角色分配进行身份验证时,同一网络安全边界内的资源之间的流量会在网络层面被隐式允许。 如果搜索服务使用 API 密钥进行身份验证,则外围无法将流量标识为外围内,因此即使两个资源位于同一外围中,也必须添加显式入站和出站访问规则。
添加入站访问规则
入站访问规则可以允许 Internet 和外围外部的资源连接到外围内部的资源。
网络安全外围支持两种类型的入站访问规则:
IP 地址范围。 IP 地址或范围必须采用无类别域际路由 (CIDR) 格式。 CIDR 表示法的示例是 192.0.2.0/24,它表示范围从 192.0.2.0 到 192.0.2.255 的 IP。 这种类型的规则允许来自范围内任何 IP 地址的入站请求。
订阅。 此类型的规则允许使用订阅中的任何托管身份进行身份验证的入站访问。 规则仅控制网络路径;调用方仍需要在搜索服务上Azure RBAC 角色分配。
若要在 Azure 门户中添加入站访问规则,请执行以下操作:
转到 Azure 门户中的网络安全外围资源。
在左侧窗格中,选择“设置”“配置文件”。>
选择与网络安全外围配合使用的配置文件。
在左侧窗格中,选择“设置”“入站访问规则”>。
选择 添加 。
输入或选择下列值:
设置 值 规则名称 入站访问规则的名称,例如 MyInboundAccessRule。源类型 有效值为“IP 地址范围”或“订阅”。 允许的源 如果选择了“IP 地址范围”,请输入允许从中入站访问的 CIDR 格式的 IP 地址范围。 下载 Azure IP 范围和服务标记文件。 如果选择了“订阅”,请使用你要从中允许入站访问的订阅。 选择添加以创建入站访问规则。
若要验证该规则,请在测试配置文件中将该关联切换为强制模式。 确认匹配请求显示在日志类别中
NspPublicInboundPerimeterRulesAllowed,且未匹配的请求显示在类别中NspPublicInboundPerimeterRulesDenied。
添加出站访问规则
搜索服务在基于索引器的索引编制和技能组执行期间发出出站调用。 如果索引器的数据源、用于 Foundry Tools 计费技能 的附加 Microsoft Foundry 资源或自定义技能逻辑位于网络安全边界之外,请创建一条出站访问规则,以允许搜索服务建立该连接。
在安全外围中,索引器可以连接到Azure Blob 存储、Azure Cosmos DB NoSQL和Azure SQL 数据库。 如果索引器使用其他数据源,则需要出站访问规则来支持该连接。
网络安全外围支持基于目标的完全限定域名 (FQDN) 的出站访问规则。 例如,可以允许与网络安全外围关联的任何服务对 FQDN(例如 mystorageaccount.blob.core.windows.net)进行出站访问。
若要在 Azure 门户中添加出站访问规则,请执行以下操作:
转到 Azure 门户中的网络安全外围资源。
在左侧窗格中,选择“设置”“配置文件”。>
选择与网络安全外围配合使用的配置文件。
在左侧窗格中,选择“设置”“出站访问规则”。>
选择 添加 。
输入或选择下列值:
设置 值 规则名称 出站访问规则的名称,例如 MyOutboundAccessRule。目标类型 保留为“FQDN”。 允许的目标 输入允许对其进行出站访问的 FQDN 的逗号分隔列表。 选择“添加”以创建出站访问规则。
若要验证该规则,请在测试配置文件中将该关联切换为强制模式。 确认匹配的出站请求出现在
NspPublicOutboundPerimeterRulesAllowed日志类别中。
通过网络安全外围测试连接
若要通过网络安全外围测试连接,需要访问具有 Internet 连接的本地计算机或 Azure VM 上的 Web 浏览器。
将网络安全外围关联更改为强制模式,以便对搜索服务的网络访问开始实施网络安全外围要求。
选择客户端:
对于本地计算机,获取公共 IP 地址。
对于Azure VM,请使用 private link 或 在 Azure 门户中查找 IP 地址。
为该 IP 地址创建 入站访问规则 以允许访问。
在Azure门户中,打开搜索服务并查看其索引。
预期成功: 索引列表将加载,可以运行测试查询。 入站 IP 规则正常工作。
如果出现 403 或“公用网络访问已禁用”错误:您的客户端 IP 或 Azure 门户不在入站规则的允许范围内。 检查 入站访问规则。
排查常见问题
| 症状 | 可能的原因 | 缓解措施 |
|---|---|---|
| 切换到强制模式后,索引器将失败。 | 搜索服务标识在数据源上缺少数据平面角色,或者该数据源在该边界内不受支持。 | 确认搜索服务使用托管标识,并在数据源上拥有所需角色。 对于不支持的数据源,请添加 出站访问规则。 |
| 拒绝对 Foundry 资源的技能、矢量化或智能体检索调用。 | Foundry 资源位于不同的外围,或者搜索服务使用 API 密钥进行身份验证,因此通道不是隐式的。 | 将这两个资源添加到同一边界并使用托管标识,或者添加一条以 Foundry 资源的主机名为目标的出站 FQDN 规则。 有关更多信息,请参阅 对 Microsoft Foundry 资源的出站访问。 |
| 诊断日志不会出现在Log Analytics或存储中。 | 数据引入延迟,或者存储帐户与边界不在同一区域。 | 生成流量后最多等待 10 分钟,然后查询 NSPAccessLogs 表或检查匹配 insights-logs-* 的存储容器。 验证存储帐户区域。 |
| 强制执行后,将拒绝通过门户访问搜索服务。 | 您的客户端 IP 未被任何入站规则涵盖。 | 为客户端 IP 添加 入站访问规则 ,或者在完成配置时还原为学习模式。 |
查看和管理网络安全外围配置
使用 网络安全外围配置 REST API 查看和协调搜索服务上的外围配置。
例如,列出搜索服务上的当前外围配置:
az rest --method get \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service-name>/networkSecurityPerimeterConfigurations?api-version=2025-05-01"
如果配置与边界不同步,请触发重新协调:
az rest --method post \
--url "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service-name>/networkSecurityPerimeterConfigurations/<association-name>/reconcile?api-version=2025-05-01"
使用搜索管理 REST API 的最新稳定版本。 有关详细信息,请参阅 使用 REST API 管理 Azure AI 搜索服务。