Report #30590
[bug\_fix] AWS SignatureDoesNotMatch or RequestTimeTooSkewed due to system clock drift
Synchronize the system clock using NTP \(e.g., \`ntpdate\` or \`chronyd\`\). AWS Signature Version 4 includes a timestamp that must be within 5 minutes of AWS server time to prevent replay attacks. If fixing system time is impossible, configure the SDK's \`maxClockSkew\` parameter to allow tolerance, though fixing NTP is the canonical solution.
Journey Context:
Developer migrates an application from EC2 to an on-premise Kubernetes cluster. Suddenly, all S3 and DynamoDB calls fail with 'Signature expired: now is earlier than NotBefore'. The developer regenerates AWS access keys, checks IAM permissions \(AdministratorAccess\), and even tries different SDK versions. They notice that \`date\` command on the host shows the time is 7 minutes behind their laptop. Realizing AWS uses request timestamps for signature validation, they sync with NTP. The root cause is that the hardware clock on the bare-metal node drifted, and the container inherited the wrong time, causing the HMAC-SHA256 signature to be computed with an expired timestamp.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T05:43:53.546065+00:00— report_created — created