本記事ではAWS環境におけるWAFを(Application Load Balancer)に設定する手順について紹介していきます。
WAFとは?
WAFとはWeb Application Firewallの略称です。Firewallを書かれている通り、ウェブアプリケーションの脆弱性を悪用した攻撃からサイトを保護してくれるファイアウォールです。WAFを導入するとWebサイトにアクセスする際に必ずWAFを経由することになるので、怪しいアクセスがあった場合、ブロックしてくれます。ブロックする攻撃パターンはセキュリティルールを設定することで作成できます。AWS WAFではSQL インジェクションやクロスサイトスクリプティングなど一般的な攻撃パターンのセキュリティルールが用意されているので、手軽に設定し導入することができます。
ALB(Application Load Balancer)とは
ALBは「Application Load Balancer」の略称でロードバランサー機能を持ちます。ロードバランサーを利用することで、WEBサイトにかかる負荷を分散するため、複数のサーバーに振り分けてトラフィックを安定的に処理します。可用性が高く安定してWEBサービスを運用していくためにはALBの導入は必須となります。また、ALBを導入するとWAFの設定が可能になるので、セキュリティ観点でも利点があります。
WAFの設定方法
ここからWAFの設定について順を追って説明していきます。本記事の構成は下記のようなイメージです。インターネットからアクセスしたらALBを通過します。その際にAWS WAFのセキュリティルールに基づいて不正なアクセスがあればブロックします。
![WAF構成図](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
ウェブ ACL を作成
コンソール画面がらAWS WAFページにアクセスします。アクセスするとサイドバーにWeb ACLsを押下します。
![ウェブ ACL を作成](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
リージョンの選択
画像の赤枠からリージョンを選択します。ALBを設置しているリージョンと合わせる必要があるので、今回、Asia Pacific(Tokyo)を選択します。その後、Create Web ACLを押下し詳細設定ページに遷移します。
![リージョンの選択](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
ALBとの関連付け
詳細画面で名前とリソースタイプを選択します。続いてAdd AWS resoucesを選択し、該当の
![ALBとの関連付け](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
![ALBの関連付け2](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
セキュリティルールの設定
Add rulesからセキュリティルールの設定をしていきます。AWS WAFでは独自のルールを設定せずとも一般的なアプリケーションの脆弱性や不要なトラフィックから保護するマネージドサービスが用意されています。今回は画像の通り設定しました。Capacityを1500以内に抑える必要があるため、用途に合わせてルールの設定を調整する必要があります。
![セキュリティルールの設定](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
セキュリティルール選択後はルールの優先度を設定します。優先度の高いものから順番の処理されていきます。
![セキュリティルールのプライオリティ](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
Amazon CloudWatchも合わせて作成します。デフォルトが画像の通りになるのでチャックを入れて次の設定に進みます。
![WAFのAmazon CloudWatch設定](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
最後に確認画面が表示されるので、内容を確認しCreate Web ACLを押下。
![WAF確認画面1](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
![WAF確認画面2](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)
You successfully created the web ACLが表示されれば、AWS WAFの設定完了です。
![You successfully created the web ACL](https://www.for-engineer.life/wp-content/themes/the-thor/img/dummy.gif)