🛡️

AWSのApplication Load BalancerとCloudFront+WAFの統合機能を使ってみた

2024/11/28に公開

はじめに

2024 年 11 月 15 日から、AWS の ALB と CloudFront の統合機能が利用可能になりました。
本記事で試してみたいと思います。

参考ドキュメントはこちら

東京リージョンで作ってみる

まずは、コンソールから作ってみます。
通常通りに ALB を作成し、基本設定とネットワーク設定を行います。
「サービスの統合で最適化」にて、「Amazon CloudFront + AWS Web Application Firewall (WAF)」というオプションがあるので、これを選択します。
image

続いて、「Create a security group to block inbound traffic that does not originate from CloudFront」もチェックを入れてから、ロードバランサーの作成を行います。
image

続くと...エラーが出てしまいました。

WAFInvalidParameterException: Error reason: The scope is not valid., field: SCOPE_VALUE, parameter: CLOUDFRONT

image

理由としては、us-east-1 (バージニア北部)での実施が必要だったためです。
どうやら東京リージョンの ALB を作成しつつ、バージニア北部で WAF を作成できないようです。
参考

バージニア北部で作ってみる

同様な手順で、バージニア北部で ALB を作成します。
5 秒ほどで作成が完了しました。
image

作成されたものを確認してみる

ALB

ALB は指定された通りに作られたため、特に問題はありません。
image

セキュリティグループ

「Create a security group to block inbound traffic that does not originate from CloudFront」のチェックを入れていたため、指定されたセキュリティグループと別途に、「CloudFrontSG - ALB 名」というセキュリティグループが追加されます。
image

グループの設定を覗てみると、CloudFront からのみアクセスができるようになっています。
image

ソース pl-3b927c52 (com.amazonaws.global.cloudfront.origin-facing)の正体は、VPC > マネージドプレフィックスリストにあるものです。
image

CloudFront

作られた CloudFront は、デフォルトでは標準ログと cookie の設定が無効な状態です。
image

セキュリティ設定にて、WAF のコア保護のみ有効化されています。
image

オリジン設定は一般的なものです。
証明書などは全く未設定なので、プロトコルは HTTP のみになっており、本番用するのに設定変更が必要なのでご注意ください。
image

ビヘイビアは、デフォルトで /*.js/*.css/*.jpg/*.png などの静的ファイルをキャッシュするようになっています。
image

エラーページ設定は特にされていません。

WAF

最後に作られた WAF を見てみましょう。
最低限なマネージドルールのみ有効化されています。
ログ設定もデフォルトで無効になっています。
image

片付け

ALB を作ると時になかなか便利ですが、削除する際にはどうなるか試してみたところ、
流石にそこまでやってくれないだろうと思いつつ、想定通りに ALB のみ削除され、他のリソースはそのまま残っていました。

おわりに

プロジェクトごとに ALB、CloudFront、WAF を構築するのはとても面倒で、
今回の統合機能があってとても嬉しいです。
しかし、想像するユースケースとしては、最速 MVP を作るためにささっと環境構築ぐらい、
ちゃんと運用していくためにはやはり細かい設定が必要になり、細かくコントロールするためにはこの統合機能はあまり活用されないのではないかと考えています。
特に IaC 運用が当たり前になっている時代なので、この統合機能を使うメリットはとても限定的ですね。

今後の改善やアップデートに期待しています。

株式会社 SIVA

Discussion