AWS WAF の特定のリクエストパラメータまたは URI にレート制限を適用する方法を教えてください。

所要時間2分
0

AWS WAF の特定のリクエストパラメータまたは URI にレート制限を適用する方法を教えてください。

簡単な説明

AWS WAF では、送信元 IP アドレスごとにリクエストのレートを追跡するレートベースのルールがあります。このルールでは、レートが 5 分以内に指定された制限値を超えた IP に対して、ルールアクションを開始します。

レートベースのルールを使用して、過剰なリクエストを送信している IP アドレスからのリクエストを一時的にブロックできます。AWS WAF ではデフォルトで、ウェブリクエストオリジンからの IP アドレスに基づいてリクエストを集約します。ただし、この代わりに X-Forwarded-For などの HTTP ヘッダーの IP アドレスを使用するようにルールを設定することができます。

これらのレートベースのルールステートメントでは、スコープダウンステートメントの一部として条件を定義することもできます。条件を定義して、スコープダウンステートメントに一致するリクエストのみが、そのルールによる評価の対象となるようにすることができます。

注意: AWS WAF コンソールには、レートベースのルールの「スコープダウンステートメント」のオプションはありません。[ルールステートメントの条件に一致するリクエストのみを対象にする] オプションを選択すると、スコープダウンステートメントと同等のものを作成します。

次の解決策では、特定のパラメータでレートベースのルールをカスタマイズできる 2 つのシナリオを考慮します。

解決方法

シナリオ 1: 特定の URI にレート制限を追加する

注意: 任意のリクエストパラメータを指定することができます。

  1. AWS WAF コンソールを開きます。
  2. [Web ACLs] を選択します。
  3. Web ACL を選択し、[ルール] タブを選択します。
  4. [ルールの追加] を選択します。
  5. [独自のルールとルールグループを追加] を選択します。
  6. [ルールタイプ] で [ルールビルダー] を選択します。
  7. 名前を入力し、[レートベースのルール] を選択します。
  8. リクエストレート詳細」に次のパラメータを入力します:
    レート制限: 100 から 20,000,000 の数値を入力します。これは、すべての IP に対し 5 分間に許可されるリクエストの最大数です。
    レート制限に使用する IP アドレス: クライアント IP フィールドに基づいてレートを制限する場合は、[送信元 IP アドレス] を選択します。または、ヘッダーの IP アドレスに基づいてレートを制限する場合、[ヘッダーの IP アドレス] を選択します。例えば、X-Forwarder-for です。
    レート制限に対してリクエストをカウントする基準: [ルールステートメントの条件に一致するリクエストのみを対象にする] を選択します。
  9. [リクエストが次の場合] ドロップダウンリストから、[ステートメントに一致] を選択します。指定する条件が複数ある場合は、ユースケースに応じてこの選択を変更できます。
  10. [ステートメント] 詳細セクションで次のフィールドに入力します:
    注意: この例では、レート制限は URI パス「/admin」です。ユースケースに基づいて詳細を変更することができます。
    [検査]: URI path
    [一致タイプ]: Contains string
    [照合する文字列]: /admin
    [テキスト変換]: なし
  11. [アクション] セクションで、[ブロック] を選択します。
  12. [ルールの追加] を選択します。[ユースケースに応じた正しい優先順位でルールを設定] に移動し、[保存] を選択します。

シナリオ 2: 選択した内部 IP をレート制限ルールから除外する

このシナリオでは、すべての内部 IP を含む IP セットを作成します。続いて、スコープダウンステートメントでこの IP セットを除外します。

IP セットをレートベースルールから除外するには、次の手順を実行します:

  1. AWS WAF コンソールを開きます。
  2. [Web ACLs] を選択します。
  3. Web ACL を選択し、[ルール] タブを選択します。
  4. [ルールの追加] を選択します。
  5. [独自のルールとルールグループを追加] を選択します。
  6. [ルールタイプ] で [ルールビルダー] を選択します。
  7. 名前を入力し、[タイプ] として[レートベースのルール]を選択します。
  8. リクエストレート詳細」に次のパラメータを入力します:
    レート制限: 100 から 20,000,000 の数値を入力します。これは、すべての IP に対し 5 分間に許可されるリクエストの最大数です。
    レート制限に使用する IP アドレス: クライアント IP フィールドに基づいてレート制限を行う場合は [送信元 IP アドレス] を選択します。または、ヘッダーの IP アドレスに基づいてレート制限を行う場合は、[ヘッダーの IP アドレス] を選択します。例えば、X-Forwarder-for です。
    レート制限に対してリクエストをカウントする基準: [ルールステートメントの条件に一致するリクエストのみを対象にする] を選択します。
  9. [リクエストが次の場合] ドロップダウンリストから、[ステートメントに一致しない] を選択します。
  10. [ステートメント] 詳細セクションで次のフィールドに入力します:
    [Inspect]: 内 IP アドレスから発信されます。
    [IP セット]: ドロップダウンリストから IP セットを選択します。
    発信元アドレスとして使用する IP アドレス: クライアント IP フィールドに基づいてレート制限が必要な場合は、[送信元 IP アドレス] を選択します。または、ヘッダーの IP アドレスに基づいてレート制限を行う場合は、[ヘッダーの IP アドレス] を選択します。例えば、X-Forwarder-for です。
  11. [アクション] セクションで、[ブロック] を選択します。
  12. [ルールの追加] を選択します。[ユースケースに応じた正しい優先順位でルールを設定] に移動し、その後、[保存] を選択します。

AWS公式
AWS公式更新しました 2年前
コメントはありません