発生したエラー
[nkym@localhost ~]$ aws ec2 describe-instances
An error occurred (AuthFailure) when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials
原因特定までの道のり
1.aws configure
を叩いてキーを確認
問題なし。
2.IAM
確認
問題なし。
3.aws --debug ec2 describe-instances
を叩いてデバッグ
[nkym@localhost ~]$ aws --debug ec2 describe-instances
<省略>
2018-06-11 16:57:10,271 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "POST / HTTP/1.1" 401 None
<省略>
http 401がでている。
このデバッグのログを調べたところ、時間がずれているとaws-cliが通らないとの情報入手(先人の方々と公式ドキュメントに感謝)。
公式ドキュメント:https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/set-time.html
4.date
コマンド叩く
ローカルPCの時刻が正しい時間から5分進んでいるのでこれが原因。
#解決
以下のコマンドを叩いてntpサーバと同期して解決。
sudo ntpdate -v ntp.nict.jp
私の場合は社内のポート123が閉じられてたので社内ntpサーバを指定したが、
時刻同期がしっかりしていれば問題なく使用できた。
#蛇足
ためしにsudo date -s "06/11 17:00 2018"
というコマンドを時刻になった時に、
目測で合わせてあげてもaws-cliは問題なかった。
ntpサーバと同期するのが一番ではあるが気になったので。