Clean up unused AWS WAFv2 Web ACLs by identifying and deleting ACLs that contain no rules or rule groups. This plan inventories all in-scope Web ACLs, pinpoints those that are truly empty, guides you through selecting which ones to remove, and then deletes only the approved, still-empty, and safely unassociated ACLs. A final validation step confirms which ACLs were successfully deleted and highlights any that require follow-up.
First, gather a complete inventory of WAFv2 Web ACLs across the chosen scopes and Regions (for example, CLOUDFRONT and/or specific REGIONAL Regions). For each Web ACL, the plan records:
This information is stored in a structured format for use in later steps.
Using the inventory, the plan inspects each Web ACL’s full configuration to determine whether it has any top-level rules or rule groups. Web ACLs whose rules list is completely empty are marked as candidates for deletion. For each candidate, the plan preserves key details (ARN, name, scope, Region, default action, tags, and association information) and compiles them into a structured candidate list.
The plan then guides you through reviewing the candidate list of empty Web ACLs. It:
The outcome is a user-approved list of Web ACLs (with ARNs, scopes, and Regions) that are authorized for deletion.
The plan deletes only the Web ACLs that you have explicitly approved. Before each deletion, it:
If a Web ACL is no longer empty or remains associated in a way that cannot be safely changed, the plan skips deletion and records it as an exception with the reason. For each attempted deletion, the plan records the outcome and any errors, then reconfirms that successfully deleted Web ACLs are no longer present. A summary of deletions and exceptions is produced for your review.
Finally, the plan validates that all user-approved empty Web ACLs reported as successfully deleted are truly gone:
A validation report summarizes which empty Web ACLs were successfully removed and which require additional remediation or follow-up actions.