こんにちは!
11/19にアクセスキーなしでAWS CLIにログインできるという「aws login」コマンドが発表されたかと思います!
https://aws.amazon.com/jp/blogs/security/simplified-developer-access-to-aws-with-aws-login/
今回は実際に触ってみたら少し手こずったので記事にしてみました。
AWS CLIバージョン確認
今回はAmazon LinuxのEC2を利用します。
Amazon LinuxにはAWS CLIがもとからインストールされているので、最新版が入っているかなと思っていきなり「aws login」コマンド打ってみたら
案の定最新版ではなく失敗しました笑
なのでまずは2.32.0以上にアップデートします。
以下の記事の記載に従ってやってみましたがなぜかうまくいかず。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html

Amazon Q developerに聞いたところPATHが追加されていないからではないかということで下記コマンドをやってみたらちゃんとaws --versionで2.32.3になりました。
export PATH=/usr/local/bin:$PATH
aws login 実行
aws loginコマンドを実行すると、ログイン用のURLが出てきます。

このURLを実行したところ以下のようなページとなり、既にブラウザでログインしているとセッションとして上記にそのユーザを選べるように表示されます。

そこで普段マネジメントコンソールにログインするのと同じようにパスワードを入力したところ

127.0.0.1に接続できないというエラーが、、、
わからず途方に暮れていたところ以下の記事を発見しました。
https://dev.classmethod.jp/articles/run-aws-login-from-remote-host/
この記事にあるように「aws login --remote」とオプションをつけたコマンドに変更したところ先ほどのマネジメントコンソールのログインページの後に検証コードのページが出てきました。(よく見るとコマンド実行後のブラウザのURLが若干先ほどと違います)


この検証コードをコピーして「Enter the authorization code displayed in your browser」のところに入力したところログインできました!!

「aws sts get-caller-identity」コマンドで確認したところ問題なくログインできていそうです。

aws configureを登録してあった場合は、aws configureの情報が優先されます。
ログアウトするときはaws logoutで問題ないようです。

まとめ
リモートサーバでaws loginを使うかどうかでコマンドに「--remote」オプションが必要かが変わるというのは大きな学びでした。(自分で解決策に気づけたわけじゃないというのがとても悔しい)
是非こちらの記事参考に皆さんもaws loginコマンド利用してみてください!
