Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Single Sign-Onを用いた、セキュアでより良いログイン体験への取り組み ...

AWS Single Sign-Onを用いた、セキュアでより良いログイン体験への取り組み / AWS Single Sign-On for a better experience and more secure login

Title
AWS Single Sign-Onを用いた、セキュアでより良いログイン体験への取り組み

Speaker
光野 達朗 Tatsuro Mitsuno (技術開発本部 SRE部 テックリード)

2020/07/22 【【オンライン】ZOZO×一休×PayPay AWS Night
https://techplay.jp/event/784413
#ZIP_AWS

https://www.youtube.com/watch?v=W75G6DCDN6w

Tatsuro Mitsuno

July 22, 2020
Tweet

More Decks by Tatsuro Mitsuno

Other Decks in Technology

Transcript

  1. © ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ
 技術開発本部 SRE部
 テックリード
 
 光野

    達朗
 2012年ヤフー株式会社にサーバサイドエンジニアとして入 社。2016年4月からは株式会社VASILYでインフラエンジニ ア。2018年4月から現職。現在はAWSを専門とするSREテッ クリードとして、クラウドアーキテクチャの構築と信頼性向上 に従事。
 ウィスキーと葉巻が好き。愛してる。
 
 2
  2. © ZOZO Technologies, Inc. https://zozo.jp/
 • 日本最大級のファッション通販サイト
 • 1,300以上のショップ、7,400以上のブランドの取り扱い(ともに2019年12 月末時点)


    • 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着商品 を掲載
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など
 4
  3. © ZOZO Technologies, Inc. https://wear.jp/
 5 • 日本最大級のファッションコーディネートアプリ
 • 1,400万ダウンロード突破、コーディネート投稿総数は900万件以上(と

    もに2019年12月末時点)
 • 全世界(App Store / Google Playが利用可能な全ての国)でダウンロー ドが可能
 • 等身大の着こなしが支持を集め、10万人以上のフォロワーを持ち WEARISTAに認定された一般ユーザーも誕生

  4. © ZOZO Technologies, Inc. 前提:ZOZOテクノロジーズのAWSアカウント体系
 8 AWS Organizations (複数アカウントを一元管理するもの) マスターアカウント

    メンバーアカウント メンバーアカウント • 組織の親 • 請求の一元管理 • 各種統制系機能の管理 • 組織の子 • 各プロダクトごとに複数所有 • 本番環境用・事前環境用・etc.
  5. © ZOZO Technologies, Inc. ログイン
 12 本番環境用アカウント 開発環境用アカウント 事前環境用アカウント 利用者

    【手間その1】 各アカウントに IAMユーザやIAMロールを作成 【手間その2】 ログインのたびにTOTP入力
  6. © ZOZO Technologies, Inc. この手間、必要?
 13 • 仕組みは必要
 ◦ アカウント分離もMFAも大事なサービスを守るためには必要


    • 手間は無くていい
 ◦ ex. 入退社に伴うIAMユーザの作成・削除
 ◦ 手間がかかることは後回しにされ、安全でなくなる可能性がある
 • 必要なことこそ簡単にしたい
 利用者 素敵な 仕組み • 簡単に切り替えられる • IAMリソース不要
  7. © ZOZO Technologies, Inc. 解決への取り組み:Single Sign-On
 • Single Sign-On(以下、SSO)
 ◦

    シングルサインオン
 ◦ 一度のユーザ認証処理で、複数サービスのユーザ認証も済ませること・その仕組み
 ◦ 「どこかに1度ログインしたら、AWSアカウントへのログインもそれで済ませる」
 
 目指したところ(SSOといっても実現方法は色々)
 • 組織のID体系と紐付けたい
 ◦ ZOZOテクノロジーズの場合、Azure ADによるAD管理
 • AWSアカウントごとに設定したくない
 ◦ ZOZOテクノロジーズの場合、現在60アカウント程度。増加傾向
 • ユーザ・アカウント・権限の紐付けを柔軟にしたい
 14
  8. © ZOZO Technologies, Inc. できました!
 16 AWS Organizations マスターアカウント メンバーアカウント

    メンバーアカウント AWS Single Sign-On Azure AD プロビジョン 権限・ユーザの配布 ログイン用 IAMリソース 作成不要
  9. © ZOZO Technologies, Inc. 設定:初期設定
 18 • AWS SSOのIDソースを検討する
 a.

    SSO自体に管理させる・Microsoft AD・Azure AD(2019/09対応)・Okta(2020/06対応)
 b. 弊社はAzure ADを外部IDソースとして利用
 
 • 大きく3ステップで完了
 a. AWS OrganizationsからAWS Single Sign-On(以下SSO)統合を有効化
 b. AWS SSOのリソースを作成
 c. Azure ADの「エンタープライズアプリケーション」を作成し接続
 i. SAML認証を処理する要素(プログラムを書くわけではない)

  10. © ZOZO Technologies, Inc. 設定:日々の運用
 19 1. Azure ADの「エンタープライズアプリケーション」にユーザを追加
 2.

    AWS SSO側にユーザが現れるので、アカウントと権限を紐付け
 a. AWSアカウントごとのIAMユーザ・IAMポリシー作成は不要(AWS SSOが用意する)
 b. SSO提供アカウント(組織の親アカウント)のみ管理すれば良い

  11. © ZOZO Technologies, Inc. AWS Single Sign-Onの良いところ・イマイチなところ
 20 • AWSアカウントの増減を気にしなくて良い


    ◦ Organizationsで管理されるAWSアカウント全てが自動的に対象となる
 • Azure ADにてユーザが削除されるとAWS SSO側でも「無効化」される
 ◦ 退職時に、アカウントをのぞいてIAMユーザを削除して回らなくて良い
 • AWS CLI v2との統合
 ◦ aws sso login 〜でSSOベースのアクセストークンが取得できる
 
 • APIが少ない
 ◦ 権限の更新・ユーザの更新など更新作業はWebコンソールオンリー
 • SSOで定義する権限がIAMと統合されてない
 ◦ 記法はIAMと同じだが作成されたポリシーは個別管理

  12. © ZOZO Technologies, Inc. 今後解決する必要があること
 21 • 最小限かつ十分な権限設計
 ◦ 今は大まかな権限設計(管理者・RW・RO・Billingなど・・・)


    ◦ 既存の権限がバラバラで、何かが「できなくなる」ことを避けた結果
 
 • SSO移行促進・不要なIAMユーザ削除
 ◦ SSOを利用していないユーザへの啓蒙
 ◦ SSOベースになって不要になったIAMユーザの洗い出しと削除
 
 AWS CloudTrail AWS Config いくつかの監査系サービスを組 み合わせた分析に挑戦中
  13. © ZOZO Technologies, Inc. まとめ
 • AWSのマルチアカウント運用で、頻繁なログインが課題だった
 
 • AWS

    SSOによって複数AWSアカウントでのログイン体験を改善した
 ◦ 弊社ではAzure ADをIDソースにしたが、AWS SSO単体でID管理することも可能
 
 • IAMユーザを使う場面が減るため、管理上のメリットも多し
 ◦ 人間用IAMユーザを削除して回る必要がなくなる
 
 • 1アカウントでも設定は可能。アカウントが増える可能性があれば検討推奨
 
 • (AWS)Single Sign-Onはいいぞ
 22
  14. © ZOZO Technologies, Inc. Appendix
 Q. AWS SSO以外で検討した手段と結果は?
 A. IAMのIDプロバイダを利用したSSO

    / クロスアカウントAssumeRoleを検討したが、 各アカウント単位で事前に作るものが多かったので非採用。機能的にもAWS SSOが 最も使いやすい。
 
 Q. OneLogin / Okta / TrustLoginなどのサービスを使わなかった理由は?
 A. 既にAzure ADを中心としたSSO体系が存在していたので、
 1. Azure AD=>(別サービス)=> AWS
 2. (別サービス)=> AWS
 などとするメリットが特に無かった。
 
 23
  15. © ZOZO Technologies, Inc. We Are Hiring!
 • AWSを使ってWebサービスを作りたい人
 ◦

    できます
 • AWSをより良く使ってWebサービスを作りたい人
 ◦ 一緒に強くなりましょう
 • AWSをより良く使うための仕組みを作りたい人
 ◦ 待ってます
 • AWSをより良く使えているかを確認する仕組みを作りたい人
 ◦ 今作ってます。一緒に作りましょう
 24 => https://tech.zozo.com/recruit/ <=