【目次】

  1. 1. はじめに
  2. 2. レートベースルールの変更点
  3. 3. レートベースルールの設定
  4. 4. WafCharmにおける対応
  5. 5. おわりに

1. はじめに

レートベースルールのレート制限(Rate limit)の最小値が10になりました。
AWS WAF enhances rate-based rules to support lower rate limits

3月ごろにはレートベースルールの期間(Evaluation window)の拡張がありましたが、それに続けて今回はレート制限の値を100より下の値にできるようになっています。

2. レートベースルールの変更点

これまではレート制限に指定できる最小値は100でしたが、このアップデートにより10以上の値を指定できるようになっています。

AWS WAF画面上の案内も、「Rate limit must be between 10 and 2,000,000,000.」という記載に更新されていました。

設定方法などに変更はなく、Rate limitの入力欄に10以上の数値を入力するだけで設定が可能です。

3. レートベースルールの設定

上記の通り、設定方法に変更はありません。

レート制限に最小値を指定した場合のルールは以下のようになります(期間を5分にした場合)。

{
  "Name": "rate-based-rule",
  "Priority": 1,
  "Statement": {
    "RateBasedStatement": {
      "Limit": 10,
      "EvaluationWindowSec": 300,
      "AggregateKeyType": "IP"
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "rate-based-rule"
  }
}

ルールもこれまでと変わりなく、Limitの箇所の数値が10から指定可能になっていました。

4. WafCharmにおける対応

2024年9月2日現在、WafCharmの方ではこちらのアップデートに追随できておらず、対応中となります。
お客様にてRate limitに100より小さい値を指定したレートベースルールを追加した場合、WafCharm側でエラーが発生する可能性があります。
ご不便をおかけし申し訳ありませんが、対応が完了次第ご案内致しますので今しばらくお待ちください。

WafCharmが本アップデートに追随いたしました。以下の対応が可能となっております。

  • お客様にてAWSマネージメントコンソールからRate limitに100より小さい値を指定したレートベースルールを追加する
  • WafCharmコンソールにてAdvanced Ruleポリシーのルール設定時にRate limitに10以上の値を指定する

なお、カスタマイズにてレートベースルールを適用された場合は、これまで通り指定したいRate limitの値をお知らせください。

5. おわりに

100/1分〜が最小の閾値でしたが、今後は10/1分〜が最小の閾値となります。

より柔軟に指定ができるようになった反面、100/5分〜という閾値でもリクエスト状況によっては正常なリクエストが検知されブロックされてしまうこともあるようでしたので、これを下回る閾値についてはCountなどで様子見をしてからブロックルールとして導入した方が良さそうです。

また、レートベースルールではスコープダウンステートメントを使用してレート制限を行うリクエストを絞り込むことも可能です。
比較的小さい閾値を用いる際には、あらかじめレート制限の対象としたいリクエストを絞り込んだ上で設定することも有用かと思います。