- Newest
- Most votes
- Most comments
If you are looking at the bill for the three days of the current month, it's worth noting the Usage Quantity flagged in the bill. You can see that the charge is for 0.039 of a month, which is about a day, so I would guess that the WebACL in question does not exist any more. If you want to dig into when that WebACL was created, you should review your CloudTrail logs looking for events of type "CreateWebACL", most likely in the us-east-1 region.
It's understandable that you're concerned about being charged for AWS WAF when you believe you're not using the service. This situation is not uncommon, and there are a few things to consider:
-
Double-check all regions: Even if you've checked the Global region and other regions, make sure you've thoroughly examined all possible locations where a Web ACL might exist, including the "Global (CloudFront)" region if you've ever used CloudFront.
-
Hidden Web ACLs: Sometimes, Web ACLs can be created as part of other services or configurations without being immediately visible. For instance, if you've set up CloudFront in the past, there might have been an option to create a WAF that you may have inadvertently enabled.
-
Billing discrepancies: In some cases, there might be a delay or discrepancy between the actual usage and what's shown in the billing console.
Given that you're seeing charges despite not finding any Web ACLs, here are some recommended steps:
-
Recheck the WAF console: Ensure you've selected the appropriate region in both the top right corner of the screen and next to the Web ACL (near the create web ACL button).
-
Review CloudFront settings: If you've used CloudFront, check if there are any associated WAF settings.
-
Contact AWS Support: If you still can't locate the source of the charges, it's advisable to contact AWS Support. They have the tools to investigate account-specific information and can help identify the root cause of the charges.
-
Consider using AWS Firewall Manager: For future reference, AWS Firewall Manager now has features to help optimize costs by ensuring WAF web ACLs are only created in accounts with resources in scope and removing them when no longer needed.
Remember, AWS WAF does charge for Web ACLs even if they're not actively protecting resources, so it's important to remove any unused configurations to avoid unnecessary costs.
Sources
Why am I being charged for WAF service when there are no Web ACLs present in the Console? | AWS re:Post
Do you pay for WAF Web ACL, even if no resource associated? | AWS re:Post
Unexpected WAF Charges Inquiry | AWS re:Post
How to stop WAF cost bills | AWS re:Post
Relevant content
- asked 2 years ago
- asked a year ago
- AWS OFFICIALUpdated 4 months ago

I just realized that, just before checking for this Web ACL, I had already deleted the CloudFront distribution with which the Web ACL might have been associated. However, even after 20 hours of deleting CloudFront, I am still being charged for that Web ACL, and it still appears in active services.
I have attached images in the updated question. Why is this happening, and how long does it usually take for the charges to stop reflecting?
Billing is pro-rated per hour so it will "stop" the hour following the deletion. Are you sure that you are still being billed for that specific resource? It's better to check this detail via Cost Explorer. Try this link, which should show you the daily breakdown of WAF usage types for the last 7 days (note, there is a delay in CE data so you won't see data for the last day or so) :
https://us-east-1.console.aws.amazon.com/costmanagement/home?region=us-east-1#/cost-explorer?chartStyle=STACK&costAggregate=unBlendedCost&endDate=2025-04-03&excludeForecasting=false&filter=%5B%7B%22dimension%22:%7B%22id%22:%22Service%22,%22displayValue%22:%22Service%22%7D,%22operator%22:%22INCLUDES%22,%22values%22:%5B%7B%22value%22:%22AWS%20WAF%22,%22displayValue%22:%22WAF%22%7D%5D%7D%5D&futureRelativeRange=CUSTOM&granularity=Daily&groupBy=%5B%22UsageType%22%5D&historicalRelativeRange=LAST_7_DAYS&isDefault=true&reportName=New%20cost%20and%20usage%20report&showOnlyUncategorized=false&showOnlyUntagged=false&startDate=2025-03-28&usageAggregate=undefined&useNormalizedUnits=false