Access Denied for index.html Amazon S3 static website
Asked Answered
H

2

12

I've set up an example static website on Amazon S3 and I added a custom folder to it with file inside: custom-folder/index.html, but I'm getting Access Denied error when trying to access url /custom-folder.

The index document is configured to be index.html, so S3 should serve index.html when I'm accessing /custom-folder url, but it doesn't work.

How can I fix this?

Harkey answered 31/12, 2017 at 9:25 Comment(2)
what URL are you using to access the bucket? is it similar to: http://examplebucket.s3-website-us-west-2.amazonaws.com/custom-folder/Levirate
I use this URL: https://s3.amazonaws.com/aws-website-myexamplewebsite/custom-folder It's a default URL that amazon set up for me when I chose "example static website"Harkey
L
31

It seems you are using the wrong URL to access the bucket. For example, when you enable to static website hosting feature in S3 (us-west-2 in this example), you are given a URL with the following format:

Endpoint : http://bucket-name.s3-website-us-west-2.amazonaws.com

You can see your endpoint by going to S3 > Click on your bucket > Bucket Properties > Static website hosting > should reveal your endpoint.

enter image description here

Levirate answered 31/12, 2017 at 10:54 Comment(3)
Yes! It helped. Thank you a lot Eytan!Harkey
you saved my dayAsci
A little more explanation on this would be nice - the problem is that it's really easy to accidentally use the s3 REST API endpoint which will cause these access denied issues on static site sub pages (the REST s3 endpoint for a bucket is not meant to host a site). Additional reading: aws.amazon.com/premiumsupport/knowledge-center/… - You gave the correct solution, it's just nice to know more about the "why".Sophronia
H
9

In case it helps anyone else, I was using a AWS Cloudfront Distribution on top of an S3 bucket.

The solution to the "Access Denied" issue for me was to perform the / to /index.html redirect in Cloudfront (rather than S3).

This is achieved by setting the "Default Root Object" to index.html on the AWS Cloudfront Distribution (and disabling "Static website hosting" entirely in S3).

Hellenize answered 21/10, 2020 at 11:24 Comment(3)
Per usual - can't find this anywhere in the AWS docs and this is exactly what I needed - thanks!Mothering
Saved me! Thank you, I did not turn off the static hosting option and things are still working.Glycerite
This worked for me and I didn't even disable Static Wwebsite Hosting on the S3 bucket.Steading

© 2022 - 2025 — McMap. All rights reserved.