Closed3
AWS IAM Identity Center(AWS SSO)を使用している場合にrainのコマンドが失敗する
事象
AWS IAM Identity Center(AWS SSO)を使用している場合に、rainコマンドを実行しようとしても、credentialsが間違ってるみたいなエラーが出てしまう。
具体的なエラー内容
$ rain info --debug
DEBUG: Loading AWS config
DEBUG: Error retreiving creds: failed to refresh cached credentials, the SSO session has expired or is invalid: open /Users/xxxxxx/.aws/sso/cache/72f37f6c615c37d0fa6fc6fdgh565290e505d722.json: no such file or directory
panic: could not establish AWS credentials; please run 'aws configure' or choose a profile [recovered]
panic: could not establish AWS credentials; please run 'aws configure' or choose a profile
備考
-
aws configure sso
を実行してSSOプロファイルは作成済み
~/.aws/config
[profile dev-profile]
sso_session = my-sso
sso_account_id = XXXXXXXXXXXXX
sso_role_name = PowerUserAccess
region = us-west-2
[sso-session my-sso]
sso_start_url = https://xxxxxxxx.awsapps.com/start
sso_region = us-west-2
sso_registration_scopes = sso:account:access
調査
-
ぐぐると、以下のイシューがヒットした。「AWS SSOに対応していないSDKやアプリは数多くあるため、AWS SSO未サポートのアプリを使うときはaws-sso-util credential-processとかを利用するといいよ〜」みたいな話で、今回の事象と関係ありそうであんまり関係なさそう。
-
rainのデバッグログに
/Users/xxxxxx/.aws/sso/cache/72f37f6c615c37d0fa6fc6fdgh565290e505d722.json: no such file or directory
と出力されており、たしかにそんなJSONファイルは存在しなかった。 -
rainをアンインストールしたり、AWS SSOプロファイルを再構成したり、~/.aws/sso/cacheを削除したり色々やったが、なぜか永遠にこのJSONファイルを参照しようとするので前進しない。
-
そこで、すでに存在するほかのJSONファイルの中身をコピーして
72f37f6c615c37d0fa6fc6fdgh565290e505d722.json
を作ってみたところ、rainコマンドが通るようになった。$ ls -al ~/.aws/sso/cache xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.json yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy.json $ cp ~/.aws/sso/cache/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.json ~/.aws/sso/cache/72f37f6c615c37d0fa6fc6fdgh565290e505d722.json
まとめ
解決したけれど何が悪かったかよく分からない。
このスクラップは2023/04/25にクローズされました