AWS WAFとは
ウェブアプリケーションファイアウォールサービスです。
機能
- 悪意のあるリクエストをブロックする。
- カスタムルールに基づいたWebトラフィックをフィルタする。
- リクエストに対してのモニタリング機能を提供する。
コンポーネント
Web ACL
- Web ACLはルールを入れる設定の単位。
- ルール内のステートメントにより、リクエストを検査するための条件が定義され、アクションによって条件に一致したリクエストの処理(Allow/Block/Count)が行われる。
- Web ACL内のルールは優先度を指定可能であり、どのルールにも一致しない場合は、デフォルトActionが適用される。
- 1つのWeb ACLにつき、WCUは5000まで。
ルールステートメント
- 一致ステートメント:ウェブリクエストまたはその送信元を、指定された条件と比較する。
- 論理ステートメント:AND、NOT、ORを指定可能。
- 複雑なステートメント:レートベース、ルールグループ
レートベース
- 5 分間あたりの同一IPアドレスからのリクエスト数が設定された閾値を超過したら、Block/Countする。
- ルール作成時にデフォルトの
Regular rule
からRate-based Rule
へ選択することで利用可能。
ルールグループ
- 複数のルールを組み合わせたルールグループを自分で作ることが可能。
- ルールグループ作成時にWCUの値を設定する必要がある。(1回設定したら変更できない。)
マネージドルール
AWSマネージドルール
- AWSが提供するビルトインのルールセット
JSON 解析および検査
[2021/02/12]AWS WAF が JSON 解析および検査のサポートを追加
リクエストbodyの JSON コンテンツを解析出来るようになりました。
WAFのルールを設定することで、特定のキー、値を検査し、有効なjson構文になっているかをチェックして、APIを保護することができます。
有効にするには、ルールステートメントを定義するときに、JSON 本文として一致するフィールドを設定します。
JSON Pointer 構文を使用して、検査の特定のキーまたは値を選択するか、JSON 内のすべてのキーと値のペアを検査します。