InvalidSignatureException: 서명이 만료되었습니다.
TL;DR — 서명된 AWS 요청은 서명에 구운 타임스탬프로부터 최대 5분 이내에 서비스에 도달해야 합니다. 이 오류는 시스템의 시계가 AWS 서버 시간과 너무 멀어(시계 오차) 서명이 "만료"되었거나 "아직 최신이 아님"을 의미합니다. 클라이언트 시계 수정 - NTP 시간 동기화를 활성화합니다.
무엇을 의미하는가
InvalidSignatureException: Signature expired: 20260712T101500Z is now earlier
than 20260712T101700Z (20260712T102200Z - 5 min.)서명 버전 4는 타임스탬프와 함께 각 요청에 서명합니다. AWS는 자체 시계를 기준으로 해당 타임스탬프를 검증하고 대략 5분 범위(Signature expired(클라이언트 시계 뒤짐) 또는 Signature not yet current(클라이언트 시계 앞선))를 벗어나는 모든 항목을 거부합니다. 클라이언트 측 HTTP 400입니다. 시계가 수정될 때까지 블라인드 재시도가 다시 실패합니다.
왜 발생하는가
- 클라이언트 시계 드리프트 — 앱을 실행하는 호스트의 시계가 정확하지 않습니다(VM 일시 중지/재개, 시간 동기화가 없는 컨테이너, IoT/에지 장치, CI 실행기).
- NTP가 실행되지 않음 — OS 시계를 규율적으로 유지하는 것이 없으므로 5분 허용 오차를 천천히 넘어갑니다.
- 요청 타임스탬프를 잘못 계산하는 수동 서명자의 잘못된 시간대/UTC 처리.
- 장기 일시 중지된 프로세스 — 오래된 시간 감각으로 인해 오랫동안 일시 중지된 후 재개된 노트북 또는 Lambda 스타일 환경입니다.
어떻게 해결하는가
- 호스트(
chrony/systemd-timesyncd/w32time)에서 NTP 시간 동기화를 활성화하고 시계가 실제 UTC의 1초 내에 있는지 확인합니다. - 시계 비교: 신뢰할 수 있는 소스와 비교하여 클라이언트의 UTC 시간을 확인하세요. 분 단위로 어긋나면 그게 원인입니다.
- VM 재개 또는 컨테이너 시작 후 시간 동기화 서비스를 다시 시작(또는 수동으로 다시 동기화)합니다.
- AWS SDK 업그레이드 — 최신 SDK는 시계 오차 오류를 감지하고 수정된 오프셋으로 자동 재시도합니다. 이전 SDK는 그렇지 않을 수 있습니다.
타임스탬프 및 왜곡 시 재시도 처리가 자동으로 수행되도록 직접 작성한 SigV4 서명자보다 공식 AWS SDK를 선호합니다.
DynoTable에서
DynoTable은 서명에 AWS SDK를 쓰며, 최신 빌드에서는 시계 편차 보정이 포함됩니다(AWS 계정 연결). 이 오류가 커스텀 스크립트에만 나오고 DynoTable 연결은 정상이라면, 문제는 그 클라이언트의 시계나 서명기에 국한됩니다 — 설정 → 프로필에서 그 프로필의 연결 테스트와 비교하세요. 절전 상태인 CI 러너나 VM에서는 앱/테스트를 돌리기 전에 NTP를 켜세요.
최신 AWS SDK는 시계 편차 오류를 감지해 보정된 오프셋으로 재시도합니다. 직접 만든 서명기에서만 이 오류가 보인다면 DynamoDB를 탓하기 전에 SDK를 올리거나 호스트에서 NTP를 켜세요. DynoTable은 SDK 경로만 사용합니다 — 커스텀 SigV4 조립은 없습니다. 쿼리 빌더로 시계와 프로필이 맞춰진 뒤 읽기가 성공하는지 확인할 수 있습니다.
관련 오류
- The security token expired — 임시 자격 증명이 만료되었습니다(다른 종류의 "만료됨").
- The request signature we calculated does not match — 시계가 아닌 잘못된 키로 인한 서명 불일치.
- Credential should be scoped to a valid region — 지역 범위 SigV4 오류.
출처
- AWS Signature Version 4 for API requests — IAM User Guide (2026-07-13 확인 — 5분 재생 창)
- Troubleshoot Signature Version 4 signing for AWS API requests — IAM User Guide (2026-07-13 인증)
- Error handling with DynamoDB — Amazon DynamoDB Developer Guide (2026-07-13 인증)
- Clock-skew correction — AWS Developer Tools Blog (2026-07-13 인증)