現場実践|WAFカスタムルール設計

AWS WAFカスタムルール設計|Bot対策・レート制限・地理的ブロックの実践

「WAFのマネージドルールだけでは防げない攻撃がある」「Bot対策を強化したい」——AWS WAFのカスタムルール作成・Bot Control・地理的ブロック・ログ分析による継続的な改善方法を解説します。

読了目安:約18分更新日:2026年3月

💡 AWS WAFのマネージドルールは「よくある攻撃への基本防御」。それ以上のBot対策・スクレイピング防止・特定国からのブロックにはカスタムルールとBot Controlの追加が必要です。

この記事を書いた人
現役ITエンジニア・IT講師(経験14年)
CCNA・CCNP 取得LPIC-1 保有SES現場を複数経験

AWS WAFのカスタムルール設計・Bot対策を複数のWebサービスで担当してきた立場から解説します。

1. WAFカスタムルールの種類

⏱️
レートベースルール
同一IPから5分間に一定数以上のリクエストが来たらブロック。デフォルトHTTPフラッド攻撃への基本的な対策。閾値の設定が重要。
🌏
地理的マッチルール
特定の国・地域からのアクセスをブロックまたは許可のみに限定する。日本向けサービスで海外IPをブロックするユースケースが多い。
🔍
文字列マッチルール
リクエストのURL・ヘッダー・クエリ文字列に特定のパターンが含まれる場合にブロック。悪意のあるパスへのアクセスを防ぐ。
🤖
Bot Control
AWSが管理するBotシグネチャで良性Bot(Googlebot等)と悪性Botを識別してブロック。スクレイピング・コンテンツ窃取の対策に有効。

2. レートベースルールの設定例

// AWS CLIでレートベースルールを作成
{
  "Name": "RateLimit-Login",
  "Priority": 1,
  "Action": {"Block": {}},
  "Statement": {
    "RateBasedStatement": {
      "Limit": 100,
      "AggregateKeyType": "IP",
      "ScopeDownStatement": {
        "ByteMatchStatement": {
          "SearchString": "/api/login",
          "FieldToMatch": {"UriPath": {}},
          "TextTransformations": [{"Priority": 0, "Type": "NONE"}],
          "PositionalConstraint": "STARTS_WITH"
        }
      }
    }
  }
}
// /api/loginへのリクエストが同一IPから5分間に100回を超えたらブロック

3. WAFログの継続的な分析

  • Kinesis Firehose経由でS3に出力:WAFログをS3に蓄積してAthenaで分析する
  • よく確認するクエリ:「どのルールが最も発火しているか」「どのIPからが最も多くブロックされているか」「どのURIへの攻撃が多いか」
  • ブロックIPのIPセット登録:繰り返し攻撃してくるIPをWAFのIPセットに登録して永続的にブロックする
📌 この記事のポイント
  • WAFカスタムルールはレートベース・地理的ブロック・文字列マッチ・Bot Controlの4種類を組み合わせる
  • ログインエンドポイントへのレートベースルール(100回/5分/IP)はブルートフォース攻撃への基本対策
  • WAFログをS3→Athenaで分析して発火ルール・攻撃IPを把握し継続的にルールを改善する

キャリアの疑問、一緒に解決しませんか?

Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。

※AWS WAFの機能・料金はAWSにより変更される場合があります。

ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営