概要
今日は小ネタです。 aws login コマンドでの認証に私が使っているツール群はどう対応しているかの調査です。
aws login 自体の詳細は以下公式 Blog を参考にしてください。
- AWS CLI
- AWS SDK (boto3含む)
- AWS CDK
- Terraform AWS Provider Plugin
について調べました。
AWS CLI
上記 Blog にもありますが、2.30.0 で導入されています。Changelog は以下
※関係ないですが、 AWS CLI の Changelog の場所初めて知りました。 GitHub だと Release 作ってないんですね
AWS SDK
以下に対応の一覧がありました。
確認時点で対応してないのは以下でした。
- Go V2(1.x)
- Java 1.x
- JavaScript 2.x
- Tools for PowerShell V4
Go だけ同一言語でバージョン表記上最新そうなものが未対応という状態ですね。
boto3
1.41.0 からでしょうか。
boto3 だけではなく boto3[crt] が必要なようです。
AWS CDK
12月4日時点では未対応のようですが、GitHubに issue はあって、要対応マークがついていました。
一旦対応待ちで、それまではAWS CLI側で一時トークンを何かしらの方法で環境変数に出力して対応ですかね。
Terraform AWS provider plugin
AWS provider plugin は2025年11月末時点では対応してなさそうです。
となると上記 issue にもありますが、別プロファイルを作成して credential_process ですね。
# Jump アカウント設定
[profile login]
login_session = arn:aws:iam::123456789012:user/username
region = ap-northeast-1
# terraform 実行したいアカウントの terraform 用プロファイル
[profile terraform-process]
credential_process = aws configure export-credentials --profile login --format process
region = ap-northeast-1
一応できるという感じです。
Jumpアカウント構成の場合は
- メンバアカウントのプロファイル設定を常に credential_process にする
- メンバアカウントのプロファイルはseitch roleとcredential_process2つ作る
になるんでしょうか。
Terraformで対応されたときの config の修正どちらもそこそこあるなという印象です。