Closed3

AWS IAM Identity Center(AWS SSO)を使用している場合にrainのコマンドが失敗する

kagamirrorkagamirror

事象

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
kagamirrorkagamirror

調査

  • ぐぐると、以下のイシューがヒットした。「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にクローズされました