Slide 1

Slide 1 text

Zenn のCDNとWAFを Cloudflare へ載せ替えた手順とトラフィック制限ルールの例

Slide 2

Slide 2 text

今日話すこと ● Zennについて ● Cloudflare導入の経緯 ● DDoSから守ってくれた実績とそのときの様子 ● 導入してみての振り返り

Slide 3

Slide 3 text

Zennについて

Slide 4

Slide 4 text

ユーザー参加型の記事投稿サービスです ひとまず 雑にメモ したい あのテーマ で誰かと 議論したい 最近学んだ あの話を記事 にしよう 労力が かかった分 有料で販売 しよう あの話を まとめて 本にしよう

Slide 5

Slide 5 text

Zennの略歴 運営会社がクラスメソッド株式会社に 2020年9月 2021年6月 Publication をリリース 2022年8月 catnose さんが 個人プロジェクトとしてリリース Publication Pro をリリース 2024年1月 本格的にZennをチームで運用開始 2022年4月 和田祐介 waddy 生まれ 大学時代 2016年 〜2022年 〜現在 北九州市 糸島市(九州大学) クラスメソッドへ入社 AWSでWebアプリ開発 Zennの開発と運用 Google Cloud Champion Innovators プログラム認定 サーバーレスアプリ開発 / 2024年04月

Slide 6

Slide 6 text

順調に利用者数が増加 エンジニアのための情報共有コミュニティ「Zenn」の会員数10万人、組織利用数500を突破 クラスメソッド株式会社 2023年12月12日 13時03分 https://prtimes.jp/main/html/rd/p/000000357.000014901.html

Slide 7

Slide 7 text

Cloudflare導入の経緯

Slide 8

Slide 8 text

少人数運用という事情もありGoogle Cloudへ寄せていた イベントデータ Cloud Load Balancing データベース Cloud SQL Analytics 画像など Cloud Storage タスク API Cloud Run 管理用サーバー Cloud Run ユーザーAPI Cloud Run HTML / JS Cloud Run Assets Stats BigQuery Scheduled Tasks Cloud Scheduler タスクAPIへ Monitoring Logging Bulk Tasks Cloud Tasks タスクAPIへ 著者‧読者 管理者 Cloud Armor Cloud CDN

Slide 9

Slide 9 text

少人数運用という事情もありGoogle Cloudへ寄せていた イベントデータ Cloud Load Balancing データベース Cloud SQL Analytics 画像など Cloud Storage タスク API Cloud Run 管理用サーバー Cloud Run ユーザーAPI Cloud Run HTML / JS Cloud Run Assets Stats BigQuery Scheduled Tasks Cloud Scheduler タスクAPIへ Monitoring Logging Bulk Tasks Cloud Tasks タスクAPIへ 著者‧読者 管理者 Cloud Armor Cloud CDN

Slide 10

Slide 10 text

先に結論:DDoS対策の強化目的でWAFをCloudflareへ(CDN移行はついでに) イベントデータ Cloud Load Balancing データベース Cloud SQL Analytics 画像など Cloud Storage タスク API Cloud Run 管理用サーバー Cloud Run ユーザーAPI Cloud Run HTML / JS Cloud Run Assets Stats BigQuery Scheduled Tasks Cloud Scheduler タスクAPIへ Monitoring Logging Bulk Tasks Cloud Tasks タスクAPIへ 著者‧読者 管理者 WAF CDN Cloud Armor

Slide 11

Slide 11 text

移行前の課題感 ● 不定期でDDoSらしき大量アクセスを受けていた ● Cloud Armor の適用型保護での検知とブロックを期待したが、こちらの期待 するレベルでの検知はなかった ○ Google の規模感からみたとき、DDoSとみなすには少なすぎた?(勝手な予想で す) ● DDoSに対して、IPアドレスごとに集計して手動でブロックしており、深夜・ 休日対応に課題が残っていた ● ユーザーからみたときのレイテンシ悪化が続いてしまう Google Cloud Armor 適応型保護のユースケース https://cloud.google.com/armor/docs/adaptive-protection-use-cases?hl=ja

Slide 12

Slide 12 text

クラウド利用費にも影響

Slide 13

Slide 13 text

Cloudflare導入へ ● いろいろな候補があったが、まずは導入コストも低く、Zennの記事でもよく 目にするCloudflareをためすことに ○ ちなみにわたしは、システム接合点を増やすことに懸念があり、反対していまし た… ○ いまは導入してよかったなと、考えが変わっています ● DDoSアラートやWAFのマネージドルールセットが欲しかったのでProプラン アプリケーションサービスプラン | 料金設定 | Cloudflare https://www.cloudflare.com/ja-jp/plans/

Slide 14

Slide 14 text

導入の流れ 1. zenn.dev のドメインネームサーバーをCloudflareへ移行する 2. まずはDNS機能のみ利用する(Proxyオフの状態) 3. Cloudflare WAFなどを設定する 4. Proxyオン 5. WAFの管理ルールセットを有効に 6. レート制限ルールを追加 7. ロードバランサはCloudflareのIPレンジのみ受け入れるように 8. DNS 認証を使用した Google マネージド証明書に切り替える

Slide 15

Slide 15 text

Proxyをオンにした時点でDDoS対策も有効になる 現状とくにオーバーライドの設定は入れていません

Slide 16

Slide 16 text

WAFの管理ルールセットを有効に ゼロデイ攻撃への耐性・ OWASPセキュリティ リスクへの対処

Slide 17

Slide 17 text

レート制限のルールを追加 特定のIPアドレスから繰り返しアクセスが必要なワークロードはZennにはない => カスタムレートリミット を追加 機械的な判定のため、ブロックが早いメリット有

Slide 18

Slide 18 text

導入のポイント: Google Cloud側はIPフィルタのみに ● Edgeセキュリティポリシーにより、CloudflareのIPレンジのみ受け入れる ● LBへのアクセスは必ずCloudflareを通ることになる ● Cloudflareをやめた場合でも元の構成に戻せる

Slide 19

Slide 19 text

導入のポイント: SSL証明書はDNS認証にする DNS 認証を使用した Google マネージド証明書 に切り替えることで セキュアな通信を維持でき るように Cloudflare Proxy 導入後に発生した526エラーの原因と解決方法 | DevelopersIO https://dev.classmethod.jp/articles/cloudflare-proxy-with-google-managed-cert/

Slide 20

Slide 20 text

導入後の実績

Slide 21

Slide 21 text

2024年9月19日深夜にDDoS攻撃を受けた

Slide 22

Slide 22 text

Zennのサイトは一時的に重くなったものの、復旧 2〜3分で自動復旧 自動でブロックしてくれるあ りがたみを痛感

Slide 23

Slide 23 text

導入のふりかえり

Slide 24

Slide 24 text

副次的効果:CDN利用料金が安くなった Cloudflare導入 Cloud CDN => Cloudflare CDNへの移行 おおよそ6万円/月のカット Cloudflare Pro が 20ドル/月 であることを考慮すると大幅なコストカットに

Slide 25

Slide 25 text

注意したい点:コンテンツへの影響 コンテンツHTMLを直接改変するタイプのセキュリティ機能が未考慮だった

Slide 26

Slide 26 text

注意したい点:コンテンツへの影響 コンテンツHTMLを直接改変するタイプのセキュリティ機能が未考慮だった

Slide 27

Slide 27 text

注意したい点:コンテンツへの影響 コンテンツHTMLを直接改変するタイプのセキュリティ機能が未考慮だった

Slide 28

Slide 28 text

まとめ

Slide 29

Slide 29 text

WAFをCloudflareへ移行することで、DDoSを緩和できた ● 期待した通りの検知とブロックをやってくれた ● 「検知して緩和したよ」というインフォメーションがありがたい ● CDNも一緒に移行し、インフラ利用費が6万円/月節約できたのはうれしい ● 豊富なセキュリティ機能は、要件に合わせて調整したいところ ● 全部の機能と影響を把握するのは大変なので、このような場でナレッジを共 有していきたい

Slide 30

Slide 30 text

No content