diff --git a/bash/delete_wafv1_rules.sh b/bash/delete_wafv1_rules.sh new file mode 100644 index 0000000..a8763ad --- /dev/null +++ b/bash/delete_wafv1_rules.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +list_waf_rules() { + local next_token="" + + while true; do + local response=$(aws waf list-rules --region us-west-2 --limit 50 --next-marker "$next_token") + local rule_ids=($(echo "$response" | jq -r '.Rules[].RuleId')) + + for rule_id in "${rule_ids[@]}"; do + local rule_name=$(aws waf get-rule --region us-west-2 --rule-id "$rule_id" --query 'Rule.Name') + echo "Rule ID: $rule_id, Rule Name: $rule_name" + done + + local next_token=$(echo "$response" | jq -r '.NextMarker') + if [[ $next_token == "null" ]]; then + break + fi + done +} + +delete_waf_rules() { + local next_token="" + + while true; do + local response=$(aws waf list-rules --region us-west-2 --limit 50 --next-marker "$next_token") + local rule_ids=($(echo "$response" | jq -r '.Rules[].RuleId')) + + for rule_id in "${rule_ids[@]}"; do + echo "Deleting Rule ID: $rule_id" + aws waf delete-rule --region us-west-2 --rule-id "$rule_id" + done + + local next_token=$(echo "$response" | jq -r '.NextMarker') + if [[ $next_token == "null" ]]; then + break + fi + done +} + +list_waf_rules + +read -p "Do you want to delete all the listed WAF rules? (yes/no): " response +if [[ "$response" == "yes" ]]; then + delete_waf_rules + echo "All WAF rules have been deleted." +else + echo "No WAF rules have been deleted." +fi