[アップデート] Application Load Balancer のコンソール上でもワンクリックで、AWS WAF を作成し適用出来るようになりました

2024.02.07

いわさです。

今朝、AWS Application Load Balancer と AWS WAF のワンクリック統合機能がアナウンスされました。

実は 1 年近く前に、既に CloudFront コンソール上では似たようなことが出来るようになっておりまして、CloudFront の作成のタイミングで「WAF を一緒に有効化する」みたいなオプションをポチっとしておくと、既定で定められたマネージドルールを使って AWS WAF の Web ACL を自動作成し、関連付けしてくれるようになっていました。

今回のアップデートはこれと同じようなことが Application Load Balancer でも出来るようになったというものです。

使い方

今回の機能が利用出来るのは ALB のみなので、ロードバランサータイプは Application Load Balancer を選択して作成を行います。

これちょっと私が記憶に無いのですが、サービスの統合で最適化自体は存在していましたっけ。
今まで私は ALB を作成した後に Web ACL 側から関連付けを行う方法を行っていたので、このあたりの記憶がちょっと曖昧です。
ただ、今回のアップデート機能はこちらから使うことができます。「ロードバランサーの背後に WAF セキュリティ保護を含める」を選択します。

そうすると、Web ACL を選択出来ようになるのですが、デフォルトでは「事前定義済みのウェブ ACL を自動作成」ということで新規で Web ACL を作成するオプションが選択されています。

なお、事前定義済みの Web ACL を作成する以外に、既に Web ACL が準備済みであれば既存の Web ACL をアタッチすることも可能です。

今回はこのまま事前定義済みの Web ACL を自動作成してみましょう。
ALB の作成が完了すると、統合タブから作成された Web ACL を確認することができます。
「CreatedByALB-XXXXX」という名称で自動作成されるようです。

気の所為かもしれませんが、ALB のコンソール一式新しくなってますかね?なんだかリッチになったような、なってないような。

なお、フェイルオープン設定に関しては特に指定するところはありませんでしたが、デフォルトで「オフ」で作成されます。オンで作成したい場合は ALB の作成後に属性変更が必要ですので覚えておきましょう。

作成された Web ACL を確認してみると次の 3 つのマネージドルールが自動で設定されていました。

この仕様は公式ドキュメントにも記述されていまして、デフォルトでこの 3 つが設定されます。

  • AWSManagedRulesAmazonIpReputationList
  • AWSManagedRulesCommonRuleSet
  • AWSManagedRulesKnownBadInputsRuleSet

参考:Application Load Balancers - Elastic Load Balancing

コアルールセットに Amazon 管理の脅威 IP リスト、あとは不正な入力管理グループは脆弱性を付くヘッダーやクエリ文字列をいくつかチェックするセットですね。少し前に話題になった Log4J の脆弱性のやつはこのマネージドルールに含まれています。

必要最低限のルールが設定されているという印象です。
バックエンドのアプリケーションにあわせて、例えば SQL database とか PHP Application とか、作成された Web ACL へルールを追加するのが良さそうですね。

既存 ALB に対しても設定可能

なお、新規 ALB 作成時のみではなく、Web ACL を未適用の既存 ALB に対してもこの機能を使ってデフォルトの Web ACL を自動作成して適用することができます。

統合タブから AWS WAF を開きます。

「WAF ウェブ ACL を関連付ける」ボタンを押すと次のようにダイアログが表示され、新規作成時と同じように Web ACL の関連付けが可能です。

さいごに

本日は Application Load Balancer のコンソール上でもワンクリックで、AWS WAF を作成し適用出来るようになったので確認してみました。

Web ACL の名称がデフォルトで設定され後から変更できないので、リソース名の管理をしっかり行っている環境だと適用しづらい気もしますが、Web ACL の関連付けの変更は後からでも可能なので、Web ACL の導入に慣れていない方はまずこの機能を使って始めてみるのも良いのではないでしょうか。
フェイルオープンは基本的にオフで良いと思ってますが、ブロックモードがデフォルトだったのでそこは少し注意というか認識しておいたほうが良さそうですね。