3
votes

I know I can determine the region for AWS S3 buckets I own by doing:

aws s3api get-bucket-location --bucket <my-bucket>

but how can I determine the region for a public access bucket (which clearly I do not own)?

If I try to access one of the AWS Open Data buckets like noaa-goes16:

$ aws s3api get-bucket-location --bucket noaa-goes16

I get:

An error occurred (AccessDenied) when calling the GetBucketLocation operation: Access Denied
2

2 Answers

2
votes

Yeah, you would think this would be easier to figure out, but here's the method I use:

$ curl -sI https://noaa-goes16.s3.amazonaws.com | grep bucket-region

which returns:

x-amz-bucket-region: us-east-1
2
votes

Any objects returned from the bucket will respond with a x-amz-bucket-region header which contains the buckets region.

In addition by running a head command curl --head $BUCKET_NAME.s3.amazonaws.com against your bucket you can see the above header to identify the region your bucket is in.