2025年11月、AWS Command Line Interface(CLI)に新コマンド"aws login"が追加されました。
"aws login"を使うことで、AWSマネジメントコンソールと同じサインイン方法を使って、AWS CLIからAWSにアクセスできるようになりました。
これまでのローカル開発では、IAMユーザーのアクセスキーを「~/.aws/credentials」に保存して使っていた方もいるかと思います。
便利ではあるものの、
- キーの漏えいリスク
- ローテーションの手間
- MFA 必須環境との相性の悪さ
といった課題がありました。
"aws login"を使うと、コンソールにサインインするときと同じブラウザベースの認証フローで、一時的なクレデンシャルが払い出されます。
一時クレデンシャルを使うため、アクセスキーをローカルに置かなくてよく、セキュリティ面・運用面でも扱いやすくなるはずです。
この記事では、実際に手元の Windows 環境で
- AWS CLI のアップデート
aws loginの実行aws sts get-caller-identityによる動作確認aws logoutの挙動確認
までを試した結果を紹介します。
AWS CLI新コマンド"login"を使ってみた
■現在のバージョン確認
"aws login"コマンドは、「AWS CLI version 2.32.0」でサポートされた新機能です。
まずは現在のバージョンを確認しておきましょう。
aws --version
【コマンド結果】
C:\Users\csnp0001>aws --version
aws-cli/2.7.32 Python/3.9.11 Windows/10 exe/AMD64 prompt/off
最初にインストールしてから全くアップデートしていませんでした、、、
■awscliアップデート
以下のAWS公式ドキュメントの手順を利用し、アップデートを行います。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html#getting-started-install-instructions
インストーラを実行し、完了させてください。

↓

バージョンを確認すると、要件を満たすバージョンまで上がりました。
aws --version
【コマンド結果】
C:\Users\csnp0001>aws --version
aws-cli/2.32.2 Python/3.13.9 Windows/11 exe/AMD64
■アクセスキーを退避
まずは、これまで使っていたアクセスキーとバッティングしないように、既存設定を整理します。
"credentials"を削除、もしくはファイル名を変更し退避します。

今後アクセスキーを使わないのであれば、削除しましょう。
awscliがcredentialsを読み込まないか確認します。
aws configure list
【コマンド結果】
C:\Users\csnp0001>aws configure list
NAME : VALUE : TYPE : LOCATION
profile : <not set> : None : None
Error loading login session token: Unable to load a existing login session for session arn:aws:iam::123456789012:user/CPI-SAITO, Please reauthenticate with 'aws login'.
■現在のログイン状況
続いて、現在AWSへの認証状況を確認します。
aws sts get-caller-identity
【コマンド結果】
C:\Users\csnp0001>aws sts get-caller-identity
Error loading login session token: Unable to load a existing login session for session arn:aws:iam::123456789012:user/CPI-SAITO, Please reauthenticate with 'aws login'
認証がされていない状態を確認できました。
■ログイン実行
それでは、新コマンドのaws loginを実行してみましょう。
aws login
【コマンド結果】
C:\Users\csnp0001>aws login
Attempting to open your default browser.
If the browser does not open, open the following URL:
https://ap-southeast-1.signin.aws.amazon.com/v1/authorize?response_type=code&client_id=arn%3Aaws%3Asignin%3A%3A%3Adevtools%2Fsame-device&state=xxxxxxxxxxxxxxxxxxxxx0&code_challenge_method=SHA-256&scope=openid&redirect_uri=http%3A%2F%2F127.0.0.1%xxxxxx%2Foauth%2Fcallback&code_challenge=5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
実行すると、ブラウザが立ち上げってきました。マネジメントコンソールにログインするときと一緒ですね。

↓

↓

ブラウザ側でログインが完了すると、コマンドプロンプトに続きが出力されました。
【コマンド結果】
C:\Users\csnp0001>aws login
Attempting to open your default browser.
If the browser does not open, open the following URL:
https://ap-southeast-1.signin.aws.amazon.com/v1/authorize?response_type=code&client_id=arn%3Aaws%3Asignin%3A%3A%3Adevtools%2Fsame-device&state=xxxxxxxxxxxxxxxxxxxxx0&code_challenge_method=SHA-256&scope=openid&redirect_uri=http%3A%2F%2F127.0.0.1%xxxxxx%2Foauth%2Fcallback&code_challenge=5xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Updated profile default to use arn:aws:iam::123456789012:user/CPI-SAITO credentials.
すんなり行けたので本当にログインできるか不安ですが、awsへの接続確認を実施してみます。
aws sts get-caller-identity
【コマンド結果】
C:\Users\csnp0001>aws sts get-caller-identity
123456789012 arn:aws:iam::123456789012:user/CPI-SAITO <ID>
問題なく認証情報が返ってきました。
「.aws」フォルダに新たに「login」というフォルダが作成されており、中を見ると「cache」フォルダ配下に、"accessToken"などが記述されたjsonファイルが作成されていました。

↓

↓

jsonファイルの中身は以下の通りです。
【キー一覧】
- accessKeyId
- secretAccessKey
- sessionToken
- accountId
- expiresAt
- tokenType
- clientId
- refreshToken
- idToken
- dpopKey
AWS CLIの新コマンド"aws login"の確認は以上です。
■余談"logout"?
AWS CLIのリファレンスを見ていると、"login"の下に"logout"がありました。

logoutを実施してみると、
C:\Users\csnp0001>aws logout
Removed cached login credentials for profile 'default'. Note, any local developer tools that have already loaded the access token may continue to use it until its expiration. Access tokens expire in 15 minutes.
どうやらログアウトしたようです。
再度awscliで認証確認を実行すると、
【コマンド結果】
C:\Users\csnp0001>aws sts get-caller-identity
Error loading login session token: Unable to load a existing login session for session arn:aws:iam::123456789012:user/CPI-SAITO, Please reauthenticate with 'aws login'.
どうやらログアウトし、セッションが切れたようです。
「cashe」フォルダを見てみると、jsonファイルが削除されていました。

「.aws\login\cashe」配下のjsonファイルが消えていることからも分かるように、aws logoutはloginで取得した一時クレデンシャルをローカルから削除する動作になっているようです。
CLIを使い終わったタイミングに実行しておくと安心ですね。
まとめ
実際に"aws login"を触ってみて感じたポイントをまとめると、
- アクセスキーをローカルに置かなくてよいため、セキュリティリスクを下げられる
- MFA必須環境でも運用しやすい
一方で、これまでアクセスキー前提で構成してきたツール類(例:Terraform)についてはどうなのかといった観点で整理が必要だと感じました。
Terraformとの連携については、"aws login"で取得した一時クレデンシャルをそのまま使えるのか今後検証していく予定です。
参考リンク:AWS CLI Command Reference
↓ほかの協栄情報メンバーのAWS CLIについての記事を公開しています。ぜひ参考にしてみてください。
■AWS CLIのMFAデバイスセットアップ手順(musaka.k)
■Amazon EC2インスタンス(RHEL9)にAWS CLIをインストールする手順(齊藤弘樹)


