/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

api error SignatureDoesNotMatchが出たときは時間を疑う

家の開発機が突然以下のエラーを吐くようになった。

$ aws-vault exec user01 -- aws s3 ls
aws-vault: error: exec: Failed to get credentials for user01: operation error STS: AssumeRole, https response error StatusCode: 403, RequestID: 6a84e405-fbf4-4362-848d-3ff14c9dca32, api error SignatureDoesNotMatch: Signature expired: 20250517T105618Z is now earlier than 20250517T111643Z (20250517T113143Z - 15 min.)

つい数時間前まで使っていたのになぜ・・・・

 

原因

エラーメッセージにもあるように、生成されたシグネチャーがおかしいとのこと。これってAWSに限らず、何かしらのAPIをたたくときによく見るやつ。

で、時間を確認してみたら確かに時間がずれていた。

$ timedatectl status
               Local time: Sat 2025-05-17 10:58:05 UTC
           Universal time: Sat 2025-05-17 10:58:05 UTC
                 RTC time: Sat 2025-05-17 10:58:05
                Time zone: Etc/UTC (UTC, +0000)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

UTCでわかりづらかったのでついでにJSTに直しておいた。NTPでの同期はONになっていたのでよかった。

$ sudo timedatectl set-timezone Asia/Tokyo

改めて時刻関連の情報取得。

$ sudo timedatectl status
               Local time: Sat 2025-05-17 20:00:36 JST
           Universal time: Sat 2025-05-17 11:00:36 UTC
                 RTC time: Sat 2025-05-17 11:00:37
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

少なくとも時間がずれているのでtimedatectrlにて直そうとしたが以下のエラーにてできなかった。NTP同期がONになっていると手動で設定するのはできないのね。

$ sudo timedatectl set-time '2025-05-17 20:36:10'
Failed to set time: Automatic time synchronization is enabled

ってことでdateコマンドで強制的に修正。

$ sudo date -s '2025-05-17 20:36:10'
Sat May 17 20:36:10 JST 2025

これで時間はあった。15分以上のずれがなければとりあえずいいので、細かい秒関連のはNTPに任せる。

$ sudo timedatectl status
               Local time: Sat 2025-05-17 20:37:09 JST
           Universal time: Sat 2025-05-17 11:37:09 UTC
                 RTC time: Sat 2025-05-17 11:37:09
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

これで治った。

 

まとめ

Signature~~~~とかそういうのが出てきた場合は時間がずれていないかというのを確認してみると治る場合があるので参考までに。

っていうか何で時間ずれたんだろう・・・・

それではー。