aws loginコマンド+Terraform使ってみる

2026年6月22日 に投稿 • 1 分 で読めます • 125 語
で共有

正直色んな人がもう記事にしてるので今更感しかないですが駄文にお付き合いくださいmm

aws loginとは  

2025/11に発表されたアクセスキーを使用せずブラウザからの認証情報を引き渡してaws-cliにログインできるコマンド。

aws login で AWS への開発者アクセスをシンプルに | Amazon Web Services
AWS CLI の新しい aws login コマンドを使用すると、長期アクセスキーを作成・管理することなく、AWS マネジメントコンソールと同じサインイン方法で一時的な認証情報を取得できます。IAM 認証情報やフェデレーションサインインの両方に対応し、認証情報は 15 分ごとに自動ローテーションされます。IAM ポリシーによるアクセス制御や CloudTrail でのログ記録も可能で、デフォルトでセキュアな開発環境を実現します。
Amazon Web Services

公式ブログが詳細に説明してくれてるので気になる人は公式へどうぞ(説明放棄)

aws loginを使ってみた感想  

今まで感じてた以下の不便さが解消されてかつaws-cliをインストールするだけのお手軽セットアップになって非常に快適。

  1. IAMユーザーあたり2つまでしかアクセスキーが発行できず2台以上PC使ってるとどこかでキーを共有しなければならない。
  2. アクセスキー管理+MFA必須環境でセッション保持に aws-vaultを使用していたがパスキーに対応できずaws-cli使うたびに6桁のコード入力が必要でめんどくさい。

個人的にとても便利だと感じたのがaws-vaultはmacOSのキーチェーンで安全に管理してくれてる代わりにSSH越しに使用ができなかったので--remoteオプションで作業マシンの外からもログインできること。
まだコミットしてない作業中の内容を自席の母艦に打ち合わせ用PCからログインして内職し放題なのが嬉しすぎる。

remoteログイン方法  

  1. --remoteオプションを付けてコマンド実行

    $ aws login --remote
    Browser will not be automatically opened.
    Please visit the following URL:
    
    https://ap-northeast-1.signin.aws.amazon.com/v1/authorize?response_type=code&client_id=arn%3Aaws%3Asignin%3A%3A%3Adevtools%2Fcross-device&state=xxxxxx&code_challenge_method=SHA-256&scope=openid&redirect_uri=https%3A%2F%2Fap-northeast-1.signin.aws.amazon.  com%2Fv1%2Fsessions%2Fconfirmation& code_challenge=xxxxx
  2. 表示されたURLをブラウザで開いてログインする ログインページ

  3. 認証コードが出てくるからコピーする 検証コード画面

  4. ターミナルに戻ってコードを貼り付ける

    Enter the authorization code displayed in your browser: xxxxxxxxxxxx
    
    Updated profile default to use arn:aws:iam::123456789012:user/root credentials.
  5. 以上

aws loginをTerraformで使う方法  

こんな便利なaws loginだがそのまま3rdパーティーツールが使えるわけではないのが注意点。
Terraformはloginで取得した認証情報をそのまま使用できないらしく一手間必要となる。
と言っても手順は簡単で credential_processで認証情報を出力してあげることでTerraformはaws-cliの認証情報にアクセスしてAPIを叩けるようになるらしい。
というわけでコンフィグはこんな感じになる。

~/.aws/config

# ログインプロファイル
[profile login]
login_session = arn:aws:iam::123456789012:user/root
region = ap-northeast-1

# もちろんAssumeRoleにも対応
[profile example]
source_profile = login
role_arn = arn:aws:iam::123456789012:role/login_role
region = ap-northeast-1

# Terraform用のラッパー
[profile example-tf]
credential_process = aws configure export-credentials --profile "example"

あとはexport AWS_PROFILE=example-tfでクレデンシャルを出力するプロファイルを指定してあげれば今まで通りTerraformを使用できるはず。
これでみなさん快適なAWS&Terraformライフをお楽しみください。

各種アカウント