適用対象: ✔️ Application Gateway V2
Application Gateway上のWeb Application Firewallのレート制限は、アプリケーションに向かう異常に高いトラフィックを検出・ブロックするのに役立ちます。 Application Gateway WAF v2でレート制限を用いることで、多くの種類のサービス拒否攻撃を緩和し、短時間で大量のリクエストを送信する誤設定のクライアントから守ったり、特定の地理圏からサイトへのトラフィックレートを制御したりできます。
レート制限ポリシー
ポリシー内でカスタムWAFルールを使ってレート制限を設定しましょう。
注
レート制限ルールは、 最新の WAF エンジンを実行している Web アプリケーション ファイアウォールでのみサポートされます。 最新のエンジンを使用していることを確認するには、デフォルトのルールセットとしてCRS 3.2を選択してください。 また、エアギャップ雲ではレートリミットルールはサポートされていません。
レート制限ルールを設定する際は、閾値を指定します:指定された期間内に許可されるリクエスト数です。 アプリケーションゲートウェイWAF v2のレートリミットは、スライディングウィンドウアルゴリズムを用いてトラフィックが閾値を超え、ドロップが必要かどうかを判断します。 ルールのしきい値を超過した最初のウィンドウでは、レート制限ルールに一致するトラフィックはドロップされます。 2 番目のウィンドウ以降は、設定されたウィンドウ内のしきい値までのトラフィックが許可され、スロットリング効果が生じます。
また、レート制限をいつアクティブにするかを WAF に指示する一致条件も指定する必要があります。 ポリシー内の異なる変数とパスに一致する複数のレート制限ルールを設定できます。
Application Gateway WAF v2では GroupByUserSessionも導入されており、設定が必要です。 GroupByUserSession は、一致するレート制限ルールで要求をグループ化してカウントする方法を指定します。
現在、次の 3 つの GroupByVariables を使用できます。
- ClientAddr – これはデフォルト設定であり、各レート制限のしきい値と軽減策がすべての一意の送信元 IP アドレスに独立して適用されることを意味します。
- ジオロケーション - トラフィックは、クライアント IP アドレスの Geo-Match に基づいて、地域別にグループ化されます。 レート制限ルールの場合、同じ地域からのトラフィックがグループ化されます。
- なし - すべてのトラフィックがグループ化され、レート制限ルールのしきい値に対してカウントされます。 しきい値を超えると、ルールに一致するすべてのトラフィックに対してアクションがトリガーされ、クライアントの IP アドレスまたは地域ごとに独立したカウンタは保持されません。 サインイン ページや疑わしい User-Agent のリストなど、特定の一致条件とともに None を使用してください。
- ClientAddrXFFHeader - 各レート制限の閾値と緩和策は、HTTPリクエストのX-Forwarded-For ヘッダーにあるIPアドレスに基づいて独立して適用されます
- GeoLocationXFFHeader - トラフィックは、HTTP 要求の X-Forwarded-For ヘッダーにある IP アドレスの Geo-Match に基づいて、地域別にグループ化されます。 レート制限ルールの場合、同じ地域からのトラフィックがグループ化されます。
レート制限の詳細
Web Application Firewallポリシーは、接続されている各エンドポイントごとに設定されたレート制限の閾値を独立してカウント・追跡します。 たとえば、5 つの異なるリスナーにアタッチされた 1 つの WAF ポリシーでは、リスナーごとに独立したカウンタとしきい値の適用が維持されます。
レート制限の閾値は必ずしも定義通りに強制されるわけではないので、アプリケーショントラフィックの細かい制御にレート制限は使わないでください。 代わりに、異常なトラフィック率を軽減し、アプリケーションの可用性を維持するために活用してください。
スライディング ウィンドウ アルゴリズムは、しきい値を超えた最初のウィンドウで一致するすべてのトラフィックをブロックし、その後のウィンドウでトラフィックをスロットルします。 GeoLocation または None を GroupByVariables として使用してワイドマッチング ルールを構成する場合は、しきい値を定義する場合は注意が必要です。 しきい値が正しく設定されていないと、一致するトラフィックが頻繁に短時間停止する可能性があります。
注
各アプリケーションゲートウェイv2インスタンスは独自のレート制限カウンタを維持します。 複数のインスタンスがアクティブの場合、着信リクエストを相互に分散させ、レート制限の閾値は各インスタンスに独立して適用されます。
例えば、クライアント1人のIPあたり1分間に400リクエストの閾値を考えてみましょう。 同じクライアントIPから270回および230回のリクエストを受け取った場合、どちらのインスタンスも閾値に達しません。 WAFは、合計リクエスト数が400を超えてもリクエストを許可しています。 したがって、複数のインスタンスがアクティブな場合、設定済みの閾値を厳格なゲートウェイ全体の制限として扱う必要はありません。