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

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

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. AWS Single Sign-Onを用いた、

    セキュアでより良いログイン体験への取り組み

    【オンライン】ZOZO×一休×PayPay AWS Night

    2020/07/22

    株式会社ZOZOテクノロジーズ

    技術開発本部 SRE部 テックリード

    光野達朗
    Copyright © ZOZO Technologies, Inc.

    View Slide

  2. © ZOZO Technologies, Inc.
    株式会社ZOZOテクノロジーズ

    技術開発本部 SRE部

    テックリード


    光野 達朗

    2012年ヤフー株式会社にサーバサイドエンジニアとして入
    社。2016年4月からは株式会社VASILYでインフラエンジニ
    ア。2018年4月から現職。現在はAWSを専門とするSREテッ
    クリードとして、クラウドアーキテクチャの構築と信頼性向上
    に従事。

    ウィスキーと葉巻が好き。愛してる。

    
 2

    View Slide

  3. © ZOZO Technologies, Inc.
    プロダクト紹介

    3

    View Slide

  4. © ZOZO Technologies, Inc.
    https://zozo.jp/

    ● 日本最大級のファッション通販サイト

    ● 1,300以上のショップ、7,400以上のブランドの取り扱い(ともに2019年12
    月末時点)

    ● 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着商品
    を掲載

    ● 即日配送サービス

    ● ギフトラッピングサービス

    ● ツケ払い など

    4

    View Slide

  5. © ZOZO Technologies, Inc.
    https://wear.jp/

    5
    ● 日本最大級のファッションコーディネートアプリ

    ● 1,400万ダウンロード突破、コーディネート投稿総数は900万件以上(と
    もに2019年12月末時点)

    ● 全世界(App Store / Google Playが利用可能な全ての国)でダウンロー
    ドが可能

    ● 等身大の着こなしが支持を集め、10万人以上のフォロワーを持ち
    WEARISTAに認定された一般ユーザーも誕生


    View Slide

  6. © ZOZO Technologies, Inc.
    本発表で扱う範囲

    個々のプロダクトではなく

    組織全体のAWS運用に関する話

    6

    View Slide

  7. © ZOZO Technologies, Inc.
    本発表を通して伝えたいこと

    Single Sign-Onはいいぞ

    AWSをマルチアカウントで用いる場合には必ず設定した方が良い

    AWSアカウントが1つでも設定する価値あり

    7

    View Slide

  8. © ZOZO Technologies, Inc.
    前提:ZOZOテクノロジーズのAWSアカウント体系

    8
    AWS Organizations
    (複数アカウントを一元管理するもの)
    マスターアカウント
    メンバーアカウント メンバーアカウント
    ● 組織の親
    ● 請求の一元管理
    ● 各種統制系機能の管理
    ● 組織の子
    ● 各プロダクトごとに複数所有
    ● 本番環境用・事前環境用・etc.

    View Slide

  9. © ZOZO Technologies, Inc.
    マルチアカウント体系のメリデメ

    9
    cf. AWS におけるマルチアカウント管理の手法とベストプラクティス, 高田智己, AWS Summit Tokyo 2017

    View Slide

  10. © ZOZO Technologies, Inc.
    マルチアカウント体系のメリデメ

    10
    cf. AWS におけるマルチアカウント管理の手法とベストプラクティス, 高田智己, AWS Summit Tokyo 2017

    View Slide

  11. © ZOZO Technologies, Inc.
    本日取り上げる運用のオーバーヘッド


    なによりもまず

    ログインが手間

    MFA必須にすると更に大変

    11

    View Slide

  12. © ZOZO Technologies, Inc.
    ログイン

    12
    本番環境用アカウント
    開発環境用アカウント
    事前環境用アカウント
    利用者
    【手間その1】
    各アカウントに
    IAMユーザやIAMロールを作成
    【手間その2】
    ログインのたびにTOTP入力

    View Slide

  13. © ZOZO Technologies, Inc.
    この手間、必要?

    13
    ● 仕組みは必要

    ○ アカウント分離もMFAも大事なサービスを守るためには必要

    ● 手間は無くていい

    ○ ex. 入退社に伴うIAMユーザの作成・削除

    ○ 手間がかかることは後回しにされ、安全でなくなる可能性がある

    ● 必要なことこそ簡単にしたい

    利用者
    素敵な
    仕組み
    ● 簡単に切り替えられる
    ● IAMリソース不要

    View Slide

  14. © ZOZO Technologies, Inc.
    解決への取り組み:Single Sign-On

    ● Single Sign-On(以下、SSO)

    ○ シングルサインオン

    ○ 一度のユーザ認証処理で、複数サービスのユーザ認証も済ませること・その仕組み

    ○ 「どこかに1度ログインしたら、AWSアカウントへのログインもそれで済ませる」


    目指したところ(SSOといっても実現方法は色々)

    ● 組織のID体系と紐付けたい

    ○ ZOZOテクノロジーズの場合、Azure ADによるAD管理

    ● AWSアカウントごとに設定したくない

    ○ ZOZOテクノロジーズの場合、現在60アカウント程度。増加傾向

    ● ユーザ・アカウント・権限の紐付けを柔軟にしたい

    14

    View Slide

  15. © ZOZO Technologies, Inc.
    いろいろ試しまして...

    15

    View Slide

  16. © ZOZO Technologies, Inc.
    できました!

    16
    AWS Organizations マスターアカウント
    メンバーアカウント メンバーアカウント
    AWS Single Sign-On
    Azure AD
    プロビジョン
    権限・ユーザの配布
    ログイン用
    IAMリソース
    作成不要

    View Slide

  17. © ZOZO Technologies, Inc.
    デモ動画

    17
    登壇時はデモ動画でした

    静止画になるため削除しています


    View Slide

  18. © 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認証を処理する要素(プログラムを書くわけではない)


    View Slide

  19. © ZOZO Technologies, Inc.
    設定:日々の運用

    19
    1. Azure ADの「エンタープライズアプリケーション」にユーザを追加

    2. AWS SSO側にユーザが現れるので、アカウントと権限を紐付け

    a. AWSアカウントごとのIAMユーザ・IAMポリシー作成は不要(AWS SSOが用意する)

    b. SSO提供アカウント(組織の親アカウント)のみ管理すれば良い


    View Slide

  20. © 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と同じだが作成されたポリシーは個別管理


    View Slide

  21. © ZOZO Technologies, Inc.
    今後解決する必要があること

    21
    ● 最小限かつ十分な権限設計

    ○ 今は大まかな権限設計(管理者・RW・RO・Billingなど・・・)

    ○ 既存の権限がバラバラで、何かが「できなくなる」ことを避けた結果


    ● SSO移行促進・不要なIAMユーザ削除

    ○ SSOを利用していないユーザへの啓蒙

    ○ SSOベースになって不要になったIAMユーザの洗い出しと削除


    AWS CloudTrail
    AWS Config
    いくつかの監査系サービスを組
    み合わせた分析に挑戦中

    View Slide

  22. © ZOZO Technologies, Inc.
    まとめ

    ● AWSのマルチアカウント運用で、頻繁なログインが課題だった


    ● AWS SSOによって複数AWSアカウントでのログイン体験を改善した

    ○ 弊社ではAzure ADをIDソースにしたが、AWS SSO単体でID管理することも可能


    ● IAMユーザを使う場面が減るため、管理上のメリットも多し

    ○ 人間用IAMユーザを削除して回る必要がなくなる


    ● 1アカウントでも設定は可能。アカウントが増える可能性があれば検討推奨


    ● (AWS)Single Sign-Onはいいぞ

    22

    View Slide

  23. © 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

    View Slide

  24. © ZOZO Technologies, Inc.
    We Are Hiring!

    ● AWSを使ってWebサービスを作りたい人

    ○ できます

    ● AWSをより良く使ってWebサービスを作りたい人

    ○ 一緒に強くなりましょう

    ● AWSをより良く使うための仕組みを作りたい人

    ○ 待ってます

    ● AWSをより良く使えているかを確認する仕組みを作りたい人

    ○ 今作ってます。一緒に作りましょう

    24
    => https://tech.zozo.com/recruit/ <=

    View Slide

  25. View Slide