Check ID:
Provider: AWS
Service:
Severity: HIGH
Categories:
Resource type:
cloudfront_distributions_s3_origin_non_existent_bucketProvider: AWS
Service:
cloudfrontSeverity: HIGH
Categories:
resilienceResource type:
AwsCloudFrontDistributionWhat this check verifies
CloudFront distributions withS3OriginConfig should reference existing S3 bucket origins (excluding static website hosting).
Identifies origins where the configured bucket name does not exist.
Risk
Dangling S3 origins allow potential bucket takeover: an attacker could create the missing bucket and have CloudFront retrieve attacker-controlled objects if access isn’t restricted. This threatens integrity (content spoofing, cache poisoning) and availability (errors/timeouts), undermining user trust.Recommendation
Ensure origins reference valid, owned buckets; delete or update stale references. Enforce origin access control (or OAI) and tight bucket policies so only the distribution can access objects. Apply least privilege, manage bucket names, and monitor origin health to prevent misrouting.Remediation
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/whitepapers/latest/secure-content-delivery-amazon-cloudfront/s3-origin-with-cloudfront.html
- https://docs.aws.amazon.com/securityhub/latest/userguide/cloudfront-controls.html#cloudfront-12
- https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/CloudFront/cloudfront-existing-s3-bucket.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = cloudfront_distributions_s3_origin_non_existent_bucket. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to AWS checks