概要
AWS WAFを設定する機会が多かったのですが、WCUを制限緩和してもらった際の記録です。
内容
AWSリソースの上限値
AWSでは、基本的にリソースの使用数などのデフォルト制限値があり
例えばよくあるものとして、以下のようなものが挙げられます。
- リージョン毎の、VPC数 5つまで
- リージョン毎の、NAT Gatewayの数 10まで
- リージョン毎の、EIPの数 5つまで
これらの値は、マネジメントコンソールのService Quotasから現状確認ができます。
上限を変更してもらうときは、「クォータの引き上げをリクエスト」あるいはAWSサポートに依頼します。
ただしどこまでも制限緩和できるものではなく、ハード的な制限もあるので限界数があります。
WAFの場合
WAFでは、要件によっては沢山のブロックルールを追加することがあります。
ルールにはWCU = WebACL容量ユニット という、ルール毎に決められた値が存在します。
例えば、WebACLには無料の各種AWSマネージドルールがあるためフル活用して
以下のようなものを適用してみます。
Admin protection(ルール名):100(WCU)
Anonymous IP list:50
Known bad inputs:200
Linux operating system:200
PHP application:100
すると、WCUは650となり、デフォルト制限である1500の半分程度を使用した状態になります。
次に、有償ルールを使用してさらに最新の傾向を追えるようにします。
OWASP Top 10 Rule Set:1400 (Cloudbric社の例)
ここで合計で2050となり、デフォルト値では適用できなくなります。
AWSサポートに依頼
先日、こういったパターンでAWSサポートで依頼する必要がありました。
どうやら、1500-2500までは対応いただけるのですが
2500がハードリミットがあり、それ以上はできないとの回答でした。
できる対策
WAFのルールは魅力的なルールも多いです。
しかし、特にマネージドルールと併用している場合は対応範囲が重複していることが多かったりします。
例えば、OWASP Top10系のSQL Injection対応がある場合ですが
AWSマネージドルール側で同じルール(SQL database)は必要ないと判断できます。
この辺りは、有償ルールをサブスクリプションした際にも、詳細ルールを個別でBlock設定できるため判断可能です。
料金の注意点
WAFの料金はこちらで、例えばバージニアリージョンでは
Web ACL 5.00USD、月あたり (時間で案分)
ルール 1.00USD、月あたり (時間で案分)
リクエスト 100 万リクエストあたり0.60USD
+インテリジェントな脅威の軽減 といった形です。 ※他に無料利用枠もあります。
注意点として、リクエスト料金単価はWCUをあげた場合以下のように変動します。(2022/11時点)
0-1500WCUの場合:100万リクエストあたり$0.60
1500-2000WCUの場合:100万リクエストあたり$0.80
2000-2500WCUの場合:100万リクエストあたり$1.00
大量にアクセスを捌く受けるサービスの場合は、案外料金がかかる場合があるので見積もりの際は注意してください。
まとめ
今回はWCUについて忘れないように記載しました。
他のリソースの場合も同じですが、WCU緩和依頼の際はあらかじめWebACLを作っておき
そのARNも先に共有すると、よりスムーズに対応いただけます。
また、こういった申請は時間がかかることもあるため、開発段階で早めの時期に済ませましょう。