【目次】

  1. 1. はじめに
  2. 2. WCU上限の引き上げについて
  3. 3. CloudFrontにアタッチしたWeb ACLで検査できるリクエストボディのサイズ
  4. 4. WafCharm での対応
  5. 5. おわりに

1. はじめに

今回は2023年4月11日に発表された AWS WAF の2つのアップデート情報を解説していきます。

1つ目は、Web ACL capacity units (WCU) の上限がデフォルトで5000WCUに引き上げられたというアップデートです。

WCUの上限はもともと1500WCUとなっており、それ以上のWCUを使用したい場合は上限引き上げのリクエストを行う必要がありました。

本アップデートにより、引き上げのリクエストなしに、1500WCU以上を利用できるようになりました。

AWS WAF increases web ACL capacity units limits

2つ目は、CloudFrontにWeb ACLをアタッチしている場合、リクエストボディの最初の16 KBまでが検査可能となり、かつ上限を64KBまで引き上げることができるようになったというものです。

これまでは、Web ACLをアタッチするリソース(ALBやCloudFrontなど)にかかわらず、リクエストボディは最初の8KBまでしか検査されませんでした。

今回のアップデートにより、CloudFrontであればデフォルトで最初の16KBまでリクエストボディを検査できるようになりました。

AWS WAF supports larger request body inspections for Amazon CloudFront distributions

2. WCU上限の引き上げについて

今回のアップデートにより、WCUの上限は自動的に5000まで引き上げられています。

AWSマネージメントコンソールにてAWS WAFをアクセスし、Web ACLs画面のRulesタブを開くと [Web ACL capacity units (WCUs) used by your rules] という箇所にて確認できます。

以下のスクリーンショットでは、1328/5000 WCUs と記載されており、上限が5000WCUに引き上げられていることがわかります。

ただし、画面上にも記載の通り1500WCU以上を使用している場合、利用状況に応じて追加で費用が発生する仕組みとなっています。

公式情報を確認すると、1500WCUを超えた場合、500WCUごとに$0.20/100万リクエストの費用が追加となるようです。
参考:AWS WAF Pricing

1500WCUまでは無料枠として活用できる範囲となります。

3. CloudFrontにアタッチしたWeb ACLで検査できるリクエストボディのサイズ

これまではWeb ACLをアタッチしているリソースにかかわらず、リクエストボディは最初の8KBまで検査可能でした。

今回のアップデートにより、CloudFrontにアタッチしているWeb ACLであれば、デフォルトでは最初の16KBまで検査できるようになっています。

また、Web ACLの設定を変更することで、最大で最初の64KBまでリクエストボディを検査できるようになります。

設定方法は、以下の通りです。

1. AWSマネージメントコンソールにログインし、AWS WAFを開く

2. 左のメニューからWeb ACLsをクリックする

3. リージョンをCloudFront (Global) に変更する
※CloudFrontのみを対象としたアップデートのため、他のWeb ACLでは対応できません。

4. 対象のWeb ACLの名前をクリックする

5. Associated AWS resources をクリックする

6. Web request body inspection セクションの横にあるEditボタンを押す

7. Body size limit を選択し、Save ボタンを押す

画面上にも記載の通り、デフォルトの16KBではないサイズに変更した場合には追加費用がかかります。

16KBを超えるリクエストボディを検査した際に、追加の16KBごとに$0.30/100万リクエストが加算されるようです。
参考:AWS WAF Pricing

4. WafCharm での対応

WafCharmでは、これまでAWS WAF側が提示する上限1500WCUをベースとしてルールの適用等を行っておりましたが、今後は5000WCUを上限として動作するよう変更いたします。

この変更により、Web ACLにすでに他のルールが適用されている場合でも、WafCharmルールを適用後の合計WCUが5000に収まる場合にはWafCharmルールの適用が行われます。

もし、すでにいくつかルールをWeb ACLに適用している場合には、WafCharm適用後に1500WCUを超えた状態になる場合がございますことあらかじめご了承ください。

1500WCUを超えてルールを適用したくないといった場合には、WafCharm設定前にWeb ACLに適用されているルールの調整をお願い致します。

※2023年4月時点では、WafCharmはルール適用時に1100WCUを使用します。ただし、AWS WAF側の影響により、共通するリソース分が調整される場合があります。適用時は1100WCU使用しますが、ルール適用後は使用WCUが若干減る場合があります。

CloudFrontでご利用のWeb ACLの場合に検査するボディサイズを調整できる機能については、問題なくご利用いただけるようWafCharm側を更新予定です。
なお、更新適用前にボディサイズのオプションをデフォルトの16KB以外にされますとルールの更新時等にデフォルトに戻ってしまう場合がありますので、検査するボディサイズを16KB以上にされたい場合は恐れ入りますがWafCharm側の更新をお待ちください。

5. おわりに

WCUの上限がデフォルトで引き上げられたことにより、AWSへの上限リクエストなしに適用できるルール数が増えました。また、CloudFrontの場合は検査できるリクエストボディのサイズが増えたことにより、セキュリティ面での強化が期待できるのではないでしょうか。

その反面、ルールが適用できるからとWCUを気にせず追加するとWAFの費用がいつの間にか加算されていたり、思いの外ボディサイズが大きいリクエストが多くコストがかさんでしまったりなど、費用に関わる予期せぬ事象が発生する可能性もあります。

ルールを追加する際や設定変更を行う際は、利用しているWCUの状況やリクエストボディのサイズも注意する必要があるかと思います。