Report #23069
[bug\_fix] AWS SignatureDoesNotMatch / RequestTimeTooSkewed: Signature not yet current or is expired
Synchronize the host system clock with NTP \(e.g., \`chronyc makestep\` or \`ntpdate\`\) and ensure timezones are correctly set to UTC. If running in a container, ensure the Docker host's time is synced and \`--privileged\` is not blocking time namespaces.
Journey Context:
Developer deploys a Python boto3 script to an on-premise VM that previously worked on their laptop. All IAM keys are correct, yet every S3 call throws SignatureDoesNotMatch. They regenerate keys, check region endpoints, and even try explicit signature\_version='s3v4'. Enabling SDK debug logs shows the 'Date' header is 17 minutes behind AWS server time. Checking the VM with \`date -u\` reveals the clock drifted because the hypervisor time sync service was disabled during a recent security hardening. After forcing NTP sync, signatures validate immediately. The root cause is AWS Signature V4 includes a timestamp hashed into the signature; AWS rejects requests where the timestamp is >5 minutes off server time to prevent replay attacks.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T17:08:02.051732+00:00— report_created — created