set setting reset

インフラ関連の小ネタと備忘録

A client error (AuthFailure) occurred when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials

はじめに

何気なく awscli を叩いたら表題のエラーが出たので調査しました。

つい先日当該アカウントの IAM User 棚卸しをしてアクセスキーの整理をしたのでその影響だろうと思われました。
当該インスタンスには IAM Role が付与されてはいたものの、実際はローカルに残存していたアクセスキーで API を叩いているのでは?という状況です。

環境

  • EC2
  • CentOS 6.7
  • やりたい操作を許可する IAM Role 付与済み

調査

まず、アクセスキーが残存しているのだろうと思い、 ~/.aws/credentials を確認。
たしかに鍵の記述があったのでそれを削除。ただ、依然としてエラーのまま。

よくわからないためぐぐると awscli には --debug オプションがあることがわかり、早速実行すると以下のメッセージを発見。

MainThread - botocore.credentials - INFO - Found credentials in boto config file: ~/.boto

なるほどと ~/.boto を確認すると、こちらにもアクセスキーが記述されていました。

対応

~/.boto を削除してエラーが解消されました。

さいごに

--debug 便利ですね。