Question:
After I run aws s3 ls
command I get below error message:-
A client error (InvalidRequest) occurred when calling the ListBuckets
operation: You are attempting to operate on a bucket in a region that
requires Signature Version 4. You can fix this issue by explicitly
providing the correct region location using the –region argument, the
AWS_DEFAULT_REGION environment variable, or the region variable in the
AWS CLI configuration file. You can get the bucket’s location by
running “aws s3api get-bucket-location –bucket BUCKET”.
Below are more details and my findings that may help to answer the question:-
- The command is being executed from an EC2 Instance running in
ap-south-1
region. - This Amazon doc says that new region created after Jan 30 2014 only support Signature Version 4.
- As suggested by error message I tried giving command
aws --region ap-south-1 s3 ls
but the this command also gives the same error message. - I have run
yum update
and the AWS CLI version is latest which isaws-cli/1.10.33 Python/2.7.10 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.4.23
- The above
aws s3 ls
command works absolutely fine and lists the buckets if it is executed from an us-east-1 instance.
Answer:
You need to update aws cli
to latest version(v1.11.84 at the time of writing).
If yum update
is not working then try following this Guide to install AWS CLI
The reason behind this error is, in newer regions AWS S3 doesn’t support Lower Signature Version.