AWSへのログインをAWS SSOに移行しました
ウイスキーが好きなSREチームの加藤です。
noteで使用しているAWSへのログインを「IDとパスワード認証 + MFA」から、「AWS SSO(シングルサインオン)」に移行した話を今日はしていきたいと思います。AWS SSOは簡単に言えば、複数AWSアカウントへのログインを一括管理できるサービスです。
※ この記事はnote社内で行われているLT大会の内容を再編した内容になります
移行前は、各AWS アカウントにログインする度に、IDとパスワードを入力して、スマホを取り出し一時キーを確認してMFA認証を通す必要がありました。この方法では、各アカウントごとに ID / パスワードを管理する必要があり漏洩リスクがある他、運用負荷が高いという難点もありました。
IAMユーザの払い出しは、入社するエンジニアに個別でメールを送っていました。SREチームのリーダーである飯野さんからの温かみのあるメールを覚えている社員もいるかもしれません(笑)。
また、MFA認証を通すためにアカウントログインの度にスマホを操作する必要があったため、人によっては面倒くさいと感じる人もいたでしょう。
ということで、AWS SSOを導入して、そういったわずらわしい運用を自動化することに決めました。
noteではOneLoginを使って各サービスへのログインを行っているため、AWS SSOも連携して利用しています。
OneLoginからSAML認証ができるため、メンバーがジョインした時も自動でユーザーを発行してAWSにすぐにログインしてもらうことができます。またエンジニアの皆さんは、各アカウントへログインする際のMFA認証も必要なくなり、ただ使いたいアカウントを選ぶだけでログインできるようになりました。
ログインの画面はシンプルです。クリックするとログイン用の各アカウントが表示されます。非常に手軽に扱えるのがわかるんじゃないかなと思います。
% aws sso configure
ブラウザだけではなく、CLIでのログインも簡単になりました。コマンドを入力すると、ブラウザが自動で立ち上がって認証コードの入力も行ってくれます。
% aws s3 ls --profile <profile_name>
ログインができたら移行前と同じようにプロファイルを指定してコマンドを実行することができます。
AWS SSOの権限については、移行前のIAMユーザーの権限をそのまま反映させています。操作が制限されることはほぼないでしょう。
% aws sso login --profile <profile_name>
aws sso configureは初期設定のコマンドです。セッションが切れてしまったときは上記のコマンドで簡単にログインし直すことができます。
CLIからでも簡単にログインできることがわかったかと思います。ただし、AWS CLIのバージョンが2系でのみ動作するため注意が必要です。
今回のAWS SSOへの移行は、最初から全社的に行っていたわけではなく、一部のチームにテスト運用してもらっていました。noteの「すばやく試そう」というバリューを実行できた成果もあり、移行はスムーズに行えたかと思います。
また、すぐに現行の認証を使えないようにしたのではなく、移行期間に余裕を持たせることにしました。SSOでのログインを使い慣れてもらう目的と、業務で困ったことや使いづらかった部分のフィードバックをもらう機会として設定しました。
▼移行発表時の社員の感想
都度、MFA通さなくていいのは嬉しい
複数AWSアカが前提になってるので助かりますね
革命起きたわ
ログイン方式が変わってくるといろいろと困ることも出てくるかもしれないため、なにかあればSREチームのメンバーにお知らせください。また、「もっとこうしてほしい」などの意見も大歓迎ですので、ご連絡いただければありがたいです。
▼エンジニアの記事をさらに読みたい方はこちら
▼noteを一緒に作りませんか?