Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ZennにCloudflare WAFを導入してDDoSを防いだ例 / zenn-cloudf...

ZennにCloudflare WAFを導入してDDoSを防いだ例 / zenn-cloudflare-waf-blocked-ddos

ZennのWAFとCDNはそれぞれ Google Cloud の Cloud Armor と Cloud CDN を利用していました。DDoS対策の一環で、WAFはいろいろなサービスを試してみようということになり、Cloudflareを導入したところ、実際に検知・ブロックまでやってくれたことがあったので、実例を交えて紹介します。

Yusuke Wada

October 02, 2024
Tweet

More Decks by Yusuke Wada

Other Decks in Technology

Transcript

  1. 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月
  2. 少人数運用という事情もあり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
  3. 少人数運用という事情もあり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
  4. 先に結論: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
  5. 移行前の課題感 • 不定期でDDoSらしき大量アクセスを受けていた • Cloud Armor の適用型保護での検知とブロックを期待したが、こちらの期待 するレベルでの検知はなかった ◦ Google

    の規模感からみたとき、DDoSとみなすには少なすぎた?(勝手な予想で す) • DDoSに対して、IPアドレスごとに集計して手動でブロックしており、深夜・ 休日対応に課題が残っていた • ユーザーからみたときのレイテンシ悪化が続いてしまう Google Cloud Armor 適応型保護のユースケース https://cloud.google.com/armor/docs/adaptive-protection-use-cases?hl=ja
  6. 導入の流れ 1. zenn.dev のドメインネームサーバーをCloudflareへ移行する 2. まずはDNS機能のみ利用する(Proxyオフの状態) 3. Cloudflare WAFなどを設定する 4.

    Proxyオン 5. WAFの管理ルールセットを有効に 6. レート制限ルールを追加 7. ロードバランサはCloudflareのIPレンジのみ受け入れるように 8. DNS 認証を使用した Google マネージド証明書に切り替える
  7. 導入のポイント: SSL証明書はDNS認証にする DNS 認証を使用した Google マネージド証明書 に切り替えることで セキュアな通信を維持でき るように Cloudflare

    Proxy 導入後に発生した526エラーの原因と解決方法 | DevelopersIO https://dev.classmethod.jp/articles/cloudflare-proxy-with-google-managed-cert/