使用Terraform创建Cloudflare免费版Geo WAF国家封禁规则遇权限报错
解决Cloudflare免费版Terraform国家封禁规则配置报错问题
问题原因
你当前使用的cloudflare_ruleset资源指定了phase = "http_request_firewall_custom",这个阶段属于Cloudflare高级Ruleset引擎,仅对付费套餐(Pro/Business/Enterprise)开放,免费版无法使用。而你在门户手动配置的是免费版支持的传统防火墙规则系统,需要用对应的Terraform资源来实现。
正确配置示例
使用免费版支持的cloudflare_filter和cloudflare_firewall_rule资源来配置:
# 定义过滤规则表达式 resource "cloudflare_filter" "country_block_filter" { zone_id = data.cloudflare_zone.zone.zone_id name = "Country block filter for ${local.web_host}" expression = "(ip.geoip.country ne \"NZ\")" } # 创建对应的防火墙封禁规则 resource "cloudflare_firewall_rule" "country_block" { zone_id = data.cloudflare_zone.zone.zone_id filter_id = cloudflare_filter.country_block_filter.id action = "block" description = "Block all traffic except NZ for ${local.web_host}" enabled = true }
说明
- 这个配置和你在Cloudflare门户手动创建的“防火墙规则”完全对应,免费版最多支持5条此类规则
- 若需要封禁特定国家而非仅放行新西兰,可将表达式修改为
ip.geoip.country eq "XX"(XX为目标国家代码)
内容的提问来源于stack exchange,提问作者Ben Taylor
相关产品推荐
相关产品推荐

