[アップデート] Application Load Balancer コンソールから CloudFront + WAF を統合出来るようになりました

[アップデート] Application Load Balancer コンソールから CloudFront + WAF を統合出来るようになりました

Clock Icon2024.11.16

いわさです。

今朝のアップデートで ALB が、WAF を有効化した CloudFront を統合出来るようになったとアナウンスがありました。

https://aws.amazon.com/about-aws/whats-new/2024/11/aws-application-load-balancer-cloudfront-integration-builtin-waf/

これまでも ALB のコンソールや CloudFront のコンソール上から、AWS WAF を有効化して推奨されるデフォルトルールで自動で関連づけまでやってくれる統合機能がありました。

https://dev.classmethod.jp/articles/application-load-balancer-one-click-waf-integrations/

https://dev.classmethod.jp/articles/cloudfront-security-recommendations/

従来 ALB の前段に WAF を有効化した CloudFront を作成しようとすると次の手順が必要でした。

  • ALB を作成
  • CloudFront を作成
  • CloudFront のカスタムオリジンに ALB を指定
  • CloudFront に AWS WAF を関連付け
  • 必要に応じて ALB 側は CloudFront からのアクセスのみを許可するように制限

今回のアップデートは、要は統合ボタンからのポチポチで上記を勝手にやってくれます。
こういった統合機能はデフォルト設定が期待値と異なる場合ももちろんあるとは思いますが、ササッと作りたい時などは非常に重宝しそうです。

実際に使ってみましたのでどういった設定がされるのかなどを紹介します。

ALB コンソールからの有効化

まず、ALB を新規作成する際にオプションでいくつかのサービス統合機能を使うことが出来るのですが、ここに新たに「Amazon CloudFront + AWS Web Application Firewall (WAF)」というものが追加されています。

7C359324-A375-4F9F-9118-D962DBF289EE.png

手順としてはここで有効化のチェックを ON にしていつもどおり ALB を作成するだけで OK です。
オプションで、セキュリティベストプラクティスというチェックボックスがありますが、こちらは ALB へのアクセスを CloudFront からのみにするための機能となっています。どういう挙動をするのかは後述します。ここでは有効化して進めますね。

3ED2DA08-B9FE-443F-98ED-0306AC89E159.png

次に作成された ALB を見てみます。
統合タブから有効化状況を確認することが出来ます。
対象のディストリビューションと AWS WAF、あるいは先程オプションで選択したセキュリティグループの状態です。

F59678CC-093E-4EFF-8658-692110B91246.png

また、デフォルトでは CloudFront にカスタムドメインや SSL 証明書の関連付けはされていません。
必要な場合はこの Manage ボタンから ACM で管理済みの証明書を選択することが出来ます。

D6063D45-E72F-484C-9A9F-2F2AA9D9698C.png

ALB のセキュリティグループを見てみると、CloudFront のマネージドプレフィックスリストからの HTTP を許可するインバウンドルールが存在していました。これが先程のオプションですね。

7E0C995E-6B9A-4676-8FE0-DD4F9F3B77DF.png

CloudFront マネージドプレフィックスリストがなんだという方は以下の記事を参考にしてください。

https://dev.classmethod.jp/articles/amazon-cloudfront-managed-prefix-list/

CloudFront ディストリビューション側も見てみましょう。
まず、AWS WAF が有効化されていることが確認出来ます。

FB77394B-A3B2-43D8-A722-EDF3637F860A.png

WebAC のルールとしては次の 3 つです。

  • AWS-AWSManagedRulesAmazonIpReputationList
  • AWS-AWSManagedRulesCommonRuleSet
  • AWS-AWSManagedRulesKnownBadInputsRuleSet

F0FD4CDF-BFC7-4BBC-B38B-9FDDE4F6B20B.png

こちらも以前のアップデートで CloudFront へ WAF を自動統合出来るようになったアップデートと同じものですね。機能やルールの内容などは以下の記事を参考にしてください。

https://dev.classmethod.jp/articles/amazon-cloudfront-aws-waf-one-click-update/

ディストリビューションのオリジンなどの設定はというと、カスタムオリジンとして ALB が指定されています。
なお、プロトコルはデフォルトで「HTTP のみ」が選択されていました。

C74B5C70-51CA-4968-8E84-AF740E2C1569.png

ビヘイビアとキャッシュポリシーはこんな感じです。デフォルトのやつですね。

88E0676A-4AF5-4ECF-90BC-211A7DBB6935.png

なお、ALB コンソールからディストリビューションの料金クラスや HTTP バージョンが指定出来ませんでしたが次のような形で設定されていました。必要に応じて設定変更すると良いですね。
ログ設定がいつも面倒なのでバケット作成から有効化まで、このあたりも今後自動化してもらいたいな。

85AD3712-1F7C-437E-8589-5655B27AFB8B.png

既存 ALB に対しても有効化が可能

今回のこの統合機能ですが、CloudFront を統合せずに作成した既存 ALB に対して後から有効化の設定が可能です。
統合タブから「Manage CloudFront + WAF Integration」を選択します。

484DC95A-5C59-4751-AA28-8777CBED3B84.png

あとは新規 ALB 作成時と同じようにチェックボックスを ON にしていくだけです。

02471363-D950-4A69-958E-07B15A426CC4.png

さいごに

本日は Application Load Balancer コンソールから CloudFront + WAF を統合出来るようになったので試してみました。

また出ましたねワンクリック統合機能。
確かにマネジメントコンソール上から CloudFront や AWS WAF を関連付けしようとするとあっちこっち行ったり来たりしなければいけないので、特に検証環境などをすぐに用意したい時は便利そうです。

ログ記録がオフになっていたり、CloudFront と ALB の間が HTTP だったり、CloudFront 制限の方法がマネージドプレフィックスリストのみだったりといくつかカスタマイズしたいところも出てきそうですが、すべて後から変更出来そうだったので、一旦はこのワンクリック機能で有効化して変更する形も良さそうですね。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.