AWS WAFとは
AWS WAFとは、AWSが提供するフルマネージドなWebアプリケーションファイアウオールサービスです。 一般的なWAF製品との違いは、利用者が通信ルールやルールに対するアクションのみを意識すれば良い点です。 またルール自体もAWSやセキュリティベンダーが用意しているものを利用できます。ご利用にはAmazon CloudFrontやApplication Load Balancer(ALB)等を関連付ける必要があります。
AWS WAFにつきましては、弊社のブログ記事で紹介されておりますのでぜひご一読ください。
WAF ClassicとWAF v2の違い
WAF Classicが登場したのが2015年で、4年後の2019年にWAF v2が登場しました。
両者の主な違いは以下です。
●API
APIが異なり、コンソールも別になっております。
WAFのコンソールにアクセスするとデフォルトで v2 の画面となっており、[Switch to AWS WAF Classic] を押下するとWAF Classicの画面に遷移することができます。
●AWS提供のマネージドルール
従来はセキュリティベンダーから提供されていたマネージドルールに、v2からAWSが提供するルールも利用可能になりました。また複数のルールをまとめたルールグループも利用可能になりました。
AWS純正のルールのため、ルールおよびルールグループは無料で利用可能です。セキュリティベンダーが用意するルールも引き続きご利用可能です。
提供されているAWSのルールグループについて気になる方は下記AWS公式ドキュメントをご確認ください。
AWS マネージドルールのルールグループリスト
●キャパシティーユニット(WCU)
ルールを設定するときの考え方が変更になりました。
従来はルール数が10個までという制限がありましたが、v2ではキャパシティーユニットと呼ばれるルールの重みを設定する方法となりました。ルールの内容によってルール毎にキャパシティが算出され、1つのWebACLに1500 WCUまでルールを組み込むことが可能です。
AWS WAF のウェブ ACL 容量ユニット (WCU) を理解する
その他の変更点や詳細につきましてはAWSの公式ドキュメントをご確認ください。
AWS WAF に移行する理由は何ですか?
今後のスケジュール
タイトルにもある通り、WAF Classicは2025年9月30日をもって終了いたします。
2025 年 3 月以降 にはWAF ClassicのWeb ACLは新規作成ができなくなります。
そのため利用者は、期日までにAWS リソースをWAF ClassicからWAF v2に移行する必要があります。
移行について
AWSではClooudFormationテンプレートを利用した移行ウィザードが用意されております。
ここでは概要をご紹介させていただきます。詳細につきましてはAWS公式ブログおよびドキュメントがありますので気になる方はぜひご一読ください。
AWS WAF Classic リソースの AWS WAF への移行
AWS WAF Classic から新しい AWS WAF へのルールの移行
WAF Classicのコンソールにアクセスすると画面上部に表示されております。
移行ウィザードでは、WAF ClassicのWeb ACLを解析して、WAF v2と同等のWeb ACLを作成するCloudFormationテンプレートをS3バケット内に作成します。WAF v2でWeb ACLを再作成するには手動でCloudFormaionテンプレートをデプロイする必要があります。
移行ウィザードの作業はCloudFormationテンプレートを生成してS3バケットに格納するまでとなっております。そのため作成されたCloudFormationテンプレートのデプロイ(WAF v2のWeb ACL作成)および Web ACLリソース関連付けは手動で作業する必要があります。なお既存のWeb ACLやWeb ACLに関連付けられたリソースは削除または変更されません。コストを抑えるために、新しいWeb ACLにリソースの関連付けが完了し、利用がなくなった時点で削除を推奨いたします。
他にも注意事項がありますので移行の際にはAWS公式ドキュメントをご確認ください。
移行に関する注意事項と制限事項
ウェブ ACL の移行: その他の考慮事項
それでは実際にWAF v2へ移行してみたいと思います。弊社検証環境のため一部マスクをしております。
WAF v2への移行手順
①WAF Classic移⾏ウィザードを起動する
WAF & Shieldコンソールに遷移して、左ペインの”Switch to AWS WAF Classic”を押下します。
その後、画面上部のメッセージボックスの”migration wizard”を押下します。
②移⾏する Web ACL を選択する
移行する Web ACL に選択します。
③CloudFormation テンプレートが格納される S3 バケットを選択する
S3バケットを選択します。
バケットポリシーに関する設定はデフォルトのままでOKです。
※バケット名は“aws-waf-migration-“で始まる必要があります。
④CloudFormationテンプレートを作成する
構成を確認の上、[Start creating CloudFormation template]を選択するとCloudFormationテンプレートが作成されます。
⑤CloudFormationテンプレートを作成する
生成されたテンプレートを確認して、 引き続きv2としてデプロイするには[Create CloudFormation Stack]を押下します。
必要に応じてテンプレートを編集して変更 (ルールの追加など) を⾏うことができます。
⑥CloudFormationスタックを作成する
CloudFormationコンソールから作成されたテンプレートをデプロイします。
デフォルトで各パラメータが入力されているので、編集はせずにデプロイを実行します。
↓
⑦WAF v2のWebACLがデプロイされていることを確認する
WAFコンソールから期待通りのWeb ACLが作成されていることを確認します。
確認できたら、リソースに関連付けることを忘れずに実施してください。また利用しなくなったWeb ACLの削除も忘れずに実施してください。
まとめ
以上、AWS WAF Classicのサービス終了と移行方法についてお伝えしました。
期限が2025年9月30日ということで約1年ほどになっております。ご利用中の方はなるべく早くWAF v2への移行をご実施ください。基本的にはAWSが用意する移行ウィザードが作業してくれますが、Web ACLの作成やリソースとの関連付けなど一部ユーザー作業もありますのでお忘れないようご認識ください。
今後もAWSに関するメンテナンス情報についてお伝えいたします。