レートベースのルールステートメント - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

レートベースのルールステートメント

レートベースのルールは、各発生元 IP アドレスからのリクエストのレートを追跡し、レートが制限を超えると、IP に対するルールアクションをトリガーします。制限は、5 分間あたりのリクエスト数として設定します。このタイプのルールを使用すると、過剰なリクエストを送信している IP アドレスからのリクエストを一時的にブロックできます。デフォルトでは、デフォルトでは、AWS WAFは、Web リクエストオリジンからの IP アドレスに基づいてリクエストを集約しますが、HTTP ヘッダーの IP アドレスを使用するようにルールを構成できます。X-Forwarded-Forなどの他の処理を実行します。

ルールのアクションがトリガーされると、AWS WAFは、リクエストレートが上限を下回るまで、IP アドレスからの追加リクエストにアクションを適用します。アクションの変更が有効になるには 1~2 分程度かかります。

AWS WAF でカウントするリクエストの範囲を絞り込むことができます。これを行うには、レートベースのステートメント内に別のスコープダウンステートメントをネストします。その後、AWS WAFは、スコープダウンステートメントに一致するリクエストのみをカウントします。スコープダウンステートメントの詳細については、「」を参照してください。スコープダウンステートメント

たとえば、最近確認された米国の攻撃者からのリクエストに基づいて、次のスコープダウンステートメントを使用してレートベースのルールを作成できます。

  • 次の 2 番目のレベルのネストされたステートメントを含む AND ルールステートメント。

    • 発生元が米国であるリクエストを指定する Geo 一致ステートメント。

    • User-Agent ヘッダーで文字列 BadBot を検索する文字列一致ステートメント。

また、レート制限を 1,000 に設定するとします。IP アドレスごとに、AWS WAF は両方の条件を満たすリクエストをカウントします。両方の条件を満たさないリクエストはカウントされません。IP アドレスのカウントが 5 分間で 1,000 リクエストを超えると、その IP アドレスに対するルールのアクションがトリガーされます。

別の例として、ウェブサイトのログインページへのリクエストを制限するとします。これには、以下のネストされた文字列一致ステートメントを使用してレートベースのルールを作成します。

  • [Request option (リクエストオプション)] は URI

  • [Match Type (一致タイプ)] はStarts with

  • [Strings to match (一致する文字列)] は login

このレートベースのルールをウェブ ACL に追加することで、残りのサイトに影響を与えることなく、ログインページへのリクエストを制限することができます。

ネスト可能でない— このステートメントタイプを他のステートメント内にネストすることはできません。このタイプはウェブ ACL に直接含めることができます。ルールグループに含めることはできません。

(任意)スコープダウンステートメント— このルールタイプは、レートベースのステートメントが追跡するリクエストの範囲を狭めるために、オプションのスコープダウンステートメントを使用します。詳細については、「スコープダウンステートメント」を参照してください。

WCU— ネストされたステートメントに 2 つ以上の WCU を使用します。

この文では、次のオプション設定を使用します。

  • (任意)転送された IP 設定— デフォルトでは、AWS WAFはWebリクエストオリジンのIPアドレスで集約されますが、転送されたIPをHTTPヘッダーで使用するようにルールを設定できますX-Forwarded-For代わりに.AWS WAFヘッダー内の最初の IP アドレスを使用します。この設定では、指定されたヘッダーに不正な形式の IP アドレスがある Web 要求に適用するフォールバック動作も指定します。フォールバック動作は、要求の一致結果を、一致または一致しないに設定します。詳細については、「転送された IP アドレス」を参照してください。

ステートメントの場所

  • ルールビルダーをウェブACL、コンソールでルール, 用タイプ] で、レートベースのルール

  • API ステートメントRateBasedStatement