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