AWS WAF Explained: Web ACLs, Rules, Managed Rule Groups and Actions
Mumbai fintech lead Arjun Mehta and Berlin ecommerce SRE Lucas Meyer both ask the same question: what exactly sits inside an AWS WAF Web ACL before we attach it to CloudFront or an ALB? This chapter answers that — deep on ACLs, rules, rule groups, managed rules, priority and actions — and links to the CloudFront+WAF survey for CDN/HTTPS basics instead of repeating them.
What you'll learn in this chapter
- Why Layer-7 WAF exists beside Shield and Security Groups
- What Web ACLs, rules, rule groups and managed rules are
- How priority and actions (Allow/Block/Count/CAPTCHA/Challenge) work
- How to read a rule evaluation path with examples
- Interview answers MNCs expect on WAF building blocks
1. Everyday example
Pune bakery site of Priya Deshmukh suddenly sees 40k hits/minute on /login from one ASN. Security Groups cannot parse HTTP. Shield Standard absorbs some volumetric noise. WAF is the tool that can rate-limit that URI, CAPTCHA the browser, and Block the SQLi string in the query — at Layer 7.
CDN and HTTPS setup live in the survey chapter: Amazon CloudFront and WAF. Here we go deep on WAF itself.
2. Why AWS WAF?
Why do we need this?
Attackers speak HTTP. They send SQLi in query strings, XSS in bodies, credential stuffing on /login, scrapers on /api/catalog, and geo floods from regions you never sell to. Network controls stop packets; WAF stops abusive requests.
- Stop OWASP-style web attacks before they hit the origin
- Rate-limit abusive IPs/URIs without rewriting the app
- Centralise web rules for ALB, API Gateway, CloudFront, AppSync, Cognito
- Count first, Block later — reduce false positives
- Feed logs to SIEM for forensics
3. What is a Web ACL?
What is it?
A Web Access Control List is a named container: default action + ordered rules + visibility (CloudWatch metrics + sampled requests). Scope is either REGIONAL (ALB, API Gateway REST/HTTP, AppSync, Cognito user pool) or CLOUDFRONT (must create in us-east-1).
Building blocks
| Piece | Role |
|---|---|
| Web ACL | Container + default action + scope |
| Rule | Statement + action + priority |
| Rule group | Reusable bundle of rules (yours or AWS) |
| IP set / Regex set | Named lists referenced by statements |
| Managed rule group | AWS or marketplace maintained signatures |
| Label | Tag a request for later rules to match |
4. Rules and statements
A rule has: name, priority (integer), action or override, visibility config, and a statement tree. Statements include match (byte, regex, geo, IP, size, SQL injection, XSS), rate-based, AND/OR/NOT composites, and rule-group references.
- ByteMatch — exact or substring on URI, header, body, query
- GeoMatch — country codes (ISO)
- IPSetReference — allow/deny lists
- SqliMatch / XssMatch — inspection with sensitivity
- RateBased — requests per 5-minute window per aggregate key
- LabelMatch — react to labels from earlier rules
5. Rule groups and AWS Managed Rules
Rule groups package many rules. You can publish your own for reuse across accounts (with Firewall Manager) or subscribe to AWS Managed Rules: Core Rule Set (CRS), Known Bad Inputs, SQL database, Linux/Windows, WordPress, PHP, Amazon IP reputation, Anonymous IP, Bot Control, Account Takeover Prevention, and more. Vendor groups (marketplace) also exist.
Count before Block on managed groups
New managed rule groups often false-positive on unusual but legit APIs. Add the group with override to Count for 24–72 hours, review sampled requests, then remove the override (Block) or add label-based exclusions.
6. Priority order
Lower number runs first. First terminating action (Allow, Block, CAPTCHA, Challenge) stops evaluation. Count is non-terminating — later rules still run. Default action applies only if nothing terminated.
# Example priority map (document this in every PR)
# 10 - Block office-banned IP set
# 100 - Allow /health from ALB health checkers
# 200 - Allow partner webhook IPs on /hooks/*
# 500 - AWSManagedRulesCommonRuleSet (Count→Block)
# 510 - AWSManagedRulesSQLiRuleSet
# 900 - Rate-based 2000 req/5min per IP on /login
# default - Allow
7. Actions: Allow, Block, Count, CAPTCHA, Challenge
| Action | When to use |
|---|---|
| Allow | Trusted path; terminate allow |
| Block | Known bad; optional custom body/code |
| Count | Observe only; never terminates |
| CAPTCHA | Human puzzle; needs token on retry |
| Challenge | Silent JS challenge; bots fail often |
CAPTCHA and Challenge mint tokens. Pure machine-to-machine APIs should prefer Block or rate-based — a mobile SDK without CAPTCHA handling will break.
8. Custom responses
On Block you can return a custom HTTP code (e.g. 429) and body (HTML or JSON) from a response key stored on the Web ACL. Useful for branded “slow down” pages during flash sales (Lucas Meyer, Berlin D2C).
9. Multi-industry snapshots
- Fintech UPI (Arjun Mehta): CAPTCHA on password reset; rate on /otp
- Healthcare (Priya Nair, Kochi): CRS + geo IN/AE
- EdTech (Sofia Alvarez): Challenge on /courses scrapers
- Gov portal (Rahul Deshmukh): CRS + CAPTCHA on forms
- Gaming (Mei Chen, Singapore): Bot Control + rate /join
10. Lab: read a Web ACL and explain it
How to do it (step by step)
- In console open WAFv2 → Web ACLs → pick one (or create empty REGIONAL in ap-south-1).
- Screenshot default action, each rule priority, and actions.
- Add AWSManagedRulesCommonRuleSet with Count override.
- Send 20 benign curls; open Sampled requests.
- Write a 5-line explanation of evaluation order for your PR template.
Cleanup
- Remove the managed rule group if this was a lab ACL.
- Delete the lab Web ACL if unused (disassociate first).
11. Common errors and fixes
Each row is a real mistake students and juniors hit. Read the fix before you panic.
| Error / symptom | Fix |
|---|---|
| Web ACL associated but still no blocks | Wrong scope (REGIONAL vs CLOUDFRONT) or rule still in Count. |
| Managed rule false-positive on legit traffic | Use Count first; add narrow Allow or label exclusion. |
| Rate-based rule never trips | Window/threshold too high; or IP header not the one you think (X-Forwarded-For). |
| 403 on health checks | Health checker IP not allowlisted at higher priority. |
| CAPTCHA on API clients | CAPTCHA/Challenge need a browser; use Block/rate for pure APIs. |
| Logs empty after put-logging-configuration | Destination ARN wrong; bucket policy missing wafv2.amazonaws.com. |
| Cannot associate to CloudFront | CLOUDFRONT Web ACLs must be created in us-east-1. |
| Shield Advanced bill shock | Advanced is monthly per org + data transfer; confirm before enable. |
| Priority 1 Allow hides everything below | Allow terminates — move it narrower or lower only for specific paths. |
| Confused by CAPTCHA vs Challenge | CAPTCHA = visible puzzle; Challenge = silent JS. |
12. Troubleshooting checklist
- Confirm Web ACL scope matches resource type.
- Open Sampled requests for the last 3 hours.
- Diff priorities: is an Allow above your Block?
- curl -v with and without the attack payload.
- Check WAF logs in S3/Firehose for ruleId and action.
- For CloudFront: confirm us-east-1 Web ACL and distribution id.
- For ALB: confirm association ARN equals the listener’s load balancer.
- If Shield Advanced: check protection status and health checks.
13. FAQ
Q. Is AWS WAF the same as a network firewall?
No. WAF inspects HTTP/HTTPS (Layer 7). Network Firewall / Security Groups cover lower layers. Shield covers volumetric DDoS.
Q. Do I need WAF if I already have CloudFront?
CloudFront caches and TLS-terminates; WAF adds Layer-7 rules. Many teams attach WAF to the distribution. See the CloudFront+WAF survey chapter.
Q. Count vs Block — when?
Count for learning and low-confidence rules; Block when false-positive rate is acceptable.
Q. Shield Standard vs Advanced in one line?
Standard is free automatic L3/L4 on AWS; Advanced adds L7 DDoS tools, SRT, cost protection, health-based detection for a fee.
Q. Can one Web ACL protect both CloudFront and ALB?
No — different scopes. Use two ACLs or Firewall Manager policies.
Q. Does WAF decrypt HTTPS?
WAF sees the request after TLS termination at CloudFront/ALB/API GW.
Q. What is a label?
A tag applied by a rule so later rules can match on it without re-inspecting the body.
Q. Is WAFv2 different from WAF Classic?
Yes — use WAFv2 APIs. Classic is legacy.
14. Interview Q&A
Q. Explain Web ACL vs rule vs rule group.
ACL contains ordered rules; a rule has a statement+action; a group is a reusable set of rules referenced from an ACL.
Q. Why create CloudFront Web ACLs in us-east-1?
CloudFront is a global service; WAFv2 requires CLOUDFRONT scope in us-east-1.
Q. Does Count stop later rules?
No. Count is non-terminating.
Q. Name five AWS Managed Rule groups.
CRS, Known Bad Inputs, SQLi, Anonymous IP, Bot Control (examples).
Q. When is CAPTCHA wrong?
Machine clients/APIs that cannot render or solve puzzles.
Q. How do you roll out a risky managed group?
Count 24–72h → review sampled/logs → Block or exclude.
Q. MNC: design priority bands for a payments API.
Emergency IP block → health Allow → partner Allow → managed SQLi/CRS → rate /login /pay.
Q. MNC: WAF vs Shield vs Security Group one-liner each.
WAF=L7 HTTP rules; Shield=DDoS; SG=stateful L3/L4 ports.
15. Tips in English, Marathi and Hindi
Ravindra Bagale's Tip (EN)
Draw the priority table before you click Create. Count is your seatbelt for managed rules.
Ravindra Bagale's Tip (MR)
Create आधी priority table काढा. Managed साठी Count = seatbelt.
Tip (HI)
Create से पहले priority table बनाएं। Managed rules पर पहले Count लगाएं.
Try at home
- List every statement type you can name from memory (aim ≥6).
- Sketch priority bands for a hospital patient portal.
- Open the CloudFront+WAF survey and write one sentence on what this chapter adds.
In short
- Web ACL = default + ordered rules + scope.
- Priority ascending; terminating wins; Count continues.
- Managed rules: Count first.
- Actions: Allow/Block/Count/CAPTCHA/Challenge.
- CDN/HTTPS details → CloudFront+WAF survey chapter.
16. WAF design checklist before you publish
- Write the threat in one sentence (bot scrape, SQLi, credential stuffing, country block).
- Choose scope: CloudFront (global) vs regional (ALB/API GW/AppSync).
- List default action: Allow with Block rules, or Block with Allow exceptions.
- Decide priority bands: 0–99 emergency, 100–499 allowlists, 500–899 managed, 900+ rate.
- Start risky new rules in Count for 24–72 hours, then flip to Block.
- Plan CAPTCHA/Challenge only where a human can solve them (not pure APIs).
- Enable logging to S3 or Firehose before the first Block go-live.
- Document the curl allow test and the 403 deny test.
- Name the owner on-call for false-positive unlocks.
- Link back to the CloudFront+WAF survey chapter for CDN/HTTPS basics.
17. Copy-paste WAF CLI runbook
# Region for REGIONAL Web ACL (ALB / API GW). Use --scope CLOUDFRONT + us-east-1 for CDN.
export AWS_REGION=ap-south-1
export NAME=rb-waf-lab-$(date +%s)
# IP set (office allowlist example)
aws wafv2 create-ip-set --name $NAME-office --scope REGIONAL --region $AWS_REGION \
--ip-address-version IPV4 --addresses 203.0.113.10/32
# Web ACL skeleton (default Allow; add rules in console or JSON)
aws wafv2 create-web-acl --name $NAME --scope REGIONAL --region $AWS_REGION \
--default-action Allow={} --visibility-config SampledRequestsEnabled=true,CloudWatchMetricsEnabled=true,MetricName=$NAME \
--rules file://rules.json
# Associate to ALB
aws wafv2 associate-web-acl --web-acl-arn $WEB_ACL_ARN --resource-arn $ALB_ARN --region $AWS_REGION
# Logging
aws wafv2 put-logging-configuration --logging-configuration \
ResourceArn=$WEB_ACL_ARN,LogDestinationConfigs=$LOG_BUCKET_ARN
# Test
curl -s -o /dev/null -w "%{http_code}\n" https://app.example.com/
# expect 200 for allow path; 403 for blocked path
18. Priority bands that interviewers love
- 0–99: emergency Block / IP denylist (fastest kill switch)
- 100–199: explicit Allow for partners / health checks / office IP
- 200–499: geo / ASN / bot control early filters
- 500–799: AWS Managed Rules (SQLi, XSS, WordPress, Linux, Windows)
- 800–899: custom body / header / URI matches
- 900–999: rate-based rules (last line before default)
Lower number = higher priority. First matching terminating action wins. Count never terminates — evaluation continues.
19. Industry story bank (reuse the pattern)
Use the same WAF pattern across industries — only change IP sets, geo lists, URI paths, and rate thresholds.
- Fintech (Arjun Mehta, UPI wallet, Mumbai): rate-limit /login and /otp; CAPTCHA on password reset.
- Healthcare (Priya Nair, clinic portal, Kochi): geo allow India+UAE; Block SQLi on /api/patients.
- EdTech (Sofia Alvarez, LMS, Bogotá): Challenge on scraping /courses; Allow CDN health.
- Ecommerce (Lucas Meyer, D2C, Berlin): Bot Control on flash-sale; custom 429 HTML.
- Media (Fatima Khan, newsroom, Dubai): rate on /search; Block known bad ASNs.
- SaaS (Ananya Iyer, B2B CRM, Bengaluru): IP allow partner webhooks; Block rest on /hooks.
- Logistics (Kenji Watanabe, fleet API, Tokyo): geo Japan+SG; rate on /track.
- Government (Rahul Deshmukh, state portal, Nagpur): managed Core Rule Set + CAPTCHA on forms.
- Gaming (Mei Chen, matchmaking API, Singapore): Shield Advanced + WAF rate on /join.
- Travel (Amina Okello, booking, Nairobi): geo allow Africa+EU partners; Block card-testing paths.
20. False-positive unlock runbook
- Find the blocked request in Sampled requests or WAF logs (rule id + label).
- Reproduce with curl -v and the same headers/body.
- If Count would have been enough, flip Block→Count for that rule only.
- Add a narrow Allow rule at higher priority (specific URI + IP) rather than disabling the whole managed group.
- Label-match exclusions inside managed rule groups when AWS supports them for that group.
- Re-test allow and deny paths; leave a ticket with request id.
- Never set default action to Allow and delete all rules under pressure.
21. What good looks like in a PR review
- Scope (REGIONAL vs CLOUDFRONT) matches the resource.
- Priorities documented in a table in the PR.
- New managed rules started in Count with a flip date.
- Logging destination exists and is encrypted.
- curl 200 and curl 403 proofs pasted.
- Link to CloudFront+WAF survey for CDN/TLS context.
- Shield Advanced decision recorded (yes/no + reason).
22. Related chapters on this site
- CloudFront + WAF survey (CDN, HTTPS, light WAF): open chapter
- Well-Architected Framework (security pillar context): next chapter after this series.
- S3 bucket policy projects (origin hardening behind OAC).
23. Metric and alarm starter pack
Create these CloudWatch alarms on day one so an attack is not a Slack surprise. Thresholds are starting points — tune per app.
- WAF BlockedRequests Sum > N for 5 minutes on the Web ACL metric
- WAF CountedRequests Sum high on a rule still in Count (review before flip)
- ALB HTTPCode_Target_5XX_Count spike
- ASG GroupInServiceInstances at MaxSize for 10 minutes
- Shield Advanced DDoSDetected = 1 (if subscribed)
- CloudFront 4xx/5xx error rate
- Route 53 health check Unhealthy
- WAF logging delivery errors (Firehose throttles)
24. Sampled requests reading guide
- Open Web ACL → Sampled requests → pick a rule.
- Note action (Count/Block), URI, country, and matched data.
- Decide: true positive (keep Block), false positive (Count or exclude), or need CAPTCHA.
- Export request ids into the ticket for auditors.
- Never tune only from memory — tune from samples + logs.
25. WAF + Shield glossary (exam friendly)
| Term | Meaning |
|---|---|
| Web ACL | Container of rules + default action |
| Scope | REGIONAL or CLOUDFRONT |
| Managed rule group | AWS/marketplace signatures |
| Label | Tag for downstream rules |
| Rate-based | Threshold per 5-minute window |
| SRT | Shield Response Team (Advanced) |
| Protection group | Bundle of Shield Advanced protections |
| Firewall Manager | Org-wide security policy deployment |
| Cost protection | Advanced reimbursement path for attack-driven charges |
| Challenge | Silent browser JS challenge action |
26. Fifteen-minute tabletop script
- Minute 0–2: Inject scenario (“CF 5xx + Shield metric up” or “login 403 storm”).
- Minute 2–5: Classify L3/L4 vs L7; name the runbook.
- Minute 5–10: Say aloud the first three console clicks + who to page.
- Minute 10–13: Customer comms one-liner.
- Minute 13–15: Note one gap to fix in the real runbook.
27. Cost notes (approximate mindset)
WAF charges for Web ACLs, rules, and request units; Bot Control/ATP add-ons cost more. Shield Advanced has a monthly org fee plus data-transfer related charges — confirm on the AWS pricing page the day you buy. Logging to Firehose/S3/CW adds storage and throughput cost. Always set budgets.
28. Security hygiene beyond WAF
- Lock origins so clients cannot bypass CloudFront (SG, OAC, custom header).
- Least-privilege IAM for wafv2:* on deploy roles.
- Encrypt log buckets; block public access on log buckets.
- Quarterly review of IP sets and geo lists (people travel; offices move).
- Redact Authorization and cookie headers in WAF logs.
- Keep a break-glass Allow rule documented but disabled.
29. Pairing with other AWS chapters on this site
Read S3 policy projects when hardening origins behind OAC. Read Well-Architected (next after this series) for the security pillar checklist. Read the CloudFront+WAF survey when you need CDN caching and HTTPS step-by-step.
30. Request flow deep dive (teacher board)
A browser hits https://app.example.com/login. DNS (Route 53) returns CloudFront. TLS ends at CloudFront. WAF Web ACL (CLOUDFRONT, us-east-1) evaluates rules by priority. A Count rule on CRS may label the request. A rate-based rule may Block with 403. If Allow, CloudFront cache or origin fetch runs. Origin ALB may have a second REGIONAL Web ACL. Shield watches volumetric patterns the whole time. Logs land in S3/Firehose for the SOC.
- DNS resolve and TLS handshake (Shield sees floods here).
- WAF evaluation at edge (L7).
- Cache hit/miss at CloudFront.
- Origin request to ALB; optional regional WAF.
- ASG target serves app; health checks continue.
- Metrics + logs + optional SRT.
31. Rule JSON anatomy (read aloud)
{
"Name": "RateLogin1000",
"Priority": 900,
"Action": {"Block": {"CustomResponse": {"ResponseCode": 429}}},
"VisibilityConfig": {
"SampledRequestsEnabled": true,
"CloudWatchMetricsEnabled": true,
"MetricName": "RateLogin1000"
},
"Statement": {
"RateBasedStatement": {
"Limit": 1000,
"AggregateKeyType": "IP",
"ScopeDownStatement": {
"ByteMatchStatement": {
"SearchString": "/login",
"FieldToMatch": {"UriPath": {}},
"TextTransformations": [{"Priority": 0, "Type": "LOWERCASE"}],
"PositionalConstraint": "STARTS_WITH"
}
}
}
}
}
32. Text transformations cheat sheet
- LOWERCASE — normalise path/header compares
- URL_DECODE / URL_DECODE_UNI — catch encoded probes
- HTML_ENTITY_DECODE — body HTML tricks
- CMD_LINE — OS command obfuscation (with care)
- Compress whitespace / Strip — reduce bypass noise
- Apply in priority order inside the rule
33. Office-hours mini drills (students)
- Drill 1: Explain why Count does not stop later rules (2 minutes).
- Drill 2: Given priorities 10 Block IP, 100 Allow /health, 500 CRS — what happens to office IP hitting /health?
- Drill 3: Write curl that should 403 under SQLi Block.
- Drill 4: Name three Shield Advanced-only features.
- Drill 5: Sketch Runbook B first three steps from memory.
- Drill 6: Where must a CloudFront Web ACL be created?
- Drill 7: Who wins — managed Block vs later Allow at higher number?
- Drill 8: Redact which headers in WAF logs for a bank?
34. Change calendar (safe rollout)
- Day 0: ACL + logging + Allow default + health Allow rule
- Day 1: Managed groups in Count
- Day 2–3: Review sampled; add exclusions
- Day 4: Flip SQLi/CRS to Block off-peak
- Day 5: Rate-based on /login in Count then Block
- Day 7: CAPTCHA on password reset only
- Day 14: Firewall Manager baseline if org-ready
- Day 30: Tabletop + Advanced decision revisit
Revision, interview and comparison cards
Revise this lesson in a few minutes. Save the cards on your phone or download them as PNG files. The QR code on each card opens this lesson.








More cards: Ravi Sir's Cards.
Practice Tasks
Maple Leaf Books is a bookselling business in Toronto. Emily Tremblay looks after its IT and cloud work. They count money in CAD and run their AWS resources in the ca-central-1 Region. In the tasks below you do real jobs for them using what this lesson teaches. All names, account IDs, IP addresses and numbers are made up for practice.
0 / 16
Easy Count is non-terminating — 1
Why: Evaluation.
What to do: Enter 1 if Count does not stop later rules.
- Write down the numbers the task gives you.
- Work it out step by step on paper.
- Type only the final answer in the box.
- Click Check answer.
Easy CloudFront ACL region us-east-1 — 1
Why: Scope.
What to do: Enter 1 if CLOUDFRONT Web ACLs are created in us-east-1.
- Write down the numbers the task gives you.
- Work it out step by step on paper.
- Type only the final answer in the box.
- Click Check answer.
Easy WAF is Layer 7 — 1
Why: HTTP.
What to do: Enter 1 if AWS WAF inspects Layer 7 HTTP/HTTPS.
- Write down the numbers the task gives you.
- Work it out step by step on paper.
- Type only the final answer in the box.
- Click Check answer.
Easy Default action JSON
Why: Allow default.
What to do: JSON default_action Allow.
- Start from the top-level keys the task names.
- Indent child keys with 2 spaces (no tabs).
- Fill in each property with the value from the task.
- Click Check answer. Key order does not matter.
Easy List Web ACLs regional
Why: Inventory.
What to do: List Web ACLs scope REGIONAL.
- Read the task and decide which AWS service it is about.
- Write aws, then the service name, then the operation (the action word).
- Add each needed flag (--name) followed by its value from the task.
- Flags can be in any order. Click Check answer.
Medium Lower priority runs first — 1
Why: Order.
What to do: Enter 1 if lower priority numbers run first.
- Write down the numbers the task gives you.
- Work it out step by step on paper.
- Type only the final answer in the box.
- Click Check answer.
Medium CAPTCHA bad for pure APIs — 1
Why: Clients.
What to do: Enter 1 if CAPTCHA is a bad fit for pure machine APIs.
- Write down the numbers the task gives you.
- Work it out step by step on paper.
- Type only the final answer in the box.
- Click Check answer.
Medium Allow terminates — 1
Why: Stop.
What to do: Enter 1 if Allow is a terminating action.
- Write down the numbers the task gives you.
- Work it out step by step on paper.
- Type only the final answer in the box.
- Click Check answer.
Medium Scope REGIONAL JSON
Why: ALB scope.
What to do: JSON scope REGIONAL.
- Start from the top-level keys the task names.
- Indent child keys with 2 spaces (no tabs).
- Fill in each property with the value from the task.
- Click Check answer. Key order does not matter.
Medium List IP sets regional
Why: Lists.
What to do: List IP sets scope REGIONAL.
- Read the task and decide which AWS service it is about.
- Write aws, then the service name, then the operation (the action word).
- Add each needed flag (--name) followed by its value from the task.
- Flags can be in any order. Click Check answer.
Medium List rule groups regional
Why: Reusable.
What to do: List rule groups scope REGIONAL.
- Read the task and decide which AWS service it is about.
- Write aws, then the service name, then the operation (the action word).
- Add each needed flag (--name) followed by its value from the task.
- Flags can be in any order. Click Check answer.
Hard Managed rules start Count — 1
Why: FP.
What to do: Enter 1 if new managed rule groups should start in Count.
- Write down the numbers the task gives you.
- Work it out step by step on paper.
- Type only the final answer in the box.
- Click Check answer.
Hard Challenge is silent JS — 1
Why: Bots.
What to do: Enter 1 if Challenge is a silent browser JS challenge.
- Write down the numbers the task gives you.
- Work it out step by step on paper.
- Type only the final answer in the box.
- Click Check answer.
Hard Action Block JSON
Why: Terminate.
What to do: JSON action Block.
- Start from the top-level keys the task names.
- Indent child keys with 2 spaces (no tabs).
- Fill in each property with the value from the task.
- Click Check answer. Key order does not matter.
Hard Label name JSON
Why: Tags.
What to do: JSON label awswaf:managed:aws:core-rule-set.
- Start from the top-level keys the task names.
- Indent child keys with 2 spaces (no tabs).
- Fill in each property with the value from the task.
- Click Check answer. Key order does not matter.
Hard List CloudFront Web ACLs
Why: us-east-1.
What to do: List Web ACLs scope CLOUDFRONT.
- Read the task and decide which AWS service it is about.
- Write aws, then the service name, then the operation (the action word).
- Add each needed flag (--name) followed by its value from the task.
- Flags can be in any order. Click Check answer.