🙄
AWS CLIをAssumeRole+MFAの場合に利用する方法
はじめに
MFAが必要なAWS CLIコマンドはいくつか方法がありますがaws-vaultを利用すると簡単です。
aws-valutのインストール方法
macOSであれば以下のコマンドからインストール可能です
$ brew cask install aws-vault
AWS認証情報の登録
xxxxは任意の識別子を指定して下さい
$ aws-vault add xxxx
Enter Access Key ID: <ベースとなるAWSアカウントのAcceccKey>
Enter Secret Access Key: <ベースとなるAWSアカウントのSecretAcceccKey>
Added credentials to profile "xxxx" in vault
$ cat ~/.aws/config
[profile xxxx]
プロファイルの登録
スイッチしたいプロファイル
$ vi ~/.aws/config
[profile xxxx]
region=ap-northeast-1
mfa_serial=arn:aws:iam::<ベースとなるAWSアカウントID>:mfa/<ユーザID>
region=ap-northeast-1
[profile xxxx-AAA]
source_profile=xxxx
role_arn=arn:aws:iam::<スイッチ先AWSアカウントIDのA>:role/assumerole/<割り当てるロール>
[profile xxxx-BBB]
source_profile=xxxx
role_arn=arn:aws:iam::<スイッチ先AWSアカウントIDのB>:role/assumerole/<割り当てるロール>
認証情報の取得
aws-vault exec xxxx-AAA
うまく行かない場合は
間違った設定を記憶している場合、~/.aws/config
が正しくてもうまく行かない場合があります。
その場合は一度プロファイルを消してみてください
aws-vault remove xxxx-AAA
aws-vault exec xxxx-AAA
動作確認
aws s3 ls
別のプロファイルに切り替える場合
環境変数AWS_VAULT
を一旦クリアする必要があります
unset AWS_VAULT
AWSコンソールへのログインも以下から実施できる
aws-vault login xxxx-AAA
Discussion