如何让Azure AI Search连接带专用终结点的私有Cosmos for MongoDB?
解决Azure AI Search与私有Cosmos for MongoDB的连接问题
问题原因
当你在Azure门户操作Azure AI Search添加数据源时,请求实际来自Azure管理平面的公网IP,而非AI Search的专用终结点。由于你的CosmosDB已禁用公网访问,仅允许专用终结点流量,因此该公网请求被防火墙拦截,触发403错误。
临时测试解决方案(快速验证流程)
- 登录CosmosDB门户,进入「防火墙和虚拟网络」设置
- 在「允许访问的IP地址」区域,添加错误提示中显示的公网IP(即发起请求的Azure管理平面IP)
- 完成Azure AI Search数据源配置后,立即移除该IP,恢复CosmosDB的私有访问限制
长期生产级解决方案
1. 配置Azure AI Search为纯私有访问
- 进入Azure AI Search的「网络」设置,将「公网访问」设置为「禁用」,仅允许通过专用终结点访问
- 确保AI Search的专用终结点与CosmosDB的专用终结点处于同一个虚拟网络和子网(或已配置VNet对等互联)
2. 确保网络连通性
- 检查虚拟网络的路由表,允许AI Search子网与CosmosDB子网之间的流量
- 确认网络安全组(NSG)未阻止两者之间的通信端口:Cosmos for MongoDB默认使用27017端口,需确保该端口的入站/出站规则允许
3. 使用API或Terraform配置数据源
由于Azure门户操作依赖公网管理平面,建议直接通过以下方式配置:
- Azure AI Search REST API:在虚拟网络内的机器上调用API,使用CosmosDB的私有DNS名称或私有IP地址作为连接目标
- Terraform自动化:在Terraform配置中:
- 禁用AI Search的公网访问:
public_network_access_enabled = false - 配置AI Search的专用终结点:使用
azurerm_private_endpoint资源关联到AI Search服务 - 配置CosmosDB的专用终结点:
public_network_access = "Disabled" - 定义数据源时,使用CosmosDB的私有连接字符串(或通过专用终结点的DNS名称构建连接字符串)
- 禁用AI Search的公网访问:
内容的提问来源于stack exchange,提问作者ban_ana
相关产品推荐
相关产品推荐

