AWS Configを用いたマルチアカウント・マルチリージョンでのリソース把握とコンプライアンス維持への取り組みについて / Using AWS Config for Multi-Account, Multi-Region Resource Understanding and Maintaining Compliance
by
Tatsuro Mitsuno
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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