こんにちは!コンサル部のinomaso(@inomasosan)です。
前回、Cyberduckのブログを書いたのですが、ローカル端末でAssumeRoleした場合にどうやってAWS CLIのコマンド実行すればいいんだっけ??となりました。
普段はAWS Cloud Shellを使うことが多いので、時間が経つと忘れそうだなと思い、備忘用にブログで残すことにしました。
まとめ
IAMロールのプロファイルを指定してコマンド実行すればよい。
やってみた
AWS CLIのクレデンシャル設定
前回と同様に以下のパスにクレデンシャルを設定していきます。
C:\Users\<ユーザ名>\.aws\credentials
以下のようなクレデンシャル設定でコマンドを実行できるか試していきます。
[iam-user]
aws_access_key_id = AKIAXXXXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXX
[iam-role]
region = ap-northeast-1
output = json
mfa_serial = arn:aws:iam::123456789:mfa/iam-user
role_arn = arn:aws:iam::123456789:role/iam-role
source_profile = iam-user
AssumeRoleした権限でコマンド実行してみる
確認用のS3バケットとオブジェクトを用意してみたので、Windows 10のコマンドプロンプトからオブジェクト一覧を取得できるか確認していきます。
iam-user
でiam-role
にAssumeRoleし、S3コマンドが実行できるか確認していきます。
--profile
オプションは、iam-role
のプロファイル名を指定しています。
C:\Users\inomaso>aws s3 ls inomaso-hoge/test/ --profile iam-role
Enter MFA code for arn:aws:iam::123456789:mfa/iam-user:
2022-07-29 13:03:26 0
2022-07-29 13:03:26 0 hoge1.txt
2022-07-29 13:03:26 0 hoge2.txt
AWS CLIのクレデンシャルさえ設定すれば、MFA認証すればコマンドが実行できることがわかりました
まとめ
IAMロールを活用しても、ローカル端末でちょっとしたコマンドを実行するのがやりずらいということはありませんでした。
大抵はAWS Cloud Shellで事足りるので、SSMセッションマネージャーでローカル端末から接続したいとき等に利用するのが良いかと思います。
この記事が、どなたかのお役に立てば幸いです。それでは!