3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「aws login」コマンド 試してみた

Last updated at Posted at 2025-12-01

約 1 週間前のアップデートで追加された「aws login」コマンドが AWS 環境の運用作業をする上でかなり便利そうだと思ったので、今回を良い機会に試してみることにした。

aws login コマンドとは

AWS CLI に追加された新機能で、このコマンドを実行すると
STS から短期的なセッション認証情報
(AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN)
が CLI に付与される仕組みである。

いわゆる「アクセスキーを自分で発行する」という従来の作業が不要になる。
アップデート情報のページは以下。

この機能の何が良いのか?

前提

ローカルPC から AWS リソースを触る

お家やサーバルーム、作業場所 etc... にあるローカルPC の環境から
AWS のリソースを操作したい、という場面は割と多い。

従来のやり方では、まず AWS コンソールで IAM ユーザーの画面を開き、
そこから AccessKey を発行する必要があった。
その後、ローカルPC の CLI のプロファイル(設定情報)に
その AccessKey と SecretKey を書き込むことで、
ローカル環境から AWS リソースを触れるようにしていた、という流れである。

懸念

しかし、このやり方にはいくつか懸念がある。

  1. IAM ユーザーの作成、AccessKey の発行などの作業が毎回発生する
  2. 発行される AccessKey が永続的であるため、外部漏洩に弱い
  3. そのため AccessKey の定期的なローテーション運用が必要になる

正直、このへんは "AWS を使うなら仕方ない" と割り切ってた。

本題 〜で、何が嬉しいのか?〜

aws login を使えば、ローカルPC の AWS CLI に対して
短期セッション認証情報を 1 コマンドで付与できる

実行するとブラウザが開き、
普段コンソールにログインするときと同じ認証方法でログインするだけで、
CLI 側に短期トークンが流れ込む、という仕組みである。

また、この短期認証情報は 15 分ごとに AWS CLI が自動で更新してくれる。
IAM の設定により最大 12 時間まで利用可能で、特に何か操作する必要はない。

つまり、先述した懸念点は以下のように解消される。

  1. IAM ユーザー画面で AccessKey を発行する必要
    → 不要。aws login がその場で短期セッションキーを取得する
  2. 永続的な AccessKey の漏洩リスク
    → 短命なセッションキーになるためリスクが下がる
  3. AccessKey のローテーション運用
    → 不要。短期セッションキーが自動更新されるため管理しなくてよい

これにより「ローカルPC で AWS CLI を使う準備」が圧倒的に楽になった。

とりあえず触ってみる

前提

以下公式ドキュメント。

ざっくりまとめると

  • AWS CLI はそこそこ新しい(v2.32.0 以上)
    → 普通にアップデートしていれば大体クリアしている

  • 普段 AWS コンソールにログインできる(IAM ユーザー or ルート or SSO 経由)
    → コンソールにログインができれば OK

  • ローカルPC でブラウザが使える
    → 認証フローにブラウザが必要になるため
    (CLI だけの環境でも --remote で回避できる)

  • IAM 管理者に「SignInLocalDevelopmentAccess 付けてください」と言える
    → もしくは既に付与されている
    (個人利用のアカウントならほぼ気にしなくて良い)

  • ~/.aws/credentials に昔の AccessKey を残していない
    → もし残っていても消せば動くので、そこまで深刻ではない

1. AWS CLI のインストール

AWS CLIのv2.32.0以降をインストールする。
参考は以下の公式ドキュメントより。

自分は mac なので以下のようになった。

enoMacBook-Pro:~ as$ aws --version
aws-cli/2.32.7 Python/3.13.9 Darwin/24.6.0 exe/x86_64
enoMacBook-Pro:~ as$ 

2. IAM ユーザー作成

前提にて記載したポリシーをアタッチした IAM ユーザーを作成する。
スクリーンショット 2025-12-01 14.12.35.png

3. ローカルPC で実際に aws login コマンド実行

「aws login --profile newprofile」というコマンドを実行。
初回なのでプロファイルの指定は newprofile とした。
ここで 「--profile」オプションをつけずに実行すると
既存の CLI の中にある認証情報を参照して aws login を実行してしまうので
素直にプロファイル指定で実行する。

リージョンについては、東京リージョンのリソースを触ることが多いので
東京リージョンである「ap-northeast-1」を入力してエンターキーを押下した。

enoMacBook-Pro:~ as$ aws login --profile newprofile
No AWS region has been configured. The AWS region is the geographic location of your AWS resources.

If you have used AWS before and already have resources in your account, specify which region they were created in. If you have not created resources in your account before, you can pick the region closest to you: https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html.

You are able to change the region in the CLI at any time with the command "aws configure set region NEW_REGION".
AWS Region [us-east-1]: ap-northeast-1

4.ブラウザからログイン操作実行

前項のコマンドを実行すると、コマンドライン(ターミナル)にて以下のような文字列が出力する。

Attempting to open your default browser.
If the browser does not open, open the following URL:

https://ap-northeast-1.signin.aws.amazon.com/v1/authorize?response_type=code&client_id=arn%3Aaws%3Asignin%3A%3A%3Adevtools%2Fsame-device&state=e68e5d1f-fa8d-4ff8-83cd-b1e42926acca&code_challenge_method=SHA-256&scope=openid&redirect_uri=http%3A%2F%2F127.0.0.1%3A50690%2Foauth%2Fcallback&code_challenge=VhbkTIY0Rvr5-a5bAH9WXKbGpcZaYe5Qutu8ZqCQjrg

上記文字列の出力と同時にブラウザが自動的に起動し
以下の画像のようなページが現れる。
一旦右上のプルダウンから日本語表示に変えよう。

スクリーンショット 2025-12-01 14.20.53.png

「ルートまたは IAM ユーザーで続行」をクリックしログインを進める。

スクリーンショット 2025-12-01 14.24.22.png

スクリーンショット 2025-12-01 14.29.10.png

ログインに成功すると下画像のような画面が出るので、タブを閉じる。

スクリーンショット 2025-12-01 14.29.26.png

5.認証の確認

「aws sts get-caller-identity --profile」コマンドを実行して認証情報を確認してみる。
先程までコマンドを実行していたコマンドラインやターミナルにて、そのままコマンドを入力して実行すると以下のような形式の結果が出力される。

enoMacBook-Pro:~ as$ aws sts get-caller-identity --profile newprofile
{
    "UserId": "XXXXXXXXXXXXXXXXX",
    "Account": "xxxxxxxxxxxx",
    "Arn": "arn:aws:iam::xxxxxxxxxxxx:user/aws-login-test-user"
}
enoMacBook-Pro:~ as$ 

aws login コマンドを実行する際に作成した「newprofile」を見てみると
入力した IAM ユーザーの情報が記載されていることがわかる。

enoMacBook-Pro:~ as$ cat ~/.aws/config
[profile newprofile]
login_session = arn:aws:iam::xxxxxxxxxxxx:user/aws-login-test-user
region = ap-northeast-1
enoMacBook-Pro:~ as$ 

まとめ

aws login は、これまで当たり前のように必要だったアクセスキー発行という作業をそっくり置き換える仕組みである。
ローカルPC から AWS を触りたいだけなのに、IAM ユーザー画面で鍵を作ったり、
それを ~/.aws/credentials に貼り付けたり……という手間もリスクも丸ごと消える。

コマンドを 1 回実行してブラウザでログインするだけで、CLI に短期セッション認証情報が流れ込み、
あとは AWS CLI が自動で更新しながら最大 12 時間そのまま使える。
いわば「コンソールと同じログイン方法で CLI を安全に使えるようになった」と理解すればよい。

AccessKey をローカルに置かないため、漏洩リスクは従来より圧倒的に低くなる。
ローカルで AWS を触る開発者にとって、aws login はシンプルかつ実用的な選択肢になったと言える。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?