使用Azure CLI通过Bash添加Azure网络防火墙规则时遇冲突错误
解决AzureFirewallPolicyAndRuleCollectionsConflict错误
错误原因
Azure防火墙仅支持两种配置模式之一,不能同时启用:
- 传统规则集模式:直接在防火墙实例上创建
NetworkRuleCollections/ApplicationRuleCollections/NATRuleCollections - 防火墙策略模式:通过
AzureFirewallPolicy集中管理所有规则
当同时尝试使用这两种模式时,就会触发该冲突错误。
解决方案
方案1:切换到防火墙策略模式(推荐)
该模式支持集中管理规则、跨防火墙复用策略,兼容更多高级功能:
- 删除现有本地规则集
先清理防火墙实例上已有的所有规则集(网络、应用、NAT规则):
# 删除网络规则集示例 az network firewall network-rule collection delete --resource-group Admin_RGP --firewall-name Azure-Firewall --name <现有网络规则集名称> # 删除应用规则集示例 az network firewall application-rule collection delete --resource-group Admin_RGP --firewall-name Azure-Firewall --name <现有应用规则集名称> # 删除NAT规则集示例 az network firewall nat-rule collection delete --resource-group Admin_RGP --firewall-name Azure-Firewall --name <现有NAT规则集名称>
- 关联防火墙到目标策略
将防火墙实例与你的FirewallPolicy绑定:
az network firewall update --resource-group Admin_RGP --name Azure-Firewall --firewall-policy FirewallPolicy
- 通过策略创建规则集
直接在策略中添加规则集:
az network firewall policy network-rule collection create \ --resource-group Admin_RGP \ --policy-name FirewallPolicy \ --name Local-Traffic-policy \ --priority 100 \ --action Allow \ --rules name=AllowLocal source-addresses=192.168.0.0/16 destination-addresses=10.0.0.0/8 protocols=TCP destination-ports=80,443
方案2:保留传统规则集模式
如果不需要使用防火墙策略,移除创建规则时的--firewall-policy相关参数,直接在防火墙实例上创建规则集:
az network firewall network-rule collection create \ --resource-group Admin_RGP \ --firewall-name Azure-Firewall \ --name Local-Traffic-policy \ --priority 100 \ --action Allow \ --rules name=AllowLocal source-addresses=192.168.0.0/16 destination-addresses=10.0.0.0/8 protocols=TCP destination-ports=80,443
注意事项
- 切换配置模式前,务必备份现有规则配置,避免数据丢失
- 防火墙策略模式是Azure官方推荐的配置方式,支持威胁情报、TLS检查等高级特性
内容的提问来源于stack exchange,提问作者BILAL AFZAAL
相关产品推荐
相关产品推荐

