SECURITY WARNING: Never run commands you don't understand. Always review code before execution. Use at your own risk.
Storage New Added 28 August 2026

AWS S3: SignatureDoesNotMatch

The SigV4 signature computed by the client differs from the one S3 computed. Causes: wrong secret key, clock skew beyond five minutes, the wrong region in the signing scope, or a proxy that altered headers after signing.

Quick fix

Read the commands before running them. Anything that restarts a service, deletes data or changes permissions should be tried on a non-production system first.

Quick fix
# 1. Clock skew: the most common and least obvious cause
date -u && timedatectl status
sudo chronyc makestep   # or: sudo ntpdate -u pool.ntp.org

# 2. Region must match the bucket's region
aws s3api get-bucket-location --bucket my-bucket
export AWS_REGION=eu-west-1

# 3. Whitespace/newline in the secret from an env file
printf '%s' "$AWS_SECRET_ACCESS_KEY" | wc -c   # should be 40

# 4. Anything rewriting headers between signing and S3 breaks the signature.

How to diagnose Storage errors

Storage errors are dominated by permissions and locality. S3 access denials can come from an IAM policy, a bucket policy, a Block Public Access setting, an ACL or a KMS key policy: five independent layers, all of which must allow the call. Block storage errors are usually about availability zones: a volume can only attach to an instance in the same AZ.

If the quick fix above does not resolve it, work through these steps. They apply to this whole class of error, not just to this one message, which is usually what saves the time.

  1. For S3 denials, check all five layers: IAM policy, bucket policy, Block Public Access, object ACL and the KMS key policy if the object is encrypted with a customer-managed key.
  2. Confirm the region and the exact bucket name. A bucket in another region returns a redirect or a permanent error that reads like a permission problem.
  3. For signed URLs, check the expiry and that the clock on the signing machine is correct. A skewed clock produces URLs that are already expired.
  4. For NFS stale file handles, remount rather than retrying; the file the handle referred to no longer exists on the server.
  5. For volume attachment failures, verify the availability zone matches and that the volume is in the available state, not still attached elsewhere.

Tools worth reaching for

  • aws s3api get-bucket-policy
  • IAM Policy Simulator
  • mount -v / showmount -e
  • df -h / du -sh
  • aws ec2 describe-volumes

Authoritative references

Primary documentation for this error, worth reading before applying any fix in production.

docs.aws.amazon.com

Related Storage errors

See all 13 Storage errors →

Browse other categories

Something missing or wrong?

This entry is maintained by hand. If the fix is out of date, incomplete, or you have a better one, email a correction and it will be reviewed.