Azure API Management对接无公网内部服务的SKU选型及方案问询
问题解答
1. 不暴露内部服务到公网的APIM选型
没错,只有Premium SKU的APIM能满足完全不暴露内部服务到公网的需求。因为只有Premium支持将APIM部署到你的虚拟网络中(包括内部模式或外部接入VNET模式),让APIM网关直接和VNET内的Windows VM通信,全程流量都在Azure私有网络里走,不需要给VM开公网IP。
2. Consumption SKU的替代方案
Consumption SKU本身不支持VNET集成,没法直接访问私有服务,但可以通过「给VM开公网IP+严格IP限制」的方式绕开:
- 给Windows VM分配公网IP,开放API对应的端口(比如80/443)。
- 在VM的网络安全组(NSG)里添加入站规则,只允许APIM的出站IP段访问。你可以在APIM资源页面直接导出它的出站IP列表,把这些IP设为NSG规则的唯一允许源。
- 在Consumption SKU的APIM里配置API后端地址为VM的公网IP/域名,同时在APIM中添加OAuth2认证策略,完成认证后再转发请求到VM。
这种方案用低成本的Consumption SKU就能实现,虽然VM有公网入口,但通过NSG的严格限制,安全性有保障。
3. APIM前端部署Application Gateway + WAF的方案建议
推荐架构:客户端 → Application Gateway(带WAF) → APIM → 内部VM服务,分两种SKU场景说明配置要点:
针对Premium SKU(APIM部署在VNET内)
- 把Application Gateway部署在和APIM同VNET或对等互联的VNET中,通过APIM的私有IP访问它的内部端点。
- WAF建议设为预防模式(默认是检测模式,正式环境切换),启用核心规则集(CRS),拦截SQL注入、XSS这类常见API攻击。
- 在Application Gateway配置HTTPS监听(用自定义域名和SSL证书),后端池指向APIM的私有IP,转发请求到APIM的443端口。
- 可以配置路径规则,把不同API路径转发到APIM对应的API,或者统一转发到APIM入口。
针对Consumption SKU(APIM公网暴露)
- Application Gateway可以部署在VNET内或直接公网暴露,后端池直接填APIM的公网域名。
- 同样启用WAF核心规则,还可以在Application Gateway的NSG里限制客户端访问IP(如果需要),让WAF先做第一层流量清洗。
- 建议把自定义域名绑定到Application Gateway,所有流量先经过WAF过滤,再到APIM处理OAuth2认证。
通用配置注意事项
- SSL证书:确保Application Gateway和APIM都配置有效SSL证书,用Azure Key Vault托管证书可以简化更新和管理。
- 健康探测:给Application Gateway配置针对APIM的健康探测,及时感知APIM的可用性。
- 日志监控:开启WAF日志、APIM访问日志和VM流量日志,统一收集到Log Analytics,方便排查问题和监控安全事件。
内容的提问来源于stack exchange,提问作者anthonyb19
相关产品推荐
相关产品推荐

