このエントリは イノベーター・ジャパン Advent Calendar 2016 - Adventarの3日目の記事です。
こんにちは id:hacktk です。今回はAWSアカウント運用のお話をします。
複数のAWSアカウントを切り替えるつらみ
当社は現在AWSアカウントが30ほどあり、マネジメントコンソールを使う際に毎回ログインし直したりするため、とても面倒でした。それはもう。
で、とうとう昨日カッとなって作りました。
ソースはここです。 https://github.com/innovator-japan/aws-account-manager
どうやっているのか
カスタムフェデレーションブローカーを実装します。
本来はこのドキュメントで全て事足りるのですが、あいにくPHPの参考実装がなかったため、STSのAPIドキュメントなどを読みながら作りました。
ざっくり概要をまとめると以下2点になります。
- ログインしたいAWSアカウントごとに、必要な権限をもったIAMユーザーが必要
- 社内システムにAWSへのログインボタンを設置し、それが押されたらマネジメントコンソールにログインさせる
※ 1で作るIAMユーザーは、SSO対応させるユーザーに許可する最大権限を付与しておく
とりあえず最大で作っています
※ 2でログインしたときのユーザーは、1で作ったユーザー ではない。(社内システムのユーザーに、一時的な権限が付与されているだけ)
登録の手間が省けて嬉しい限りです。
実装はソースを見ていただくとして、ログインしている画面を貼りますね。
まず社内システムにログイン済みの状態です。
このLoginボタンを押すと、そのAWSアカウントのマネジメントコンソールにログインします。
これでだいぶ楽になりました。
やっていくこと
- G Suiteアカウントでログインできるようにする(当社は全員持っています)
- 1つのAWSアカウントに複数のcredentialを設定できるようにする
- ログインだけではなく使用統計やbilling情報を一覧にできるようにしたい
やっつけで作ったので、業務で使うにはまだ早そうです。
AWS Organizationsへの期待
先日、AWS Organizationsのプレビュー開始が告知されましたが、こういったことが可能なのかまだよくわかりません。
このサービスで同じことができればとても嬉しいのですが・・・
さて明日は当社のWordPressお兄さんである@gorou_178です。
wp-cliネタのようなので、あまり使っていない私は正座して読もうと思います。
それでは。