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
便利ですね。