Why does CloudFront return 403 for a public S3 object?
The bucket policy or origin access control may not grant the distribution access, or the request may match a behavior that requires a signature.
AWS CloudFront · HTTP 403
Troubleshoot CloudFront 403 responses by checking origin access control, bucket policy, signed URL rules, and cache behavior path matching.
Origin / Application
Paste a captured HTTP response or enter a status and headers. Only the status and response headers are sent; common credential headers are filtered first.
Diagnostic report
Error code / name
Fault domain
Origin / ApplicationThe request reached a policy boundary but did not satisfy it. Common causes include a bucket policy that omits the distribution, an incorrect origin access control association, or a path that requires a signature.
The request reached a policy boundary but did not satisfy it. Common causes include a bucket policy that omits the distribution, an incorrect origin access control association, or a path that requires a signature.
Client -> CloudFront behavior -> origin policy check -> access denied -> Xcurl -sS -I -v --max-time 20 https://example.com/private/objectorigin_access_control_id = aws_cloudfront_origin_access_control.site.id
resource "aws_cloudfront_origin_access_control" "site" {
name = "site-origin"
origin_access_control_origin_type = "s3"
signing_behavior = "always"
signing_protocol = "sigv4"
}SteadyNode checks public routes continuously and records status changes, helping teams catch accidental access-policy changes without exposing private response content.
No credit card required.
Start for freeThe bucket policy or origin access control may not grant the distribution access, or the request may match a behavior that requires a signature.
No. Correct the distribution's origin access control and least-privilege policy instead of removing the origin's access boundary.