Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DMMでAWSセキュリティガードレールを作ったので、開発者がAWSセキュリティをチェックする文...
Search
Wataru Nishiyama
November 11, 2021
7
7.8k
DMMでAWSセキュリティガードレールを作ったので、開発者がAWSセキュリティをチェックする文化を広げていきたい
Wataru Nishiyama
November 11, 2021
Tweet
Share
More Decks by Wataru Nishiyama
See All by Wataru Nishiyama
AWSセキュリティガードレールにより開発者がセキュリティ監視するようになったDMM_課題と今後.pptx.pdf
runble1
0
120
DMMにおける300アカウント67チームのAWSセキュリティを「開発者」に監視してもらうまでの道のり
runble1
1
1.2k
GCP無料枠を使ってデータ分析基盤を作ってみた
runble1
1
1.2k
英語できないエンジニア Google I/O にいく
runble1
0
350
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
182
22k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Thoughts on Productivity
jonyablonski
68
4.4k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Writing Fast Ruby
sferik
628
61k
Optimizing for Happiness
mojombo
376
70k
A Tale of Four Properties
chriscoyier
157
23k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Why Our Code Smells
bkeepers
PRO
335
57k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
Transcript
© DMM.com CONFIDENTIAL DMMでAWSセキュリティガードレール を作ったので、開発者が AWSセキュリティをチェックする 文化を広げていきたい 合同会社DMM.com セキュリティ部 CloudSecチーム
西山渉
© DMM.com 自己紹介 2 - 名前 : 西山渉 - 所属
: 合同会社DMM.com セキュリティ部 • クラウドセキュリティの推進 • WAF 導入支援 • PCIDSS セキュリティ監視
© DMM.com 今日話すこと 3 1. DMM で AWS セキュリティガードレールを構築 2.
AWS セキュリティガードレールを支える技術 3. 開発者がセキュリティチェックをする文化
© DMM.com 第1話 4 DMM で AWS セキュリティ ガードレールを構築
© DMM.com AWS セキュリティガードレールとは 5 - セキュリティ品質の担保のため、クラウド領域を制限 または、検知できるようにすること
© DMM.com AWS セキュリティガードレールとは 6 今回は検知 - セキュリティ品質の担保のため、クラウド領域を制限 または、検知できるようにすること
© DMM.com 対象はDMM 7 - チーム数 : 67 - AWS
アカウント : 300 以上 ( 17リージョン )
© DMM.com ガードレールの要件 8
© DMM.com 要件 9 - AWS へのセキュリティ脅威の検知
© DMM.com 要件 10 - AWS へのセキュリティ脅威の検知 - 開発者にセキュリティをチェックしてもらう(!?)
© DMM.com 〜部長に承認もらうとき〜 11 ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは セキュリティ部で、パッとやっていいですか」
© DMM.com 〜部長に承認もらうとき〜 12 ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは セキュリティ部で、パッとやっていいですか」 部長「ダメ。各チームのお金とリソースでチェックしてもらうよう、 各チームに承認をもらってください」
© DMM.com 〜部長に承認もらうとき〜 13 ぼく「AWSセキュリティ設定すぐできそうです。お金とチェックは セキュリティ部で、パッとやっていいですか」 部長「ダメ。各チームのお金とリソースでチェックしてもらうよう、 各チームに承認をもらってください」 ぼく「なるほどですね〜 (
ひええええええええ ) 」
© DMM.com DMM Tech Vision 14
© DMM.com DMM が目指す開発像 15
© DMM.com セキュリティも開発者が面倒をみる 16
© DMM.com 監視モデル 17 管理者 開発者 AWS 主役
© DMM.com 監視モデル 18 管理者 開発者 AWS Push型
© DMM.com 技術選定 19
© DMM.com Landing Zone 20 Landing Zone ・組織マスター ・セキュリティ ・ログアーカイブ
© DMM.com 監視体制 21
© DMM.com 監視体制 22 チームごとに Slackチャンネル作成
© DMM.com 監視体制 23 セキュリティ部は 全チャンネルにJOIN
© DMM.com 利用サービス 24 - AWS Config - AWS CloudTrail
- AWS Config Rules - Amazon GuardDuty - Amazon EventBridge - Amazon SNS - AWS Chatbot (Slack) - AWS Organizations - サービスマネージド型 CloudFormation StackSets
© DMM.com 利用サービス 25 - AWS Config - AWS CloudTrail
- AWS Config Rules - Amazon GuardDuty - Amazon EventBridge - Amazon SNS - AWS Chatbot (Slack) - AWS Organizations - サービスマネージド型 CloudFormation StackSets ログ保全 検知・監視 通知 設定
© DMM.com Config Rules の選定 26
© DMM.com アラート管理のための 技術選定 ( AWS外 ) 27
© DMM.com 方針 28 - 開発者にセキュリティ運用をやってもらう →開発者がスムーズに運用できるようなツールを選定
© DMM.com Slack 29 - DMM で採用されているコミュニケーションツール
© DMM.com JIRA 30 - DMM で採用されているチケット管理システム
© DMM.com JIRA -全てのアラートを一元管理- 31
© DMM.com JIRA -ステータスをカンバンで管理- 32
© DMM.com JIRA -チケット内には優先度や期限を記載- 33
© DMM.com JIRA? 34 - DMM で採用されているチケット管理システム - DMM 入社時にアカウント発行
- 他部署へのタスクの依頼に利用 → DMM の人は全員使える。。。はず
© DMM.com Slackbot ( 作った ) 35 - Slack と
JIRA をつなぎこむ - Slack 通知されたアラートから JIRA チケットを起票 - アラートのスレッドへ JIRA チケット URL 通知 - アラートの重要度に応じたメンション発行 etc...
© DMM.com Slackbot ( 作った ) 36
© DMM.com 実際の例 37
© DMM.com DMM のチームを巡り 承認をもらう旅 38 DMM ジャーニー
© DMM.com 承認をもらう旅 39 - AWS セキュリティチェックを開発者にやってもらうため「お金」 と「運用リソース」を出してもらうよう、 承認いただく
© DMM.com 営業資料 40
© DMM.com 営業 41
© DMM.com 結果 42
© DMM.com 結果 承認もらえたチーム : 80 → Slack チャンネルの通知先は 67
43
© DMM.com 結果 44 セキュリティ設定完了したアカウント : 約300 承認もらえたチーム : 80
→ Slack チャンネルの通知先は 67
© DMM.com 結果 45 棚卸しにより削除されたアカウント : 約50(!?) セキュリティ設定完了したアカウント : 約300
承認もらえたチーム : 80 → Slack チャンネルの通知先は 67
© DMM.com 監視体制 46
© DMM.com 監視体制 47 Slack セクション機能で グルーピング
© DMM.com アラート数の推移(2021/9末時点) 48
© DMM.com アラート状況(2021/9末) 49 約4500 約3200
© DMM.com 特にヤバイ設定不備(済) 50 DB パブリック公開:20 S3 書き込み権限でパブリック公開:6
© DMM.com 実際に起きてた事件(済) 51 3件
© DMM.com 構築の過程の話はこちら 52
© DMM.com 第2話 53 AWS セキュリティ ガードレールを支える技術
© DMM.com つまり管理者の運用の話 54 - Organizations OU - サービスマネージド型 CloudFormation
StackSets - アカウントごとの例外設定 - CICD
© DMM.com Organizations OU 55
© DMM.com どの OU にアカウント入れるのかわからない問題 56 - OU の数は 80
以上 ( 基本は事業部ごとに分けてる ) →どの OU にどのアカウントを入れる?
© DMM.com どの OU にアカウント入れるのかわからない問題 57 - 【未】解決方法 • OU
名に Slack チャンネル ID を入れる → ID は開発者に報告してもらう
© DMM.com どの OU にアカウント入れるのかわからない問題 58 - 現在 OU は事業部ごとに分かれているため、Slack
チャン ネル ID で分け直す必要あり - OU 名で検索できない ( ブラウザ検索 )
© DMM.com 余談:AWSセキュリティプラン 59
© DMM.com 余談:AWSセキュリティプラン 60 チームに複数の OU が存在する 場合がある
© DMM.com サービスマネージド型 CloudFormation StackSets 61
© DMM.com 「自動デプロイ」に寄せきれていない問題 62 - 「自動デプロイ」は OU に AWS アカウントを所属
させたタイミングで CloudFormation が実行される機能
© DMM.com 「自動デプロイ」に寄せきれていない問題 63 - グローバルリソースとリージョナルリソースに依存関係がある 場合、リージョンの実行順序を制御したい • Chatbot (
グローバルリソース ) • EventBridge ( リージョナルリソース ) • SNS ( リージョナルリソース )
© DMM.com 「自動デプロイ」に寄せきれていない問題 64 - グローバルリソースとリージョナルリソースに依存関係がある 場合、リージョンの実行順序を指定したい • Chatbot (
グローバルリソース ) • EventBridge ( リージョナルリソース ) • SNS ( リージョナルリソース ) Chatbot は東京リージョン時のみ、かつ全リージョンで EventBridge + SNS が作成された後に作成開始したい
© DMM.com 「自動デプロイ」に寄せきれていない問題 65 - 【未】解決方法 • Chatbot を利用せず Lambda
で Slack へ通知 • 自動デプロイを利用せず CICD でがんばる • 自動デプロイで実行順序を指定できるよう AWS へリクエスト
© DMM.com アカウントごとの例外設定 66
© DMM.com アカウントごとの例外覚えてられない問題 67 - 開発者から例外をリクエストされる ex ) このアカウントではこのアラート無効化して〜
© DMM.com アカウントごとの例外覚えてられない問題 68 - 解決方法 • 全て CICD に寄せてコード化している
© DMM.com アカウントごとの例外覚えてられない問題 69 - 解決方法 • 全て CICD に寄せてコード化している
→例外のために OU の作成が必要となり大変
© DMM.com ※組織変更多すぎ問題 70 - ユースケース - AWS アカウントを Root
へ移動 ( アカウント停止前 ) - AWS アカウントを Root へ移動 ( アカウント停止後 ) - AWS アカウントを別の既存 OU へ移動 - AWS アカウントを別の新規 OU へ移動 - AWS アカウントを別の新規 OU へ移動 ( 現在の OU 配下 ) - etc...
© DMM.com CICD 71 特に CD
© DMM.com 手動でアップデートつらい問題 72 - OU が 80 以上あるため、テンプレート更新時に 80
回手動で Update StackSet やっている
© DMM.com 手動でアップデートつらい問題 73 - 現在、CICD は例外設定のみに利用している
© DMM.com 手動でアップデートつらい問題 74 - 【未】解決方法 ( 日和ってる ) •
UpdateStackSetAPI 同時実行制限 ( 1 req/s ) → サービスクォータに項目がないため、 CD 側の 制御で直列実行などにする必要あり • Stack instance operations per administrator account → 3500 ( 一つのテンプレート更新に 300 * 17 = 5100 ) • CloudFormation テンプレートの数だけアップデート先 も増える
© DMM.com 第3話 75 開発者がセキュリティ チェックする文化
© DMM.com セキュリティガードレール要件 76 - AWS へのセキュリティ脅威の検知 - 開発者にセキュリティをチェックしてもらう(!?)
© DMM.com 開発者がセキュリティアラートをチェック! 77
© DMM.com チームごとの アラート対応状況 78
© DMM.com アラート対応状況 79 ToDo ↓ レビュー中 ↓ 完了 のフローです
© DMM.com チケット ( アラート ) 状況 80 開発者が運用 がんばってる!
© DMM.com 議論が発生している 箇所 81
© DMM.com 80, 443 port パブリック公開の検知 82 Q. Web 会社なんだから
80, 443 port 公開するの当たり前 じゃん!想定内ですよ! A. DEV/STG 環境や Jenkins などを誤ってパブリック 公開していないかの確認のため、80, 443 port の パブリック検知を実施しています。
© DMM.com セキュリティ設定するタイミング 83 Q. サービスリリースしてからでいいんじゃないの? A. クラウドセキュリティの場合、クラウドを利用し始めた タイミングからリスクが発生します。そのため、AWS アカウントが払い出されたタイミングで、セキュリティ
設定を有効化します。
© DMM.com 議論が発生することは大歓迎 84 - 開発者がセキュリティを意識してくれている
© DMM.com Landing Zone までは一緒 その先は? 85
© DMM.com Landing Zone 構築のその先 86 - Landing Zone 構築はまでは各社一緒
© DMM.com Landing Zone 構築のその先 87 - Landing Zone 構築はまでは各社一緒
- その先は、各社の方針が関わってくる ex) DMM では開発者にやってもらう
© DMM.com Landing Zone 構築のその先 88 - Landing Zone 構築はまでは各社一緒
- その先は、各社の方針が関わってくる ex) DMM では開発者にやってもらう ここが文化
© DMM.com Landing Zone 構築のその先 89 - このプロジェクト1年ぐらいやってたが、作ってたのは Landing Zone
でなく、開発者が AWS セキュリティを チェックする文化だったかもしれない
© DMM.com まとめ 90
© DMM.com まとめ 91 - DMM の AWS アカウントにガードレールを敷けた →設定不備・セキュリティ侵害を発見できた
© DMM.com まとめ 92 - DMM の AWS アカウントにガードレールを敷けた →設定不備・セキュリティ侵害を発見できた
- 開発者がセキュリティアラートを自発的にチェック → AWS レイヤーのセキュリティ自給率が高まった
© DMM.com 今後の DMM 93 DMM のセキュリティ部は開発者と共に セキュリティを推進していきます!
© DMM.com おしまい 94