Web ACLs, Rules, and Rule Groups
coreintermediateAWS WAF inspects HTTP(S) requests before they reach your application. You write a web ACL — a list of rules, each with inspection criteria and an action — and associate it with a resource such as a CloudFront distribution, an Application Load Balancer, or an API Gateway REST API. That resource forwards each request to AWS WAF first, and the web ACL decides whether the request goes through.
Think of it as
A web ACL is a bouncer's checklist read top to bottom. Each rule is one line on the list: "if the request looks like this, do that". The default action is what the bouncer does with anyone who reached the bottom without matching anything — and it is a setting, not a guess.
What we're doing: Add the AWS Managed Rules common rule set to an ALB without breaking a legitimate upload endpoint.
- 2
- Count is the safe first position: the rule still evaluates and still logs its matches, but no real traffic is refused while you learn what it catches.
- 6
- A per-rule override keeps the other rules in the managed group active. Disabling the whole group because one rule was noisy is how a managed rule set quietly stops protecting anything.
Why this works: A managed rule group is written for the general case, and your application is not the general case. Rolling out in Count mode turns "will this break production" from a guess into a measurement, and per-rule overrides keep the blast radius of a false positive to one rule instead of the whole group.
Enabling a managed rule group straight into Block on production traffic
Wrong
Better
What you see: Legitimate requests start returning 403 from the edge, with nothing in the application logs at all — the request never reached the application, so the only trace is in the WAF logs.
Why: A blocked request is refused before your application sees it, so ordinary application logging shows silence rather than an error. Without a Count-mode period first, the first evidence of a false positive is a customer report.
- Client request
- leads to Protected resource (arrives at)
- Protected resource — CloudFront / ALB / API Gateway
- leads to Web ACL (forwarded for inspection)
- Web ACL — rules in priority order
- leads to Allow / Block / Count / CAPTCHA (evaluates to)
- Allow / Block / Count / CAPTCHA — first terminating match wins
- leads to Your application (allowed requests only)
- Your application
Rule actions and what they do to evaluation
Together
Remember: A web ACL = rules (each with criteria + an action) plus one default action, attached to a protected resource. Allow and Block are terminating; Count only tallies. Rule groups make rules reusable — AWS Managed Rules is the usual starting point. CloudFront-scoped web ACLs live in us-east-1.
See also: rate limiting bot control and waf logging · shield and ddos protection · cloudfront core vocabulary

