AWS WAF Classic Regional rule groups should have at least one rule
Checks that the AWS WAF Classic Regional rule group has at least one rule. An empty rule group inspects nothing, so traffic passes untouched while a name suggesting block implies protection that is not there. A group whose rules only count still passes. AWS WAF Classic support ended on September 30, 2025, so migrating to AWS WAF is the lasting fix.
- service
- WAF
- severity
- Medium
- scope
- evaluated in every region
How to fix it
- Can break clients: Where a web ACL uses this group, a rule added with Block blocks matching requests as soon as the update is saved; add it with Count first and read its metrics.
In the console
AWS WAF Classic → the Region → Rule groups → the rule group → Rules
- Add rule to rule group
- An existing rule in this Region with at least one condition; rate-based rules cannot be added
- Action
- Block or Allow as intended, with Count first to see what the rule matches
With the AWS CLI
aws waf-regional update-rule-group --rule-group-id <rule-group-id> --change-token <change-token> --updates '[{"Action":"INSERT","ActivatedRule":{"Priority":1,"RuleId":"<rule-id>","Action":{"Type":"BLOCK"},"Type":"REGULAR"}}]' --region <region>With Terraform
resource "aws_wafregional_rule_group" "this" {
name = var.name
metric_name = var.metric_name
activated_rule {
priority = 1
rule_id = var.rule_id
action {
type = "BLOCK"
}
}
}
See which of your accounts this check is failing on.
Book a live scan