assume-roleでプロファイルに対応していないツールでもassume roleする
はじめに
こんにちは、ついに積もってしまった雪に絶望しつつも熱燗が美味しくなるなとわずかな希望を見出している今日この頃です。
先日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だと
brew install remind101/formulae/assume-role
あるいは
go get -u github.com/remind101/assume-role
使い方
使い方も簡単です。
まずは、assume roleしたいロールを.aws/config
にプロファイルとして設定します。
詳細はこちらの記事「初めてのAssumeRole」をご参照ください。
そしてプロファイル名とコマンドを下記のように指定して実行します
assume-role <プロファイル名> <コマンド>
実行例
aws cliを使う場合下記の2つのコマンドは同じ結果になります。
# profileオプションを使う $ aws ec2 describe-instances --profile some-role # assume-roleを使う $ assume-role aws ec2 describe-instances
まとめ
assume roleを使うと任意のプロファイルの一時的セキュリティ認証情報を使ってコマンドを実行できます。 AWSを使っていると本番、検証といった環境ごとにロールを切り替えて作業したりすることは多いと思います。 お使いのツールがプロファイルに対応していなくて都度IAMユーザーを作ったりしていた方はぜひ試してみてください。