【小ネタ】AWS CLIでスイッチロールして作業を行うための設定をやってみた
AWS Loft好きのKyoです。CLIも好きで修行中です。
AWS CLIでスイッチロールする際の設定に困ったので情報を残しておきたいと思います。
前提
- aws-cli/1.16.232 Python/3.7.3 Darwin/18.7.0 botocore/1.12.222
- ベースとなるアカウントのIAMユーザから、別アカウントのIAMロールにスイッチロールして、CLIから操作を行う
- AWS CLIの設定は完了済み
~/.aws/
にスイッチロール元のIAMユーザのaws_access_key_id
とaws_secret_access_key
が設定されている~/.aws/config
も以下の様に設定されている
[default] region=ap-northeast-1 output=json
設定
スイッチロール先のプロファイルをtest001
と名付け、default
の下にパラメタを追加しました。
[default] region=ap-northeast-1 output=json [profile test001] region = ap-northeast-1 mfa_serial = arn:aws:iam::xxxxxxxxxxxx:mfa/hoge role_arn = arn:aws:iam::yyyyyyyyyyyy:role/fuga source_profile = default
ざっくり解説
- mfa_serial
これはスイッチロール元でMFAを設定している場合に必要です。スイッチロール元のIAMユーザの画面から取得します。
- role_arn
スイッチロール先のIAMロールの画面から取得します。
- source_profile
IAMユーザー認証情報を含む別の名前付きプロファイルです。今回はスイッチロール元のプロファイルであるdefault
を利用します。
作業前にやること
プロファイル名test001
を環境変数に設定します。
export AWS_DEFAULT_PROFILE=test001
正しくスイッチロール出来たかを確認します。この際にMFAのコードを求められるので入力します。
aws sts get-caller-identity
返ってきたJSONの中のAWSアカウントIDおよびロール名が正しければスイッチロール成功です。
以上、何かの参考になれば幸いです。それでは良いCLIライフを!