AWS マネジメントコンソールで「SignatureDoesNotMatch: Signature expired」が表示される

はじめに

こんにちは、インフラ/バックエンド担当の森井です。

先日AWS マネジメントコンソールにログインした際、ELBの一覧画面にて下記のエラーに遭遇したので、解決方法を書き残しておきます。

SignatureDoesNotMatch: Signature expired: 20240627T062045Z is now earlier than 20240627T062802Z (20240627T063302Z - 5 min.)

ELBの一覧画面でELBの一覧が表示される代わりに、「SignatureDoesNotMatch: Signature expired: 20240627T062045Z is now earlier than 20240627T062802Z (20240627T063302Z - 5 min.)」と表示されている。
ELBの一覧画面

原因と解決方法

AWS マネジメントコンソールのログインに使用している端末のシステム時刻が5分以上ずれていることが原因でした。 システム時刻を正しい時刻に修正することでエラーが解消しました。

公式ドキュメントには下記の様に記載されているので、署名付きAPIリクエストの署名検証ステップでRequestDateTimeの値が検証されているようです。

リクエストの有効期限が切れた場合、署名検証ステップは次のエラーメッセージで失敗します。 Signature expired: date is now earlier than date

docs.aws.amazon.com

まとめ

記載したのはELBの一覧画面ですが、他にも様々なエンドポイントで同様のエラーが発生します。 システム時刻がずれていてもエラーが発生しないAPIも多く、画面によっては何のエラーも出なかったりするため問題の特定に少し時間がかかってしまいました。 エラー文言をよく読む重要性を実感した一件でした。