😬

aws cli を叩くと、謎の文字列が出てくる

2022/05/26に公開

この記事の概要

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.

https://docs.aws.amazon.com/cli/latest/topic/config-vars.html

outro

意識せず使えてたんで気づきませんでしたね。
ディスク容量の逼迫には気をつけましょう。

Discussion