All checks
Medium WAF · account

AWS WAF Classic global rule groups should have at least one rule

Checks that the AWS WAF Classic global 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 once per account

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 → Global (CloudFront) → Rule groups → the rule group → Rules

Add rule to rule group
An existing rule 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 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 us-east-1

With Terraform

resource "aws_waf_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