CloudFront distribution allowing HTTP

A CDN that will happily serve your site unencrypted, with no logging.

4 resources · AWS::CloudFront::Distribution · AWS::CloudFront::OriginAccessControl · AWS::S3::Bucket · AWS::S3::BucketPolicy
Your stack
Ready when you are

Press Run. The stack loaded here fails in a way worth seeing.

What the engine finds7 findings

Not examples — CloudFront distribution allowing HTTP was run through the real engine when this page was built, and this is what it returned.

1 intent check failed· 6 informational
intent 1info 6
ViewerProtocolPolicy is allow-all — plain HTTP is served as-is.INTENT
6 informational findingsno geo restriction, distribution has no, access logging is
No geo restrictionAwsSolutions-CFR1

The CloudFront distribution may require Geo restrictions. Geo restriction may need to be enabled for the distribution in order to allow or deny a country in order to allow or restrict users in specific locations from accessing content.

Full rule text

The CloudFront distribution may require Geo restrictions. Geo restriction may need to be enabled for the distribution in order to allow or deny a country in order to allow or restrict users in specific locations from accessing content.

Distribution has no WAFAwsSolutions-CFR2

The CloudFront distribution may require integration with AWS WAF. The Web Application Firewall can help protect against application-layer attacks that can compromise the security of the system or place unnecessary load on them.

webAclId: webAcl.attrArn
Full rule text

The CloudFront distribution may require integration with AWS WAF. The Web Application Firewall can help protect against application-layer attacks that can compromise the security of the system or place unnecessary load on them. AwsSolutions-CFR2 guide →

Access logging is offAwsSolutions-CFR3

The CloudFront distribution does not have access logging enabled. Enabling access logs helps operators track all viewer requests for the content delivered through the Content Delivery Network.

Full rule text

The CloudFront distribution does not have access logging enabled. Enabling access logs helps operators track all viewer requests for the content delivered through the Content Delivery Network.

Allows insecure TLS versionsAwsSolutions-CFR4

The CloudFront distribution allows for SSLv3 or TLSv1 for HTTPS viewer connections. Vulnerabilities have been and continue to be discovered in the deprecated SSL and TLS protocols. Help protect viewer connections by specifying a viewer certificate that enforces a minimum of TLSv1.1 or TLSv1.2 in the security policy. Distributions that use the default CloudFront viewer certificate or use 'vip' for the 'SslSupportMethod' are non-compliant with this rule, as the minimum security policy is set to TLSv1 regardless of the specified 'MinimumProtocolVersion'.

Full rule text

The CloudFront distribution allows for SSLv3 or TLSv1 for HTTPS viewer connections. Vulnerabilities have been and continue to be discovered in the deprecated SSL and TLS protocols. Help protect viewer connections by specifying a viewer certificate that enforces a minimum of TLSv1.1 or TLSv1.2 in the security policy. Distributions that use the default CloudFront viewer certificate or use 'vip' for the 'SslSupportMethod' are non-compliant with this rule, as the minimum security policy is set to TLSv1 regardless of the specified 'MinimumProtocolVersion'.

No server access logsAwsSolutions-S1

Without server access logs there is no record of who read what. After an incident that is the difference between knowing what leaked and guessing.

serverAccessLogsBucket: logsBucket
New to Amazon S3? Start the S3 concept
Full rule text

The S3 Bucket has server access logs disabled. The bucket should have server access logging enabled to provide detailed records for the requests that are made to the bucket. AwsSolutions-S1 guide →

Requests not forced onto HTTPSAwsSolutions-S10

Requests can arrive over plain HTTP, so object contents and any credentials in the request travel unencrypted across the network.

enforceSSL: true
New to Amazon S3? Start the S3 concept
Full rule text

The S3 Bucket or bucket policy does not require requests to use SSL. You can use HTTPS (TLS) to help prevent potential attackers from eavesdropping on or manipulating network traffic using person-in-the-middle or similar attacks. You should allow only encrypted connections over HTTPS (TLS) using the aws:SecureTransport condition on Amazon S3 bucket policies. AwsSolutions-S10 guide →

Presets

Or start from a stack that fails interestingly

Public S3 bucket

The single most common AI-generated CDK mistake: a bucket left open to the world.

3 rules · 2 intent checks
From Concepts · S3 · Granting public read access
Security group open to 0.0.0.0/0

SSH open to the entire internet — the classic copy-paste ingress rule.

2 rules · 1 intent check
From Concepts · EC2 · Opening the security group for HTTP
S3 static website

Website hosting straight off a bucket — no CDN, no TLS, no access logging.

3 rules · 2 intent checks
Unencrypted RDS instance

A database with storage encryption off and backups barely configured.

6 rules · 2 intent checks
Wildcard IAM policy

Action "*" on Resource "*" — the permission grant that ends incident reviews.

1 rule · 2 intent checks
Public API Gateway with no authorizer

A REST API wired to Lambda, wide open, with no access logging.

7 rules · 1 intent check
DynamoDB table without point-in-time recovery

Fast to write, impossible to restore — no PITR, no encryption choice.

1 rule · 1 intent check
CloudFront distribution allowing HTTP

A CDN that will happily serve your site unencrypted, with no logging.

6 rules · 1 intent check
Unencrypted SQS queue

A queue with no server-side encryption and no dead-letter queue.

2 rules · 2 intent checks
VPC without flow logs

Network traffic no one can reconstruct after the fact.

1 rule · 1 intent check
Cognito pool with a weak password policy

Six characters, no symbols, no MFA — defaults nobody revisited.

3 rules · 2 intent checks
Clean serverless data layerPasses

The one that passes. Encrypted, recoverable, with a dead-letter queue — what good looks like.

no findings — this is what passing looks like