Azure Firewall无法阻止存储账户访问的问题求助
Azure Firewall无法阻止存储账户访问的排查与解决
核心原因分析
- 服务终结点绕过防火墙:若虚拟机子网启用了
Microsoft.Storage服务终结点,存储账户流量会直接走微软骨干网传输,完全绕过Azure Firewall,这是最常见的触发场景。 - 路由表优先级冲突:服务终结点会自动在子网路由表中添加优先级更高的/32路由,覆盖你配置的指向防火墙的默认路由。
- 规则类型/配置偏差:应用规则仅过滤HTTP/HTTPS流量,若存储访问使用SMB等其他协议则无效;同时FQDN匹配可能未覆盖所有存储访问场景,或规则顺序、优先级设置错误。
解决步骤
1. 禁用子网的存储服务终结点
进入Azure门户,找到虚拟机所在子网,查看服务终结点配置,若已启用Microsoft.Storage直接禁用。禁用后,存储流量会回归默认路由,强制经过Azure Firewall。
2. 校验路由表配置
- 检查子网关联的路由表,确认存在
0.0.0.0/0路由,下一跳指向Azure Firewall私有IP。 - 删除所有针对存储IP段的自定义路由(包括服务终结点自动生成的/32路由,禁用服务终结点后会自动消失),避免流量绕开防火墙。
3. 调整防火墙规则策略
- 优先使用网络规则限制存储:部分存储SDK会直接通过IP访问账户,建议添加网络规则:
- 目标类型选IP地址,填入允许的存储账户IP(可通过
nslookup <账户名>.blob.core.windows.net获取); - 最后添加
deny any any网络规则,拦截未授权的存储IP访问。
- 目标类型选IP地址,填入允许的存储账户IP(可通过
- 修正应用规则(仅针对HTTP/HTTPS场景):确保允许的存储FQDN规则(如
*.blob.core.windows.net或指定账户FQDN)优先级高于deny any any应用规则,且规则类型为HTTP/HTTPS。
4. 验证效果
在虚拟机上执行curl https://<外部存储账户>.blob.core.windows.net/test,确认请求被防火墙拦截;同时查看Azure Firewall日志(Log Analytics),确认流量匹配到对应规则。
内容的提问来源于stack exchange,提问作者Vicen C
相关产品推荐
相关产品推荐

