AWS APIを利用する場合はAPI発行側の時刻を合わせておく必要がある

記事タイトルとURLをコピーする
AWSのAPIを利用する場合、API発行側の時刻にずれがあるとAWSからAuthFailureが返却される場合があります。このため、API発行側の時刻はNTPなどを用いて正しい時刻に合わせておく必要があります。
では、なぜ時刻が重要なのでしょうか。その理由はAPI発行時の署名にあります。 AWSのAPIを利用する場合には署名が必要で、公式ドキュメントにも記述があります。 https://docs.aws.amazon.com/ja\_jp/general/latest/gr/signing\_aws\_api\_requests.html

署名の要素として「タイムスタンプ」があります。これはリプレイ攻撃(盗聴した情報を再利用し攻撃すること)を防ぐための要素となっています。 このタイムスタンプはAPIを発行するクライアント側で挿入する値となります。

例えばAWS CLIや各種SDKを用いた場合、クライアントの時刻を取得し署名として利用されます。 このため、冒頭に記載したようにAPI発行側の時刻がずれているとAuthFailureが返却されるということとなります。

もし、クレデンシャルは正しいはずなのにAWS CLIやSDKでAuthFailureが返却される場合には、時刻があっているか確かめてみてください。