AWS WAF ラベル一致の例
このセクションは、ラベル一致ルールステートメントの一致の指定の例を示します。
注記
これらの JSON リストは、ラベル一致指定を使用してウェブ ACL にルールを追加し、ルールを編集して Rule JSON エディタに切り替えることでコンソールで作成されました。API またはコマンドラインインターフェイスを通じて、ルールグループまたはウェブ ACL の JSON を取得することもできます。
ローカルラベルと照合する
次の JSON リストは、このルールと同じコンテキストで、ウェブリクエストにローカルに追加されたラベルのラベル一致ステートメントを示しています。
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }
アカウント 111122223333 でこの一致ステートメントを使用する場合、ウェブ ACL testWebACL
のために定義するルールで、次のラベルと照合します。
awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
awswaf:111122223333:webacl:testWebACL:testNS1:testNS2:header:encoding:utf8
ラベル文字列が完全に一致しないため、次のラベルには一致しません。
awswaf:111122223333:webacl:testWebACL:header:encoding2:utf8
コンテキストが同じではないため、次のラベルには一致せず、したがってプレフィックスは一致しません。これは、ルールが定義されているウェブ ACL testWebACL
にルールグループ productionRules
を追加した場合であっても当てはまります。
awswaf:111122223333:rulegroup:productionRules:header:encoding:utf8
別のコンテキストのラベルと照合する
次の JSON リストは、ユーザーが作成したルールグループ内のルールのラベルと照合するラベル一致ルールを示しています。名前が挙げられるルールグループに属さないウェブ ACL で実行されているすべてのルールの指定では、プレフィックスが必要です。このラベル指定の例では、正確なラベルのみと一致します。
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "awswaf:111122223333:rulegroup:testRules:header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }
マネージドルールグループラベルと照合する
これは、一致ルールのコンテキストとは別のコンテキストからのラベルとの一致の特殊なケースです。次の JSON リストは、マネージドルールグループラベルのラベル一致ステートメントを示しています。これは、ラベル一致ステートメントのキー設定で指定された正確なラベルのみと一致します。
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "awswaf:managed:aws:managed-rule-set:header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }
ローカル名前空間と照合する
次の JSON リストは、ローカル名前空間のラベル一致ステートメントを示しています。
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "NAMESPACE", Key: "header:encoding:" } }, Labels: [ ...generate_more_labels... ], Action: { Block: {} } }
ローカル Label
一致と同様に、アカウント 111122223333 でこのステートメントを使用する場合、ウェブ ACL testWebACL
のために定義するルールで、次のラベルと照合します。
awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
アカウントが同じではないため、次のラベルには一致せず、したがってプレフィックスは一致しません。
awswaf:444455556666:webacl:testWebACL:header:encoding:utf8
プレフィックスは、次のようなマネージドルールグループによって適用されるラベルにも一致しません。
awswaf:managed:aws:managed-rule-set:header:encoding:utf8
マネージドルールグループ名前空間と照合する
次の JSON リストは、マネージドルールグループ名前空間のラベル一致ステートメントを示しています。所有しているルールグループの場合、ルールのコンテキスト外にある名前空間と照合するために、プレフィックスを指定する必要もあります。
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "NAMESPACE", Key: "awswaf:managed:aws:managed-rule-set:header:" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }
この指定は、次のサンプルラベルと照合します。
awswaf:managed:aws:managed-rule-set:header:encoding:utf8
awswaf:managed:aws:managed-rule-set:header:encoding:unicode
次のラベルとは一致しません。
awswaf:managed:aws:managed-rule-set:query:badstring