Platforms
Amazon S3 static website hosting
A site served from Amazon S3 is recognisable from a `Server: AmazonS3` header, `x-amz-request-id` or bucket-region headers, and bucket URLs in the markup. Two properties of S3 matter in an audit: S3 website endpoints do not support HTTPS, so an HTTPS site on S3 needs something in front such as CloudFront; and a request to the root of a bucket's REST endpoint returns a list of the object keys, where the website endpoint returns the index document instead.
How the engine recognises it
`Server: AmazonS3` — weight 90.
An `x-amz-request-id` or `x-amz-bucket-region` header — weight 70.
A bucket URL on `amazonaws.com` in the markup — weight 55, which shows the site loads files from S3 without proving the page itself is served from it.
It is reported as an S3 detection, never as proof that the rest of the infrastructure runs on AWS.
No HTTPS on website endpoints
The S3 documentation states that website endpoints do not support HTTPS, and points to CloudFront for serving an S3-hosted static website over HTTPS.
A custom domain pointing straight at a website endpoint can therefore only be served over plain HTTP.
An HTTPS site built on S3 has a CDN or proxy in front, and that layer is what an audit's transport checks describe.
A site found answering only over HTTP from S3 is usually missing that layer.
Website endpoints follow a Region-specific format — `bucket-name.s3-website-Region.amazonaws.com` or, in some Regions, `bucket-name.s3-website.Region.amazonaws.com` — and the documentation writes them with `http://`.
Listing instead of an index page
The documentation's comparison of endpoints is precise: at the root of a bucket, the REST endpoint returns a list of the object keys, while the website endpoint returns the configured index document.
A publicly readable bucket reached through the REST endpoint therefore lists every file name it contains, including files nobody linked to.
That is the S3 form of a directory listing, and it is reported like one.
Account-level Block Public Access settings are how AWS lets owners prevent public access regardless of individual bucket policies.
What recognition does and does not prove
It proves a response or an asset came from S3.
It does not show the bucket's policy, its Block Public Access configuration or its region beyond what a header states.
It does not show whether other buckets exist or what they contain; none are ever enumerated.
Files loaded from an S3 bucket by a page on another host prove only that the bucket serves those files publicly.
Which checks apply
`technology.aws` reports the S3 and CloudFront products observed, with the caveat that it says nothing about the rest of the infrastructure.
`infrastructure.cloud_provider` and `infrastructure.hosting` place the detection among the other infrastructure signals.
`transport.https` and `transport.http_redirect` report whether HTTPS is served at all.
`wordpress.directory_listing` and the listing problem page cover listings; an S3 key listing is reported in the same terms.
REST endpoint and website endpoint
The S3 documentation contrasts the two endpoints directly: the website endpoint supports only publicly readable content, while the REST endpoint supports public and private content.
Errors differ too: the REST endpoint returns XML error responses, the website endpoint returns an HTML document.
Only the website endpoint supports object- and bucket-level redirects, and it accepts only GET and HEAD requests on objects.
An XML error body on a site's pages is therefore a sign it is being served from the REST endpoint — the one that lists keys at the bucket root.
Frequently asked questions
- Can an S3 website endpoint serve HTTPS?
- No. The S3 documentation says website endpoints do not support HTTPS; put CloudFront or another HTTPS-capable layer in front.
- Why does my bucket URL show a list of files?
- Because the REST endpoint of a publicly readable bucket returns its object keys at the root. The website endpoint returns the index document instead.
- Does S3 in the markup mean my site is hosted on AWS?
- Only that files are loaded from an S3 bucket. The page itself may be served from anywhere.
Sources
Related
VeriFixScan crawls a site and applies its checks to every page it reaches, keeping the evidence behind each finding. Scanning one website is free.
Scan a website