今回は2015年10月にリリースとなったAWS WAFを弄ってみたいと思います。
WAFって何?
WAFとはWeb Application Firewallのことです。
一般的なファイアウォールがIPアドレスやポートに対して制御を行うのに対し、WAFではSQLインジェクション攻撃などの、構築したWEBアプリケーションに対しての攻撃から防御する役割を担っています。
AWS WAFの特徴
AWS WAFは前回紹介したCloudFrontと組み合わせて利用します。逆に言えばCloudFrontが設定されていないとAWS WAFを使用することができません。
AWS WAFで指定できる条件は以下の3つです。
- IPアドレスが一致した場合の制御
- 文字列が一致した場合の制御
- SQLインジェクション対応
また
実際には上記に加えてCloudFrontの料金も必要になります。
AWS WAFを設定する
では実際にAWS WAFを使ってみましょう。
まずはAWS WAFへアクセスします。
設定目標
今回は特定のIPアドレスから「test」の文字列が含まれるWebページへのアクセスを遮断できるかを確認したいと思います。
設定の流れ
次画面ではAWS WAFの概要が書かれています。
英語ですが大体以下のような流れが説明されています。
- 条件(Conditions)を作成
- ルールを作成(条件を組み合わせ、拒否するのか許可するのか)
- Web ACLを作成(複数のルールを組み合わせてグループ化する)
この画面で設定する項目はありませんので、右下のNextボタンを押して進みます。
Web ACL名の設定
作成するWeb ACLの名前を設定します。CloudWatch metric nameはCloudWatchを使用してグラフ化する際に必要なメトリックの名前です。
条件を作成
まずは条件(Conditions)の作成です。
ここではIPアドレス、文字列、SQLインジェクションに対して条件を設定します。