AWS WAF でのルールステートメントの使用
このセクションでは、ルールステートメントの仕組みについて説明します。
ルールステートメントは、AWS WAF にウェブリクエストを検査する方法を指示するルールの一部です。AWS WAF がウェブリクエストで検査基準を見つけることを、ウェブリクエストがステートメントに一致するという言い方をします。すべてのルールステートメントは、ステートメントのタイプに応じて、何をどのように検索するかを指定します。
AWS WAF のすべてのルールには、他のステートメントを含むことができる単一のトップレベルのルールステートメントがあります。ルールステートメントは非常にシンプルにすることができます。例えば、ウェブリクエストを検査するための送信国のセットを提供するステートメントを作成したり、ウェブ ACL でルールグループを参照するだけのルールステートメントを保持したりできます。ルールステートメントはまた、非常に複雑にすることもできます。例えば、他の多くのステートメントを論理 AND、OR、および NOT ステートメントと組み合わせたステートメントを作成できます。
ほとんどのルールでは、一致するリクエストにカスタム AWS WAF ラベルを追加できます。AWS マネージドルールのルールグループのルールは、一致するリクエストにラベルを追加します。ルールが追加するラベルは、ウェブ ACL の後で評価されるルール、および AWS WAF ログとメトリクスで評価されるルールへのリクエストに関する情報を提供します。ラベル付けの詳細については、AWS WAF でのウェブリクエストにおけるラベルの使用 と ラベル一致ルールステートメント を参照してください。
ルールステートメントのネスト
AWS WAF は、多くのルールステートメントのネストをサポートしていますが、すべてではありません。例えば、ルールグループステートメントを別のステートメント内にネストすることはできません。スコープダウンステートメントや論理ステートメントなど、一部のシナリオではネストを使用する必要があります。ルールステートメントのリストとそれに続くルールの詳細では、各カテゴリとルールのネスト機能と要件について説明されています。
コンソール内のルールのビジュアルエディタでは、ルールステートメントの 1 レベルのネストしかサポートされません。例えば、論理 AND または OR ルール内に多くのタイプのステートメントをネストできますが、他の AND または OR ルールをネストすることはできません。2 レベルのネストが必要になるからです。複数のレベルのネストを実装するには、コンソールの JSON ルールエディタまたは API を使用して、JSON でルール定義を指定します。