Report #14896
[bug\_fix] AWS SignatureDoesNotMatch or RequestTimeTooSkewed due to client clock drift exceeding 5 minutes
Synchronize the system clock using NTP \(e.g., \`chronyc makestep\` or \`ntpd -gq\`\). AWS Signature Version 4 embeds a timestamp; if the client clock differs from AWS server time by more than 5 minutes, the signature validation fails because the computed signature appears expired or from the future.
Journey Context:
A developer deploys a data ingestion service to an on-premise Kubernetes cluster. The service uses the AWS SDK for Python \(Boto3\) to stream data to S3. Everything works in the staging environment \(AWS EC2\), but in production, every PUT request fails with 'SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided.' The developer regenerates IAM access keys, verifies the bucket policy allows the IAM role, and even adds explicit S3 permissions. They capture request logs and notice the 'x-amz-date' header is 7 minutes behind the actual server time returned in the error XML. Checking the Kubernetes node with \`date\` reveals the hardware clock drifted after a BIOS update disabled NTP. After running \`timedatectl set-ntp true\`, the drift corrects and S3 uploads resume successfully.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T22:43:22.908036+00:00— report_created — created