🌊
WSL2(Ubuntu)と親(Windows)との時間差でAWSのAPIが認証されなかった
概要
Dockerで生成したフロントエンドのアプリで
AWSの認証キーが通らなかった。
原因としてはサーバーの時間がずれていて、そこで怒られていた。
日本時間に直しつつ、同期されるようにしたら通った
エラー内容
dynamoDBにアイテムの追加ができなかった。
"Error executing "PutItem" on "https://dynamodb.ap-northeast-1.amazonaws.com"; AWS HTTP error: Client error: `POST https://dynamodb.ap-northeast-1.amazonaws.com` resulted in a `400 Bad Request` response:{"__type":"com.amazon.coral.service#InvalidSignatureException","message":"Signature expired: 20240217T004403Z is now ear (truncated...) InvalidSignatureException (client): Signature expired: 20240217T004403Z is now earlier than 20240218T021910Z (20240218T023410Z - 15 min.) - {"__type":"com.amazon.coral.service#InvalidSignatureException","message":"Signature expired: 20240217T004403Z is now earlier than 20240218T021910Z (20240218T023410Z - 15 min.)"}"
対応
ロケールを日本に変更(そのあと一度ターミナルを閉じる)
sudo update-locale LANG=ja_JP.UTF-8
タイムゾーンをJSTに変更(東京を選択)
sudo dpkg-reconfigure tzdata
時間を同期サーバーに紐づけ
sudo ntpdate ntp.ubuntu.com
ローカルPCとの紐づけを強制
これをしないと、時間経った後にずれが生じる
sudo hwclock -s
正しい時間か確認
date
Discussion