AWS WAF ラベル一致の例 - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

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