Edited at

AWS CLIを使って、MFAのついたアカウントでAssumeRoleする


概要

MFAが有効になったIAMユーザーにRoleをアタッチするときにちゃんとドキュメント読んでなくてハマったのでメモしとく


やり方

AssumeRoleに使うロールと、自分のプロファイルは~/.aws/config~/.aws/credentialsに入れておく


~/.aws/config

[profile user] # 自身のユーザー

region=リージョン
output=json

[profile assumerole] # 対象のロール
role_arn=arn:aws:iam::xxxxxx:role/role-name
mfa_serial=arn:aws:iam::xxxxxx:mfa/username
source_profile=user
region=リージョン



~/.aws/credentials

[user]

aws_access_key_id=XXXXXXXXXXXXXXXX
aws_secret_access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

で、叩きたいAPIを叩くとMFAのトークンを入れるように聞かれる。

$ aws 使いたいコマンド --profile assumerole

Enter MFA code for arn:aws:iam::xxxxxx:mfa/username:

入れると結果が返ってくるようになる