😬
aws cli を叩くと、謎の文字列が出てくる
この記事の概要
intro
ログ調査をしている開発者から『aws s3 ls を叩くと謎の文字列が出る』というヘルプが。
自分のログインユーザでは出ず、何故かその開発者のアカウント限定で出る模様。
↓こんな感じで出力される
[developer01@work001 ~]$ aws s3 ls s3://xxxxxxxxxxx-logs/app_name/ --profile "DEVELOPER-LOGGET"
'9e5ede4855d2e41bbce753533cf1a66c0ed6f267'
調べてみると、出力文字列と同名のキャッシュファイルが存在していた
[infra01@work001 ~]$ sudo ls -l /home/developer01/.aws/cli/cache/
total 4
-rw------- 1 developer01 developer01 1026 May 26 13:37 53b96da582ae3d148f2df63c03c243ffe4d97970.json
-rw------- 1 developer01 developer01 0 May 26 12:14 9e5ede4855d2e41bbce753533cf1a66c0ed6f267.json
原因・解決策
原因
壊れたプロファイルキャッシュを参照していたこと。
解決策
~/.aws/cli/cache
配下のキャッシュファイル削除
根本原因
ディスク容量のパンクでキャッシュファイルが作れなかった
この出来事から得られた知見
プロファイルを指定してaws cliを実行すると
~/.aws/cli/cache
に一時クレデンシャルが保存されるようです。
When you specify a profile that has IAM role configuration, the AWS CLI will make an AssumeRole call to retrieve temporary credentials. These credentials are then stored (in ~/.aws/cli/cache). Subsequent AWS CLI commands will use the cached temporary credentials until they expire, in which case the AWS CLI will automatically refresh credentials.
outro
意識せず使えてたんで気づきませんでしたね。
ディスク容量の逼迫には気をつけましょう。
Discussion