🐙

MFA が必要な AWS CLI でのスイッチロール(自分用備忘)

2024/04/18に公開

実行環境

  • Windows11
  • WSL

Windows11 に WSL をインストールし AWS CLI を導入するまでの手順は以下参照
https://blog.serverworks.co.jp/wsl2-aws-cli

設定

~/.aws/credentials
# スイッチ元AWSアカウント
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY
~/.aws/config
# スイッチ元AWSアカウント
[default]
region = ap-northeast-1
output = json

# スイッチ先AWSアカウント IAM ロール:kitani.emi 
[profile kitani.emi]
role_arn = arn:aws:iam::スイッチ先AWSアカウントID:role/kitani.emi
source_profile = default 
## スイッチ元のアカウントの MFA デバイス
mfa_serial = arn:aws:iam::スイッチ元AWSアカウントID:mfa/kitani.emi

スイッチ

emiki@hostname:~$ aws sts get-caller-identity --profile kitani.emi
Enter MFA code for arn:aws:iam::スイッチ元AWSアカウントID:mfa/kitani.emi: # ここで MFA コード 6 桁を入力(表示されない)
{
    "UserId": "AROA45YZHQXPSRRI6IZHG:botocore-session-1713366364",
    "Account": "スイッチ先AWSアカウントID",
    "Arn": "arn:aws:sts::スイッチ先AWSアカウントID:assumed-role/kitani.emi/botocore-session-1713366364"
}
emiki@hostname:~$

1 時間は MFA コード入力無しで接続できる

emiki@hostname:~$ aws sts get-caller-identity --profile kitani.emi
{
    "UserId": "AROA45YZHQXPSRRI6IZHG:botocore-session-1713366364",
    "Account": "スイッチ先AWSアカウントID",
    "Arn": "arn:aws:sts::スイッチ先AWSアカウントID:assumed-role/kitani.emi/botocore-session-1713366364"
}
emiki@hostname:~$

Discussion