如何配置NSG服务标签允许Dynamics365访问VNET集成的CosmosDB
可行解决方案汇总
方案1:使用Azure Private Link配置私有访问
- 为目标CosmosDB账号创建私有终结点(Private Endpoint),部署到你现有VNet的指定子网中,同时禁用CosmosDB的公网访问权限
- 按照Dynamics365官方的VNet集成配置流程,将你的Dynamics365实例关联到同一VNet(或通过对等VNet打通网络),配置完成后Dynamics365的出站请求会通过私有网络直接访问CosmosDB的私有IP,不需要在NSG中放行公网IP段
- 此方案的安全等级最高,全程没有公网流量暴露,不需要依赖服务标签或IP白名单配置
方案2:使用Dynamics365固定出站IP配置白名单
- 每一个Dynamics365在线实例都有固定的出站公网IP地址,你可以在Dynamics365管理中心的「实例属性」页面直接查询到当前实例的所有出站IP段,不需要使用全量Azure公网IP段
- 将查询到的Dynamics365实例出站IP逐个添加到CosmosDB的防火墙白名单中,同时在子网NSG的入站规则中仅放行这些IP段的443端口访问请求即可
- 注意每次Dynamics365实例进行版本大更后需要重新核对出站IP是否有变更,及时更新白名单规则
方案3:通过中间层服务中转请求
- 你可以在已接入VNet的Azure函数(Azure Function)或应用服务(App Service)中封装CosmosDB的读写接口,将该服务的访问地址配置到Dynamics365的自定义数据提供商中
- 该中间层服务可以通过Azure AD身份验证校验请求来源是否为你的Dynamics365实例,校验通过后再转发请求到CosmosDB,NSG仅需要放行中间层服务所在子网的访问权限即可
- 此方案适合无法配置VNet集成的Dynamics365低版本实例使用
方案4:使用服务标签分组缩减放行范围
- 如果以上方案都无法落地,你可以通过Azure服务标签的
AzureCloud.[你的Dynamics365实例部署区域]标签替代全量Azure IP段,仅放行Dynamics365实例所在区域的Azure公网IP段,大幅缩小暴露范围 - 同时在CosmosDB层面开启Azure AD身份验证,强制所有访问请求必须携带有效的Azure AD令牌,即使IP段放行也不会出现未授权访问风险
内容的提问来源于stack exchange,提问作者sebastian87
相关产品推荐
相关产品推荐

