[超小ネタ]Windows 10でAssumeRole後にAWS CLIのコマンドを試してみた

AssumeRoleコワクナイヨ
2022.07.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!コンサル部の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-useriam-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セッションマネージャーでローカル端末から接続したいとき等に利用するのが良いかと思います。

この記事が、どなたかのお役に立てば幸いです。それでは!