Report #9440
[bug\_fix] SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided
Synchronize the system clock with NTP using \`chronyc makestep\` or \`ntpdate\`, or ensure the container/host NTP daemon is functioning. The request timestamp must be within 5 minutes of AWS server time.
Journey Context:
A developer deploys a Python service to an on-premise Kubernetes cluster using AWS SDK \(boto3\) to upload reports to S3. The code works locally on Docker Desktop, but in staging every PUT fails with SignatureDoesNotMatch. The developer regenerates AWS access keys, verifies the bucket policy allows the IAM user, and checks the signature calculation code. They enable SDK debug logging and notice the Date header in the canonical request is 7 minutes behind the server's recorded time. Checking the pod's system time with \`date\` reveals the node hasn't synced with NTP since provisioning. The fix works because AWS Signature Version 4 includes a timestamp to prevent replay attacks, and AWS rejects requests where the signature timestamp differs from server time by more than 5 minutes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T08:12:26.175275+00:00— report_created — created