【目次】
1. はじめに
2024年3月8日に、一部のリージョナルリソースでも検査できるボディサイズの上限が引き上げられたと発表がありました。
AWS WAF now supports larger request body inspections for regional resources
2023年4月11日にはCloudFrontで類似のリリースが行われており、それに続く形でのアップデートのようです。
WCUの上限とAWS WAF×CloudFrontで検査できるボディサイズの引き上げ
本ブログ記事では、本アップデートについて確認していきます。
2. 検査可能なボディサイズの引き上げについて
今回のアップデートでは、CloudFrontと同様、リージョナルリソースでもデフォルトで検査可能なリクエストボディのサイズが最初の16KBまでに変更されました。
追加料金は発生しますが、最大まで最初の64KBまで引き上げが可能です。
なお、リージョナルリソースのうち以下の4つのみが今回の対象となっています。
- Amazon API Gateway
- Cognito user pools
- App Runner
- AWS Verified Access
リージョナルリソースには上記以外にApplication Load Balancers (ALB) と App Syncがありますが、この2つについては引き続き最初の8KBまで検査可能です。
まだ日本語訳が提供されていないようですが、詳細については以下もご参考ください。
Managing body inspection size limits
なお、AWS WAFではオーバーサイズウェブリクエストコンポーネントの処理(Oversize handling)という項目があり、検査できるリクエストのサイズを超えていた場合にどのような処理を行うか設定するものとなります。
例えば、今回検査可能なボディサイズが引き上げられたAPI Gatewayなどの場合、デフォルトではボディデータの最初の16KBまで検査されます。
仮にボディデータが16KBを超えていた場合、「16KBまで検査する(ルールにマッチしなければ後続のルールで検査を続けるか、Default Actionを実行する)」「サイズが16KBを超えているのでルールにマッチしたとみなす」「サイズが16KBを超えているのでマッチしないとみなし、このルールでは検査しない(後続のルールで検査を続けるか、Default Actionを実行する)」のいずれかから選択が可能です。
設定する内容によっては意図しない動作となってしまう場合がありますので、慎重に検討しましょう。
本項目については以下ブログ記事にてご紹介しておりますので、あわせてご参考ください。
AWS WAF で 全てのヘッダーを検査できるオプション及び検査制限を超えたリクエストへのオプション機能がリリースされました(3. 検査制限を超えたリクエストへのオプションとは)
3. ボディ検査サイズの変更方法
変更方法は、CloudFrontの時と同じようにAWS WAFコンソールの「Associated AWS resources」タブから実施します。
API Gatewayなど、今回アップデート対象のリソースに紐付けたWeb ACLで当該画面を表示すると、以下の通り「Web request body inspection」というセクションが表示されます。
ボディサイズを変更したい場合は、「Web request body inspection」にある「Edit」ボタンをクリックします。
CloudFrontの場合はラジオボタン形式での選択でしたが、リージョナルリソースの場合はプルダウン式のようです。
なお、上記の通りALBやApp Syncでは現在ボディサイズを引き上げることができず、画面でもそのように記載されます。
For Application Load Balancer and AppSync, the limit is currently fixed at 8 KB.
以下のスクリーンショットの通り、API GatewayとALBを同時にアタッチすることは可能でしたが、ALBについては引き上げのオプションは表示されない状態となります。
このオプションでAPI Gatewayの検査制限を引き上げたとしても、ALBへのリクエストもそれに追随するわけではない点についてはあらかじめ認識しておく必要があります。
4. WafCharmにおける対応
WafCharmをご利用のWeb ACLにおいても、本文検査サイズの制限(body inspection size limits)を変更いただくことは可能です。
なお、WafCharmでは現在CloudFront、ALB、API Gatewayのみに対応しております。
5. おわりに
これまで検査可能なボディサイズは最初の8KBまでという制限があり、ボディデータの大きさによっては検知したい内容が含まれていても、検知できない場合がありました。
CloudFrontに続いてリージョナルリソースでも拡張されたことで、他のリソースでもセキュリティの強化が期待できます。
ただし、ALBなど一部のリソースではまだ最初の8KBまでという制限がありますので、こちらも近い将来引き上げられることを期待したいと思います。