Slide 1

Slide 1 text

AWS Single Sign-Onを用いた、
 セキュアでより良いログイン体験への取り組み
 【オンライン】ZOZO×一休×PayPay AWS Night
 2020/07/22
 株式会社ZOZOテクノロジーズ
 技術開発本部 SRE部 テックリード
 光野達朗 Copyright © ZOZO Technologies, Inc.

Slide 2

Slide 2 text

© ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ
 技術開発本部 SRE部
 テックリード
 
 光野 達朗
 2012年ヤフー株式会社にサーバサイドエンジニアとして入 社。2016年4月からは株式会社VASILYでインフラエンジニ ア。2018年4月から現職。現在はAWSを専門とするSREテッ クリードとして、クラウドアーキテクチャの構築と信頼性向上 に従事。
 ウィスキーと葉巻が好き。愛してる。
 
 2

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

© ZOZO Technologies, Inc. https://zozo.jp/
 ● 日本最大級のファッション通販サイト
 ● 1,300以上のショップ、7,400以上のブランドの取り扱い(ともに2019年12 月末時点)
 ● 常時73万点以上の商品アイテム数と毎日平均3,200点以上の新着商品 を掲載
 ● 即日配送サービス
 ● ギフトラッピングサービス
 ● ツケ払い など
 4

Slide 5

Slide 5 text

© ZOZO Technologies, Inc. https://wear.jp/
 5 ● 日本最大級のファッションコーディネートアプリ
 ● 1,400万ダウンロード突破、コーディネート投稿総数は900万件以上(と もに2019年12月末時点)
 ● 全世界(App Store / Google Playが利用可能な全ての国)でダウンロー ドが可能
 ● 等身大の着こなしが支持を集め、10万人以上のフォロワーを持ち WEARISTAに認定された一般ユーザーも誕生


Slide 6

Slide 6 text

© ZOZO Technologies, Inc. 本発表で扱う範囲
 個々のプロダクトではなく
 組織全体のAWS運用に関する話
 6

Slide 7

Slide 7 text

© ZOZO Technologies, Inc. 本発表を通して伝えたいこと
 Single Sign-Onはいいぞ
 AWSをマルチアカウントで用いる場合には必ず設定した方が良い
 AWSアカウントが1つでも設定する価値あり
 7

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

© ZOZO Technologies, Inc. 本日取り上げる運用のオーバーヘッド
 
 なによりもまず
 ログインが手間
 MFA必須にすると更に大変
 11

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

© ZOZO Technologies, Inc. この手間、必要?
 13 ● 仕組みは必要
 ○ アカウント分離もMFAも大事なサービスを守るためには必要
 ● 手間は無くていい
 ○ ex. 入退社に伴うIAMユーザの作成・削除
 ○ 手間がかかることは後回しにされ、安全でなくなる可能性がある
 ● 必要なことこそ簡単にしたい
 利用者 素敵な 仕組み ● 簡単に切り替えられる ● IAMリソース不要

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

© ZOZO Technologies, Inc. できました!
 16 AWS Organizations マスターアカウント メンバーアカウント メンバーアカウント AWS Single Sign-On Azure AD プロビジョン 権限・ユーザの配布 ログイン用 IAMリソース 作成不要

Slide 17

Slide 17 text

© ZOZO Technologies, Inc. デモ動画
 17 登壇時はデモ動画でした
 静止画になるため削除しています


Slide 18

Slide 18 text

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


Slide 19

Slide 19 text

© ZOZO Technologies, Inc. 設定:日々の運用
 19 1. Azure ADの「エンタープライズアプリケーション」にユーザを追加
 2. AWS SSO側にユーザが現れるので、アカウントと権限を紐付け
 a. AWSアカウントごとのIAMユーザ・IAMポリシー作成は不要(AWS SSOが用意する)
 b. SSO提供アカウント(組織の親アカウント)のみ管理すれば良い


Slide 20

Slide 20 text

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


Slide 21

Slide 21 text

© ZOZO Technologies, Inc. 今後解決する必要があること
 21 ● 最小限かつ十分な権限設計
 ○ 今は大まかな権限設計(管理者・RW・RO・Billingなど・・・)
 ○ 既存の権限がバラバラで、何かが「できなくなる」ことを避けた結果
 
 ● SSO移行促進・不要なIAMユーザ削除
 ○ SSOを利用していないユーザへの啓蒙
 ○ SSOベースになって不要になったIAMユーザの洗い出しと削除
 
 AWS CloudTrail AWS Config いくつかの監査系サービスを組 み合わせた分析に挑戦中

Slide 22

Slide 22 text

© ZOZO Technologies, Inc. まとめ
 ● AWSのマルチアカウント運用で、頻繁なログインが課題だった
 
 ● AWS SSOによって複数AWSアカウントでのログイン体験を改善した
 ○ 弊社ではAzure ADをIDソースにしたが、AWS SSO単体でID管理することも可能
 
 ● IAMユーザを使う場面が減るため、管理上のメリットも多し
 ○ 人間用IAMユーザを削除して回る必要がなくなる
 
 ● 1アカウントでも設定は可能。アカウントが増える可能性があれば検討推奨
 
 ● (AWS)Single Sign-Onはいいぞ
 22

Slide 23

Slide 23 text

© 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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

No content