Azure VNet对等互联下Web App访问Cosmos DB私有端点403报错求助
Web App访问Cosmos DB走公网触发403的原因与解决办法
为什么流量会走公网?
- 你当前使用的是Cosmos DB的公共账户端点(例如
your-account.documents.azure.com),该域名默认会被解析为公网IP。即使Web App已集成到vnet1、且vnet1与vnet2对等互联,DNS解析仍会指向公网地址,导致出站流量走公网通道,触发Cosmos DB防火墙的拦截规则,返回403错误。 - Cosmos DB的私有端点仅在访问其对应的私有DNS记录时才会引导流量走VNet内部路径。如果继续使用公共端点域名,系统不会自动切换到私有端点的流量路径。
解决办法
1. 配置私有DNS解析,让Web App解析到Cosmos DB私有IP
- Cosmos DB创建私有端点时,Azure会自动生成对应的私有DNS区域(如
privatelink.documents.azure.com),并在其中添加指向私有端点IP的A记录。需要将vnet1(Web App所在虚拟网络)关联到这个私有DNS区域:- 进入Azure门户的私有DNS区域页面,找到对应
privatelink.documents.azure.com的区域,添加vnet1作为关联网络。 - 完成关联后,vnet1内的Web App解析Cosmos DB公共账户域名时,会自动指向私有端点的私有IP,流量将通过VNet对等互联传输。
- 进入Azure门户的私有DNS区域页面,找到对应
- 也可以直接在Web App的连接字符串中,将Cosmos DB端点替换为私有域名
your-account.privatelink.documents.azure.com,确保流量走私有路径。
2. 验证VNet对等互联与NSG规则
- 确认vnet1与vnet2的对等互联是双向建立的(双方都完成了对等连接的接受)。
- 检查vnet1的NSG出站规则:允许访问vnet2的地址空间(或Cosmos DB私有端点的具体IP)的443端口流量。
- 检查vnet2的NSG入站规则:允许来自vnet1地址空间的443端口流量到Cosmos DB私有端点IP。
3. 确认Cosmos DB的访问配置
- 进入Cosmos DB账户的防火墙与虚拟网络设置,确认已启用允许通过私有端点访问,且目标私有端点状态为「已连接」。
- 确保防火墙规则没有仅限制特定公网IP访问,避免拦截VNet内部流量。
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

