Slide 1

Slide 1 text

AWS Configを用いた
 マルチアカウント・マルチリージョンでの
 リソース把握とコンプライアンス維持への取り組みについて
 【オンライン】第一回 AWSマルチアカウント事例祭り
 2020/09/08
 株式会社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. 本発表を通してお伝えしたいこと
 AWS Configでスケールする
 品質維持環境を作りましょう!
 (人手を惜しむ。自動化大事。)
 7

Slide 8

Slide 8 text

© ZOZO Technologies, Inc. 前提:ZOZOテクノロジーズのAWSアカウント体系
 8 AWS Organizations (複数アカウントを一元管理するもの) マスターアカウント メンバーアカウント メンバーアカウント ● 組織の親 ● 請求の一元管理 ● 主な運用者:光野 ● 組織の子 ● 本番環境用・事前環境用・etc. ● 主な運用者:プロダクト担当

Slide 9

Slide 9 text

© ZOZO Technologies, Inc. EC2 課題:全てのリソースがコンプライアンスを満たしていることを保証したい
 9 ● 本資料におけるコンプライアンスとは
 ○ AWSで有効にしたい設定・無効にしたい設定
 ○ 守ることで品質が上がるもの
 ○ AWSベストプラクティスや各種社内文書、世のトレンドに基づいて策定
 
 (例)Security Groupの22番ポートを0.0.0.0/0で公開してはならない Security Group こういった
 「基本的な(基礎的な)設定」
 を全てのリソースで保証したい


Slide 10

Slide 10 text

© ZOZO Technologies, Inc. 全てのリソースって・・・?
 24リージョン/175サービス
 のどこかで作られるもの
 x
 AWSアカウント
 10 cf. https://aws.amazon.com/jp/about-aws/global-infrastructure/ AWS グローバルインフラストラクチャ | AWS

Slide 11

Slide 11 text

© ZOZO Technologies, Inc. 課題:どうやるか
 11 ● やらないという選択肢は無い
 ○ せめてEC2, RDS, S3といった頻出サービスは網羅したい
 ● 1アカウントなら「がんばる」も可能
 ○ それでも大変
 ● 弊社の場合、約60のアクティブアカウントを保有(増加傾向)
 ○ 人力はほぼ不可能
 ● みんなで守る
 ○ 大事。しかし熟練者であれ操作権限を持つ以上、発生をゼロにできない
 
 ● ルールに違反したリソースを自動的に検知してくれたらいいのに


Slide 12

Slide 12 text

© ZOZO Technologies, Inc. 既に存在する:AWS Config
 12 AWS リソースの設定を記録して評価
 
 AWS Config は、AWS リソースの設定を評価、監査、審査できるサービス です。Config では、AWS リソースの設定が継続的にモニタリングおよび記 録され、望まれる設定に対する記録された設定の評価を自動的に実行で きます。
 
 cf. https://aws.amazon.com/jp/config/, 
 AWS Config(リソースのインベントリと変更の追跡)| AWS
 


Slide 13

Slide 13 text

© ZOZO Technologies, Inc. 13

Slide 14

Slide 14 text

© ZOZO Technologies, Inc. 14

Slide 15

Slide 15 text

© ZOZO Technologies, Inc. 結論から言うと、やりたいことは全てConfigでできた
 15 ● ルールの策定と非準拠リソースの通知
 ■ Config/Chatbot連携
 ● 組織全体のリソース俯瞰
 ■ AWS Configアグリゲータ・・・・・・>
 ● 特定の条件を満たすリソースの抽出
 ■ Advanced Query
 
 ● ただし、Configはリージョナルなサービス
 ● マルチアカウント・マルチリージョンで準備するには工夫が必要だった


Slide 16

Slide 16 text

© ZOZO Technologies, Inc. Configを設定する上で満たしたいこと
 16 前提:常に「組織管理者(統制担当)数<< プロダクト担当のエンジニア数」
 
 ● Config自体の初期設定に手間をかけない
 ○ アカウントは増減する
 
 ● ルールとその評価結果だけに気を配りたい
 
 ● 設定と評価結果はそれぞれ一箇所に集約したい


Slide 17

Slide 17 text

© ZOZO Technologies, Inc. 17 活躍するもの
 AWS Organizations
 ● 複数のAWSアカウントを関連付け、親子関係(組織)を作る
 ● 統合されたサービスはIAM権限が組織内で解決され、設定の一括反映を可能とする
 AWS CloudFormation(CFn) Service Managed StackSets
 ● JSON/YAMLでリソースを定義し、複数のリージョン・アカウントを指定して実行
 ● 統合が有効な場合、特定の組織を対象とした自動反映が可能
 ● Service Managed StackSetsとすることで、新規アカウントへ勝手に反映される
 Amazon EventBridge
 ● Amazon CloudWatch Eventsと呼ばれていたもの
 ● SaaSやAWSで発生したイベントをターゲットへ転送


Slide 18

Slide 18 text

© ZOZO Technologies, Inc. 再掲:ZOZOテクノロジーズのAWSアカウント体系
 18 AWS Organizations (複数アカウントを一元管理するもの) マスターアカウント メンバーアカウント メンバーアカウント ● 組織の親 ● 請求の一元管理 ● 主な運用者:光野 ● 組織の子 ● 本番環境用・事前環境用・etc. ● 主な運用者:プロダクト担当

Slide 19

Slide 19 text

© ZOZO Technologies, Inc. マルチアカウント・マルチリージョン連携の概要
 19 1.AWS Organizationsで アカウント間連携を強化 マスターアカウント メンバーアカウント 2. CFn StackSetsで Config等サービスの 有効化・設定 3. EventBridgeで イベントを集約して一 箇所から通知 至Slack

Slide 20

Slide 20 text

© ZOZO Technologies, Inc. 20 検知


Slide 21

Slide 21 text

© ZOZO Technologies, Inc. 21 1.各メンバーアカウントの  各リージョンに対してConfigを有効化 Configの検証ログは専用アカウントへ集約 (今回はこれ以上、出番なし)

Slide 22

Slide 22 text

© ZOZO Technologies, Inc. 22 2.自分自身の各リージョンに対して、Organization Config Ruleを作成 a. 組織アカウント全てにルールが反映される

Slide 23

Slide 23 text

© ZOZO Technologies, Inc. 23 通知


Slide 24

Slide 24 text

© ZOZO Technologies, Inc. 24 通知
 1. Configのイベント:「AWSリソースを評価」発生 2. EventBridgeでアカウント間のイベント連携 3. マスターアカウントからChatbotを経由してSlackへ通知 Chatbotはアカウント単位で連携を許可する必要があり、 自動化の妨げになるため一箇所に集約

Slide 25

Slide 25 text

© ZOZO Technologies, Inc. 25

Slide 26

Slide 26 text

© ZOZO Technologies, Inc. 今後解決する必要があること
 26 ● ルールの拡充
 ○ ようやく全体の仕組みが整い、運用を開始したところ
 ○ 効果的なConfigルールを策定し、全体の品質向上を図りたい
 
 ● 非準拠リソースの修復と自動修復の是非
 ○ Configには「修復」という設定がある
 ○ ルール非準拠リソースに対して事前に定められたアクションを自動・手動で実行可能
 ○ 何を自動修復にするか
 


Slide 27

Slide 27 text

© ZOZO Technologies, Inc. まとめ
 27 ● 組織全体のAWSで、コンプライアンスを満たしたいという課題があった
 ○ 本資料におけるコンプライアンスとはAWSの設定レベルの項目で、
 守ることで品質が上がるものを指す
 
 ● リージョン単位であればAWS Configでそれは解決可能であった
 
 ● Organizations / CFn StackSets / EventBridgeを用いることで、
 マルチアカウント・マルチリージョンの設定・通知自動化が実現した
 
 ● AWS Configを使ってスケールする品質維持に取り組みましょう!


Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

No content