Subchapter 93.5
references/reviewing-ddos-events-and-requesting-cost-protection.mdMarkdown12 KBView on GitHub
Domain expertise for the post-attack workflow on an AWS Shield Advanced protected resource: reviewing the DDoS event to understand what happened, and requesting a cost protection credit to recover the scaling charges the attack caused. Covers reading the event detail, the eligibility rules customers most often trip on (protection must predate the attack, the rate-based AWS WAF rule must be in Block mode), and the 15-day filing deadline.
Does not cover subscribing and protecting resources, automatic mitigation, health-based detection, SRT setup, or protection groups; those are separate references. Authoring the rate-based AWS WAF rule is the waf skill.
Execute commands using the AWS MCP server when connected (sandboxed execution, audit logging,
observability). Fall back to the AWS CLI otherwise. Shield Advanced control-plane calls run in
us-east-1; pass --region us-east-1 on every command.
To review an event and request a cost protection credit end to end, follow the procedure exactly. See the Procedure section below.
The procedure covers:
After an attack, Shield Advanced reports a separate event per affected resource, with detection details, any mitigations it applied, and the top traffic contributors. Customers see a bill spike but cannot tell whether it was an attack or what Shield did, if they only look at CloudWatch graphs.
Constraints:
When advising on a cost-protection (DDoS credit) request, you MUST state ALL of the following points together, not a subset:
The sections below give the detail behind each point.
Cost protection covers attack-driven scaling only if the resource was protected before the attack began. A customer who adds protection mid-attack and then files is denied.
Constraints:
For CloudFront and Application Load Balancer resources, cost protection eligibility requires a rate-based AWS WAF rule in Block mode on the resource. A rate-based rule left in Count mode does not satisfy the requirement and silently voids the claim.
Constraints:
The credit is not automatic. The customer files a billing support case within 15 days after the billing month of the attack closes, with the words “DDoS Concession” in the subject.
Constraints:
Cost protection credits the attack-driven scaling of protected resources (for example data transfer out, additional EC2 or ELB capacity, CloudFront request volume), not baseline usage.
Constraints:
describe-attack, and the specific line items they believe are attack-drivenRead the Shield event detail (detection, mitigations, top contributors) rather than CloudWatch graphs (Reading the event).
Either the protection was added after the attack started, or the rate-based rule was not in Block mode on a CloudFront or Application Load Balancer resource (Eligibility sections).
The deadline is 15 days after the billing month closes. Calendar it as soon as an attack is identified (The 15-day filing deadline).
Reviewing an event exposes sensitive attack data and filing a credit touches billing, so call out the risks and the controls that contain them.
shield:* calls so every event review
leaves a record for audit and reporting purposes, and confirm the CloudTrail trail uses SSE-KMS
encryption on its S3 log bucket and CloudWatch Logs log group, since CloudTrail records contain
sensitive API metadata (caller identities, resource ARNs, parameters).This procedure reviews a DDoS event, confirms cost protection eligibility, and files the credit request, then surfaces the console link to review the event.
Constraints for parameter acquisition:
Constraints:
aws sts get-caller-identityshield:ListProtections, shield:ListAttacks, shield:DescribeAttack,
shield:DescribeProtection, wafv2:GetWebACLForResource) rather than broad Shield or
administrator accessshield:* calls so every Shield Advanced
configuration change leaves an audit trailaws shield list-protections --region us-east-1Constraints:
You MUST list attacks in the time range for the resource:
aws shield list-attacks --resource-arns '["{resource_arn}"]' \
--start-time FromInclusive={from},ToExclusive={to} --region us-east-1You MUST describe the attack to capture vectors, timing, and top contributors:
aws shield describe-attack --attack-id {attack_id} --region us-east-1Constraints:
You MUST confirm protection predated the attack:
aws shield describe-protection --resource-arn {resource_arn} --region us-east-1For CloudFront and Application Load Balancer resources, you MUST confirm a rate-based AWS WAF rule
is in Block mode on the resource by inspecting the web ACL associated with it for a
RateBasedStatement whose Action is Block:
aws wafv2 get-web-acl-for-resource --resource-arn {resource_arn} --region us-east-1(For Application Load Balancer resources, use the load balancer’s own region instead of
us-east-1.)
Constraints:
Constraints:
You MUST present the Shield events console link and tell the customer to open it to review the event detail:
https://us-east-1.console.aws.amazon.com/wafv2/shieldv2#/events{
"resource_arn": "arn:aws:cloudfront::111122223333:distribution/EDFDVBD6EXAMPLE",
"time_range": {"from": "2026-05-01T00:00:00Z", "to": "2026-05-31T23:59:59Z"}
}Found attack a1b2c3d4 on the distribution (May 12, HTTP flood). Captured vectors and top contributors.
Protection predates the attack and a rate-based rule is in Block mode — eligible for cost protection.
File a Billing case with "DDoS Concession" in the subject within 15 days after May billing closes.
Open the Shield console to review the event detail:
https://us-east-1.console.aws.amazon.com/wafv2/shieldv2#/eventsProtection was added after the attack started, or the rate-based rule was in Count mode on a CloudFront or Application Load Balancer resource (Step 3).
Review the Shield event detail, not CloudWatch graphs (Step 2).
The deadline is 15 days after the billing month closes (Step 4).