AWS WAF(v2) の WCUsの上限緩和をサービスクォータで実施してみた

2020.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきです。

AWS WAF(V2)、デフォルトでは 1つの ACLあたり、1500 WCUs (Web ACL rule capacity Units) の上限が設定されているため、 マネージドルールとユーザが定義したルール、WCUsの合計値は1500以下で利用する必要があります。

サービスクォータ デフォルトのクォータ値
Maximum number of web ACL capacity units in a web ACL in WAF for regional 1500

今回、1500 WCUsを超える AWS WAF ACL を試す必要があり、 サービスクォータを利用した上限緩和申請を試みる機会がありましたので、紹介させていただきます。

AWS Managed Rules

2020年7月時点、AWS提供のマネージドルールは11個。すべて有効化した場合、WCUsの合計値は 1975 となります。

ルール名 Capacity
Admin protection 100
Amazon IP reputation list 25
Anonymous IP list 50
Core rule set 700
Known bad inputs 200
Linux operating system 200
PHP application 100
POSIX operating system 100
SQL database 200
Windows operating system 200
WordPress application 100
合計 1975

サービスクォータ

サービスクォータ のダッシュボードより、 「AWS サービス」として「AWS WAF V2」を指定します。

今回、ALB用のWAF設定を行うため、「Maximum number of web ACL capacity units in a web ACL in WAF for regional」を指定しました。

「クォータ引き上げリクエスト」を指定します。

変更を希望するクォータ値を指定します。

サポートケース

サービスクォータを申請したAWSアカウントに、WAFの上限緩和のサポートケースが起票されます。

サポートケースの内容は紹介できませんが、以下の質問に対し英文で回答します。

  • WCUsの追加が必要な理由、ユースケース
  • 1500WCUs 以上の設定で発生するリクエスト課金の追加コストの確認
  • 上限緩和を実施する WAF ACL の ARN

確認

WCUs 1500を超えるルールを設定した ACL が利用可能になりました。

費用

1500を超える WCUs のACLはリクエスト料金が上昇します。 リクエスト数の多い環境では、AWS料金が増加する可能性がある点にご注意ください。

ACLの合計WCUs per million requests processed
0 - 1500 $0.6
1501 - 2000 $0.8
2001 - 2500 $1.0

まとめ

WCUsの上限緩和にあたりユースケースの確認などが行われる事から、通常はデフォルト上限値の範囲での利用が無難と思われます。

複数のマネージドルールを組み合わせて利用する必要があり、標準の WCUs(1500) が不足する可能性がある場合、充分余裕をもったスケジュールでの上限緩和や動作検証を頂く事をおすすめします。