【目次】

  1. 1. はじめに
  2. 2. ALBに新しいWeb ACLを紐づける方法
  3. 3. ALBに既存のWeb ACLを適用したい場合
  4. 4. Web ACLの解除について
  5. 5. WafCharm との併用について
  6. 6. おわりに

1. はじめに

2024年2月6日に、ALBのコンソール上でWeb ACLの設定・適用ができるようになりました。

昨年CloudFrontでも類似の機能がリリースされましたが、今回はALBでも作成時に簡単にWeb ACLを適用できるようになりました。

AWS Application Load Balancer announces one-click WAF integrations

2. ALBに新しいWeb ACLを紐づける方法

ALBを作成する画面を開くと、[Optimize with service integrations] 以下に [AWS Web Application Firewall (WAF)] というセクションが表示されます。

[Include WAF security protections behind the load balancer] にチェックを入れると、Web ACLの新規作成あるいは既存のWeb ACLの紐付けが可能となります。
新規作成をしたい場合は、[Auto-create pre-defined web ACL] のままにします。

Rule actionの部分は、Web ACLに自動で投入されるAWSのマネージドルールのアクションをBlock/Countのどちらにするか選択する項目となります。

ここでBlockを選択するとルールアクションがBlockで投入されるため、ルールにマッチするリクエストは即座にBlockされます。
もし、先にルールの動作状況を確認したいという場合にはここではCountを選択する方が良いでしょう。

すべての項目を選択し、ALBを作成すると以下のようにWeb ACLとの紐付けが完了するまで2〜3分かかるというメッセージが表示されます。
記載の通り、作成までの間に当該画面から遷移した場合や閉じてしまった場合、紐づけに失敗しますのでご注意ください。

ALBおよびWeb ACLの作成が完了すると、Integrationタブの下にある「AWS Web Application Firewall (WAF)」のセクションでWeb ACLへのリンクを確認できます。

なお、何らかの理由により紐づけに失敗してしまった場合でも、Integrationタブにて「Retry association」をクリックすると紐づけのリトライが可能です。
また、Web ACL自体は比較的早いタイミングで作成自体は成功しているようですので、AWS WAFコンソールから手動で紐づけることも可能でした。

Web ACLの名前をクリックすると、Web ACL画面が開きます。
Web ACLに自動的に適用されるルールは、AWSが提供するマネージドルールのうち、以下の3つです。
詳細については、リンク先のAWS公式ドキュメントをご参照ください。

Web ACL作成時のルールアクションにCountを選択していた場合、Actionは「Override rule group action to count」として登録されます。

動作確認後、ルールアクションをBLOCKにしたい場合は対象のルールを選択し、EditしてからOverrideを解除します。

3. ALBに既存のWeb ACLを適用したい場合

既存のWeb ACLがある場合、そちらを選択することも可能です。

Web ACL以下のドロップダウンメニューを使用し、作成済みのWeb ACLを選択します。

Web ACLには複数のリソースを紐づけることが可能ですので、既存のWeb ACLを選択した場合でも、他のリソースとの紐づきが勝手に外れてしまうことはありません。

Associated AWS resources以下に表示されるリソースが増える形となります。

また、既存のWeb ACLへの紐づけを行う形となりますので、自動的にAWSマネージドルールが追加されるということもありません。

4. Web ACLの解除について

CloudFrontとは異なり、ALBのコンソールではWeb ACLの解除はできません。

ALBに紐づけるWeb ACLの変更や解除を実施したい場合は、引き続きAWS WAFコンソールのWeb ACL画面にある「Associated AWS resources」から行う必要があります。

5. WafCharm との併用について

WafCharmについては、ALBのコンソールからWeb ACLを新規作成する方法、あるいはWeb ACLを先に作成してから紐づける方法のどちらでもご利用いただけます。

1つ目の「ALBに新しいWeb ACLを紐づける方法」の場合、上記の通りあらかじめAWSが提供するマネージドルールが投入されますので、それに追加してWafCharmルールが適用される形となります。

使用できるWCUの枠が5000になっておりますので、WafCharmルールの適用は可能ですが、使用WCUが1500を超える可能性があります。
AWS WAFの仕様により、1500WCUを超えて使用している場合にはリクエスト数等に応じて追加費用が発生する場合がありますので、もし1500WCU以内に収めたいといった場合にはAWSのマネージドルールを削除してからWafCharmの適用をお願いいたします。

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

先にWeb ACLを作成してからALBに紐づける方法の場合には、AWSが提供するマネージドルールが自動的に投入されることはありませんので、上記のような影響はございません。
また、WafCharmルールを適用するタイミングは任意でお選びいただけます。

6. おわりに

昨年発表されたCloudFrontコンソールでの設定に引き続き、ALBでも作成時にWeb ACLを作成・紐づけられるようになりました。

ただし、どちらの場合もWeb ACL名は自動で決まるようになっており、わかりやすい名前をつけたい場合などには柔軟な設定は引き続きできませんので、状況に応じてAWS WAFコンソールから作成した方が良い場合もあるかと思います。