
はじめに
アプリケーションサービス本部ディベロップメントサービス1課の森山です。
今回は以下の新機能のご紹介をしてみます。
AWS CLI における認証情報の取得処理にaws loginが追加されました。
これまでは以下の2つの選択肢がありましたが、これらより簡単に認証情報が取得できるみたいです。
- IAM ユーザーのアクセスキーとシークレットキーを作成し、
~/.aws/credentialsに保存 - IAM Identity Center を利用し、
aws sso loginで SSO を実施し、認証情報を取得
また、別のアップデートで IAM が認証情報から JWT を生成できる機能も発表されました。
こちらは今回のアップデートとは逆方向の対応で、AWS から外部サービスへアクセスする際に、外部サービスの長期認証情報を保持しなくて済むソリューションです。
勝手な想像ですが、長期認証情報を排除したい!という意気込みが感じられますね!
aws login とは?
少し機能紹介をしてみます。
まずは動作確認の前に、AWS CLI のバージョンアップが必要です。
今回の機能は、2.32.0から搭載されています。
aws-cli/CHANGELOG.rst at v2 · aws/aws-cli · GitHub
aws login を使ったログイン
操作方法は、ターミナルでaws loginを実行するだけです。
ただし、デフォルトリージョンを指定していない場合はリージョンの指定について問われますので、リージョンの指定が必要です。
# aws login 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]:
リージョンの指定をすると、ブラウザが起動し、OAuth 2.0 認証フローが開始されます。

IAM Identity Center を利用している場合は、上記のページからはログインできないため、案内の通り、別のタブでログインし、このページをリフレッシュする必要があります。
すでにログインしている場合は、以下のような感じで、対象のセッションを選択することができます。

なお、認証情報は 15 分ごとに自動更新され、最大 12 時間まで有効です。
ガバナンス周り
また、新機能ではありますが、CloudTrail でのログ証跡や、ポリシー制御も可能です。
CloudTrail
aws loginを行うと、新たなイベントAuthorizeOAuth2Access と CreateOAuth2Tokenが記録されていることが確認できました。

IAM ポリシーの制御
aws loginはsignin:AuthorizeOAuth2Accessとsignin:CreateOAuth2Tokenのポリシーで制御することができる模様です。
試しに以下の拒否ポリシーをユーザに付与し、動作確認してみます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": ["signin:AuthorizeOAuth2Access", "signin:CreateOAuth2Token"], "Resource": "*" } ] }
この状態でaws loginを実行すると、以下のように拒否されることが確認できました。
新たにログインをしようとした場合

すでにログインしている場合

Dev Container で利用してみる
普段使いでも便利なaws loginですが、今回は DevContainer での活用も紹介してみます。
DevContainer(Development Container)は、Dockerコンテナを開発環境として利用するための仕様で、VSCodeの「Dev Containers」拡張機能を使うことで、コンテナ内で直接コーディング・デバッグ・実行ができる機能です。
(2025/11/25 Dev Containerの説明が一部誤っていたため、修正しました。)
.devcontainerフォルダ配下の設定ファイルで環境を定義することで、チーム全員が同じ開発環境を利用でき、ホストマシンを汚さずにクリーンな環境で開発できます。
今回は、DevContainer で開発環境のコンテナを起動するたびに AWS の認証情報を取得するようにしてみます。
これまで、コンテナ内で AWS 認証情報を保持するためには、アクセスキーを使う方法や、ホストマシンの認証情報をマウントするなどの方法がありましたが、より安全かつ簡単に実現できそうです。
devcontainer.json の設定
では、設定してみます。
以下 3 点を対応しています。
- AWS CLI を利用できるようにするため、AWS CLI の DevContainer Feature を追加
- コンテナ起動時に
aws loginを実行するため、postStartCommandでaws loginを指定 - 環境変数
AWS_DEFAULT_REGIONを指定し、初回のリージョン問い合わせを抑止
{ "name": "Basic Node.js", "build": { "dockerfile": "Dockerfile" }, "remoteUser": "node", "features": { "ghcr.io/devcontainers/features/aws-cli:1": {} }, "containerEnv": { "AWS_DEFAULT_REGION": "ap-northeast-1" }, "postStartCommand": "aws login" }
起動してみる
では、コンテナをリビルドしてから環境を開いてみます。

こんな感じのメッセージがターミナルに表示されました。
Running the postStartCommand from devcontainer.json... [5627 ms] Start: Run in container: /bin/sh -c aws login 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=...
残念ながらブラウザが自動起動しないのですが、認証用 URL は表示されているので、このページを開くことで認証情報が保持されるようになります!
まとめ
今回は AWS CLI の新機能aws loginについて紹介しました。
aws loginを利用することで、より簡単に AWS 認証情報を取得できるようになり、DevContainer のような開発環境でも安全に認証情報を管理できるようになります。
いよいよアクセスキーを使わなくて良い未来が見えてきそうです!
誰かのお役に立てば幸いです!