Global Accelerator accelerator is protected by AWS Shield Advanced
AWS Global Accelerator accelerators are assessed for enrollment in Shield Advanced as protected resources, indicating whether enhanced DDoS coverage is configured for each accelerator.
Risk
Without Shield Advanced, Global Accelerators are more vulnerable to volumetric and protocol DDoS that can exhaust capacity, causing availability loss, elevated latency, and disrupted failover. Limited visibility and no SRT support prolong incidents and can trigger unexpected cost spikes from malicious traffic.
Run this check with Prowler
Run in Prowler Cloudprowler aws --checks shield_advanced_protection_in_global_acceleratorsRecommendation
Add each Global Accelerator as a protected resource in Shield Advanced. Apply defense in depth with AWS WAF where applicable, enable proactive monitoring and alerting, and use Firewall Manager to enforce coverage across accounts. Follow least privilege to restrict who can modify protections.
Remediation
CLI
aws shield create-protection --name <example_resource_name> --resource-arn <example_resource_id>Terraform
# Enable Shield Advanced protection for a Global Accelerator accelerator
resource "aws_shield_protection" "protection" {
name = "<example_resource_name>"
resource_arn = "<example_resource_id>" # Critical: ARN of the Global Accelerator accelerator to protect
}NativeIaC
# CloudFormation: Add Shield Advanced protection to a Global Accelerator accelerator
Resources:
ShieldProtection:
Type: AWS::Shield::Protection
Properties:
Name: <example_resource_name>
ResourceArn: <example_resource_id> # Critical: ARN of the Global Accelerator accelerator to protectOther
Check Code
from prowler.lib.check.models import Check, Check_Report_AWS
from prowler.providers.aws.services.globalaccelerator.globalaccelerator_client import (
globalaccelerator_client,
)
from prowler.providers.aws.services.shield.shield_client import shield_client
class shield_advanced_protection_in_global_accelerators(Check):
def execute(self):
findings = []
if shield_client.enabled:
for accelerator in globalaccelerator_client.accelerators.values():
report = Check_Report_AWS(
metadata=self.metadata(), resource=accelerator
)
report.region = shield_client.region
report.status = "FAIL"
report.status_extended = f"Global Accelerator {accelerator.name} is not protected by AWS Shield Advanced."
for protection in shield_client.protections.values():
if accelerator.arn == protection.resource_arn:
report.status = "PASS"
report.status_extended = f"Global Accelerator {accelerator.name} is protected by AWS Shield Advanced."
break
findings.append(report)
return findings