Techioz Blog

AWS SSO トークンは (ブラウザーにログインすることで) 自動的に更新できますか?

概要

私は AWS SDK Ruby v3 を使用した Ruby アプリケーションを持っていますが、最近、静的な「キー ID + シークレット」構成の代わりに SSO プロファイルを使用するためのサポートを追加しました。

新しい設定は、トークンが「期限切れ」になり、Aws::Errors::InvalidSSOToken 例外が発生し始めるまで、しばらくはうまく機能します。その時点で、ユーザーは CLI の aws sso ログインを手動で実行してブラウザのログイン画面を表示する必要があります。

SDK が (正しいプロファイルを使用して) aws sso ログイン ステップを直接実行できる場合、手動の AWS CLI 実行ステップをスキップしたかったと思います。

おそらく正しい引数を指定して exec を実行できますが、「SDK の方法」で実行したいと考えています。

解決策

はい、できます。 InvalidSSOToken を取得して SSO 認証を実行するときにエラー ハンドラーを追加できます。

SDKの方法を試したことはありません。 exec cli コマンド aws sso login を試してみました(簡単なので)。トークンとexpiresAtの値を含むcache.jsonファイルが作成されます。

これは私が参考として使用したプロジェクトです: https://github.com/NeilJed/aws-sso-credentials/blob/master/awssso

トークンの有効期限が切れているかどうかを確認するための参考として使用できる部分は次のとおりです。 https://github.com/NeilJed/aws-sso-credentials/blob/master/awssso#L110-L137

これを SDK 経由で Python で実行する別の例を次に示します。 https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://stackoverflow.com/a/71850591/22277802