こんばんは。小寺です。
AWS WAFでレートベースのルール期間を選択できるようになりました。
https://aws.amazon.com/about-aws/whats-new/2024/03/aws-waf-rate-based-rules-configurable-time-windows/
AWS WAFのレートベースルールについて
AWS WAFでは、送信元 IPアドレスごとにリクエストのレートをモニタリングする「レートベース」のルールがあります。
レートベースのルールの目的としては、レートが 5 分以内に指定されたしきい値を超えた場合に、あらかじめ決めておいたアクションを実行することです。
同じ送信元のIPからどんどんアクセスがあればストップさせてしまうこともできます。
レートベースのルールが特定のウェブリクエストにルールアクション設定を適用するときの前提条件は以下の通りです。
・ウェブリクエストが、ルールのスコープダウンステートメントと一致している(定義されている場合)。
・ウェブリクエストは、現在リクエストカウントがルールの制限を超えている集約インスタンス
どんなルールが適用されるのか?
適用されるルールについても、どのようなものがあったのか振り返ってみます。
・Block
リクエストをブロックし、定義したカスタムブロック動作を適用します。
・Count
リクエストをカウントし、定義したカスタムヘッダーまたはラベルを適用して、リクエストのウェブAC 評価のみ行います。
このアクションはリクエストのレートを制限しません。
最初はCountモードで試される方も多いかと思います。
・CAPTCHA または Challenge
リクエストのトークンの状態に応じて、Count または Block のいずれかのようにリクエストを処理します。
有効なトークンを持つリクエストのレートを制限しません。有効なトークンがないリクエストのレートを制限します。
リクエストに有効期限が切れていない有効なトークンがない場合、このアクションはリクエストをブロックし、CAPTCHA パズルまたはブラウザのチャレンジをクライアントに返します。
エンドユーザーまたはクライアントブラウザが正常な応答の確認ができると、クライアントは有効なトークンを受け取り、元のリクエストが自動的に再送信されます。
アップデート内容
レートが 5 分以内にしきい値を超えた場合の動作については柔軟性がありましたが、レートベースのルールによるリクエスト集約の構成可能な評価時間枠をより柔軟に選べるようになっています。
時間枠はもともとの5分間に加えて、1 分、2 分、または 10 分の時間枠が選べるようになっています。
確認してみる
(1) AWS WAFコンソールから「ルールの追加] を選択します。[独自のルールとルールグループを追加] を選択します。
(2) [ルールタイプ] で [ルールビルダー] を選択します。
(3) ルール名を入力し、[タイプ] として[レートベースのルール]を選びます。 「Evaluation window」で5分以外に本アップデートである 1 分、2 分 、5分、10分を選ぶことができます。
アップデートのメリット
評価ウィンドウが短くなったことで、トラフィックの多いアプリケーションのスパイクを迅速に検出してブロックすることができるようになっていますね。5分固定がけして悪いということではないのですが、 1 分等で設定出来るようになったのでより柔軟にレートベースルールを導入しやすくなったと思います。
ここもシステムの特性に合わせて、トラフィックに応じてアクセス頻度の低いアプリケーションには長いウィンドウを選んだ方がいいですよね。