aswrapを使ったら複数AWSアカウントでCodenize Toolsがすごく快適になった

2017.12.22

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

はじめに

こんにちは植木和樹@上越妙高オフィスです。2017年も終わりに差し掛かったこの1週間、私のタイムラインにaswrapというワードが頻繁にでてくるようになりました。

AssumeRolePerl製 AWSツールいう単語に興味に惹かれ早速使ってみました。

「いいぞ、これ」

使い方

インストールは簡単です。githubのリポジトリから aswrap コマンドを取得して、パスの通った適当なディレクトリに置くだけです。

fujiwara/aswrap: AWS assume role credential wrapper

$ curl -Lso aswrap https://github.com/fujiwara/aswrap/releases/download/v0.0.2/aswrap
$ chmod +x aswrap
$ sudo mv aswrap /usr/local/bin

あとは普段使う aws のコマンドの頭にaswrapをつけるだけです。

Codenize.tools の1つpiculetには普段から大変お世話になっているのですが、gemで入る 0.2.9 だとAssumeRoleに対応していなくて、0.3.0 から修正コードを拾ってきて使ってました。ただこれだと他の人と環境が変わってしまうことになり悩ましいところでした。

でも aswrap を使えば解決します。

$ aswrap piculet --export

異なる環境(profile)に対してコマンドを実行したい時にはAWS_PROFILEをつけてあげるだけです。

$ export AWS_PROFILE=account1 (bash,zsh)
$ set -x AWS_PROFILE account1 (fish)
$ aswrap piculet --export

または
$ env AWS_PROFILE=account1 aswrap piculet --export

MFA

IAM Roleの信頼関係でMFA が必要が有効になっている場合も使えるように修正してプルリクエストを送ってみました。

Support Virtual MFA. by ueki-kazuki · Pull Request #3 · fujiwara/aswrap

雑な修正ですが、もし希望の方がいればご利用ください。修正箇所は僅かなので手パッチでもどうにかなると思います。

まとめ

aswrapを作ってくれた id:sfujiwara さんにただただ感謝です。

そういえば1年前にCodenize Meetupに参加し、懇親会の席で「機能がほしいならプルリクすればいい」って言われたのがキッカケで、今年はちょっとだけOSSにフィードバックを送るということをがんばってみた年でした。

FreeBSD/Linux/Apacheから始まって20年、オープンソースソフトウェアにお世話になってます。来年からもちょっとずつ恩が返せるようエンジニアとして成長したいと思うおじさんでした。

というわけでみなさん良いお年を。