How to setup AWS S3 bucket to be accessed through subdomains with Cloudflare DNS.

Category : Amazon AWS

The client wanted to create a file server for training documents including MP4, PDF, PPT, WMV, etc. that was accessible through different subdomains. DNS managed through Cloudflare.

In Amazon’s S3 dashboard, create a bucket that matches the subdomain you want to use.

2018-08-24_09h04_23

For example, videos.domain.com subdomain would need a matching bucket, videos.domain.com. Make sure the created bucket is set to PUBLIC.

2018-08-24_09h18_40-1

Left click on the bucket to open it. Go to Permissions and CORS configuration.

2018-08-24_09h07_57

Inside CORS configuration, you will need to add this information configured for your subdomain:

<?xml version=”1.0″ encoding=”UTF-8″?>

<CORSConfiguration xmlns=”http://s3.amazonaws.com/doc/2006-03-01/”>

<CORSRule>

<AllowedOrigin>http://videos.domain.com</AllowedOrigin>

<AllowedMethod>PUT</AllowedMethod>

<AllowedMethod>POST</AllowedMethod>

<AllowedMethod>DELETE</AllowedMethod>

<MaxAgeSeconds>3000</MaxAgeSeconds>

<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>

<ExposeHeader>x-amz-request-id</ExposeHeader>

<ExposeHeader>x-amz-id-2</ExposeHeader>

<AllowedHeader>*</AllowedHeader>

</CORSRule>

</CORSConfiguration>

Cloudflare Configuration

You will need to create a CNAME record. Set the name as the subdomain, in our example, this is video.

The Value would be: video.domain.com.s3.amazonaws.com

2018-08-24_09h13_12-1