More Related Content Similar to AWS SSOを導入してみた Similar to AWS SSOを導入してみた (20) AWS SSOを導入してみた2. 自己紹介
● 大越 雄太 (Yuta Okoshi)
● 最近の経歴:
2020年5月に留学資金集めのためにフリーランスとして転生し
同時にハウテレビジョンのSREチームとしてJOIN
● HowTVでの主なお仕事:
AWSのリソース整理など主にインフラ周り
● 趣味:
IoT × サバイバルゲームでいろいろ作ってます
チンチラと同居生活中
2
Editor's Notes おもしろい話はあんまりできないんですが、
最近、ハウテレビジョン内でSSOを導入してみた
そのときに経験したことをこちらで共有させていただければなと思います。
大越 雄太 (Yuta Okoshi)
最近の経歴:
2020年5月に留学資金集めのためにフリーランスとして転生し
同時にハウテレビジョンのSREチームとしてJOIN
HowTVでの主なお仕事:
AWSのリソース整理など主にインフラ周り
趣味:
IoT × サバイバルゲームでいろいろ作ってます
チンチラと同居生活中
チンチラ飼ってるよーとか、IoTガジェット作ってるって方はぜひお話させてください AWS SSOを導入して何が変わったの?
導入時に起こったちょっとした問題
今後やろうとしていることの紹介
まず皆さんに質問です。
「今までどの画面からどうやってAWSコンソール画面にログインしていましたでしょうか?
(ちょっと間を置く)
あんまり今まで意識したことなかったと思うんですが、
ちょっとだけ思い出してみてください。 基本的にはこちらのログイン画面かなと思います。 それともSwitchRoleやAssumeRoleの利用でしょうか?
これら2つのログイン方法には様々な使いにくい点があったと思います。 まず、AWSログイン画面についてですが、
こちらも使いにくい点がいくつかあったと思います。
開発者としては
「AWSアカウントの番号とか知らんわw」
「パスワードリセットが管理者しかできんってマ?」
管理者と「AWSアカウントごとにIAMユーザーとポリシーを管理するのめんどくさすぎ。。。」
みたいな点がありました
そして、SwitchRoleについても同じ点がいくつかありますが、
「AWSアカウントの番号とか知らんわw」
「色が6つって少なスギィ!」
「Switch先のIAMロール名がわからん!」
「ブラウザのCookie削除したら設定消えてもうた。。。」
みたいな点がありました
そして
AWS SSOを導入すると、
これら問題をどうなったのか? まず、開発者目線では
自分がログインできるAWSアカウントとIAMロールが初めから一覧で表示されるようになったので、
予め、ログイン先情報をスプレットシートにまとめたり
Slackで渡したりする必要がなくなりました。 そして、管理者目線では
1つのAWSアカウント上でユーザーのアクセス管理ができるので
各AWSアカウントにログインしてIAMロール作って、信頼関係結んで、、、みたいな操作が一切必要なくなりました。
IAMロールについても各AWSアカウントにログインすることなくAWS SSOからプロビジョニングすることができます。 AWS SSO導入して
管理者も開発者もみんなハッピー! と思ったが、
そうは問屋が卸さず。。。
とある問題がわかってきました。 「ローカル環境構築時に共通のアクセスキーを使っているんだけどどうすればいい?」とのことです。 では、ここでハウテレビジョンにおけるローカル環境構築時のフローを確認します
こちらのキーが漏れると
・どこからでもシークレットマネージャーから値を取れてしまう
・誰がいつアクセスしたのか特定が難しい状態でした。
もちろんシークレットマネージャーというだけあってDBのパスワードやIPアドレスなどめちゃくちゃセキュアな情報がある上に商用の値も参照できてしまう状態でした。
では、これら問題点をAWS SSOなどを利用してどのように解決したのかというと まずはローカル環境向けのシークレットマネージャーを商用から分離
肥沼さんありがとうございました!!
まずAWS CLIでssoログインを行うとセッション情報がローカル環境に保存されます。
そちらの情報を利用してmake dotenvの処理が行われるように修正を行いました。 開発者の手順としては
aws sso login を行うと
cacheが保存される
make dotenvを行う みなさんにアクセスキーについてのお願いがちょっとここであります。
もしかしたらすでに知っている方もいるかもしれませんが、
同じアクセスキーの長期的な利用はAWSのベストプラクティスに沿っておらず
漏洩のリスクがあったりアクセス履歴も追いにくいので利用はあまり推奨されておりません。 アクセスキーの発行は必要最低限にして、
人間やローカル環境からアクセスキーを利用してアクセスするようなことは極力行わないように今後はしてください。
CircleCIなどの外部サービスからアクセスする場合などは必要なのでそういった選択肢がない場合のみ利用をお願いします。 Q.具体的にどのように処理を変更した?
A.
.env作成ツールはコンテナ上で動いていたのでローカルの.aws以下のマウント設定をしたり
AWS SDK(Boto3)の6月のアップデートでマイナーバージョンが上がり1.14になったんだけどそのときに追加された機能を利用した。
Q.この問題点はなんで気がついた?
A.
ローカル環境をコンテナ化するプロジェクトが別で動いていてそちらの方とお話する中で気がついた