レート制限ルールは、特定の条件に一致する受信リクエストのレートを制御します。クライアントが設定されたリクエストしきい値を超えると、レート制限は、スライダー CAPTCHA 検証や一時的な IP ブラックリスト登録などのアクションを適用します。
レート制限の仕組み
レート制限は、リクエストレートを監視することで、分散型サービス妨害 (DDoS) 攻撃と HTTP フラッド攻撃を検出して軽減します。1 秒あたりのクエリ数 (QPS) のしきい値と、クライアント IP アドレスやユーザーエージェントなどのディメンションに基づく一致条件を設定できます。しきい値を超えると、レート制限は事前に定義されたアクションをリアルタイムでトリガーします。使用可能なアクションには、監視、スライダー CAPTCHA 検証、10 秒~24 時間のブロックが含まれます。
プラン別の提供状況
項目 | Entrance | [Pro] | [Enterprise] | |
レート制限ルール | 1 | 2 | 5 | 10 |
レート制限ルールの作成
次の例では、各設定フィールドを順に説明し、ビジネス要件に合わせてレート制限ルールを設定する方法を解説します。
シナリオ例:ホストが www.example.com または image.example.com であるリクエストが多数あり、同一のクライアント IP アドレスから 10 秒以内に 20 件のリクエストが到達します。この種類のリクエストに対して、スライダー CAPTCHA 検証を 5 分間実行します。スライダー CAPTCHA 検証に合格したリクエストのみが正常なレスポンスを受け取ります。それ以外のリクエストはすべてブロックされます。
操作手順
ESA コンソールで サイト管理 を選択し、サイト 列で対象サイトをクリックします。
ナビゲーションペインで を選択します。
WAF ページで レート制限ルール タブを選択し、ルールを追加 をクリックし、画面の指示に従ってルール情報を入力します。

ルール名 を入力します。
リクエストが以下のルールと一致する場合... を設定し、ルール式に一致するユーザーリクエストをフィルタリングします。リクエストの一致フィールドについては、「一致フィールド」をご参照ください。この例では、一致タイプフィールドで [Hostname] を選択し、一致演算子フィールドで [is in] を選択して、一致値フィールドに
www.example.comとimage.example.comを入力します。キャッシュリソースに適用 を設定します。レート制限により、同じ特徴を共有するクライアントからのリクエスト数が削減され、オリジンサーバーのリクエスト負荷が軽減されます。ただし、キャッシュにヒットしたリクエストは ESA によって直接応答され、オリジンサーバーには到達しません。キャッシュされたリクエストにレート制限を適用したくない場合は、このチェックボックスをオフにします。
以下の同様の特性を有します… を設定し、ルール式に一致するリクエストを再度フィルタリングします。
レートが以下の値を超えた場合… を設定し、統計期間内に、統計対象が条件に一致する最大回数を指定します。
アクションがレート制限を超えたリクエストに対してのみ実行に設定されている場合、アクション期間は統計期間と同じになります。
WAF は、リクエストへのレスポンスが終了した後にリクエストをカウントします。トラフィックに大容量ファイルのリクエストが多い場合、ダウンロード時間が長くなることで、実際にブロックが開始されるタイミングが遅延します。
次を実行: を設定し、リクエストレートが制限に達したときに実行するアクションを選択します。制限を超えたリクエストのみにアクションを適用することも、制限超過後に特性に一致するすべてのリクエストに適用することもできます。アクションの詳細については、「アクション」をご参照ください。
OK をクリックします。
想定される結果
ホストが www.example.com または image.example.com であるすべてのクライアントリクエストは、キャッシュにヒットしたリクエストとオリジンへのすべてのリクエストを含め、リクエストの送信元 IP アドレスごとにカウントされます。10 秒以内に 20 件を超えるリクエストが到達すると、これらすべてのリクエストに対して 5 分間スライダー CAPTCHA 検証が実行されます。
