assume-roleでプロファイルに対応していないツールでもassume roleする

AWS利用料業界最安値に挑戦します!

はじめに

こんにちは、ついに積もってしまった雪に絶望しつつも熱燗が美味しくなるなとわずかな希望を見出している今日この頃です。

先日assume roleに対応していないコマンドラインツールを使う際に使ったassume roleというツールが便利だったので紹介します。

これはなに?

公式リポジトリには下記のようにあります。

This tool will request and set temporary credentials in your shell environment variables for a given role.

ざっくりいうと、シェルの環境変数に指定したロールの一時的セキュリティ認証情報をセットした状態で任意のコマンドを実行できるようにするツールです。 aws cliでいう--profile オプションをプロファイルに対応していないコマンドでも、実現するツールというとわかりやすいかもしれません。

インストール

READMEに書かれていますが、非常に簡単です。

Macだと

1
brew install remind101/formulae/assume-role

あるいは

1
go get -u github.com/remind101/assume-role

使い方

使い方も簡単です。

まずは、assume roleしたいロールを.aws/configにプロファイルとして設定します。 詳細はこちらの記事「初めてのAssumeRole」をご参照ください。

そしてプロファイル名とコマンドを下記のように指定して実行します

1
assume-role <プロファイル名> <コマンド>

実行例

aws cliを使う場合下記の2つのコマンドは同じ結果になります。

1
2
3
4
# profileオプションを使う
$ aws ec2 describe-instances --profile some-role
# assume-roleを使う
$ assume-role aws ec2 describe-instances

まとめ

assume roleを使うと任意のプロファイルの一時的セキュリティ認証情報を使ってコマンドを実行できます。 AWSを使っていると本番、検証といった環境ごとにロールを切り替えて作業したりすることは多いと思います。 お使いのツールがプロファイルに対応していなくて都度IAMユーザーを作ったりしていた方はぜひ試してみてください。

AWS利用料業界最安値に挑戦します!