Exemplos de correspondência de rótulos do AWS WAF
Esta seção fornece exemplos de especificações de correspondência para a instrução da regra de correspondência de rótulos.
nota
Essas listas JSON foram criadas no console adicionando uma regra a uma web ACL com as especificações de correspondência de rótulos e, em seguida, editando a regra e mudando para o Editor JSON de regras. Você também pode obter o JSON para um grupo de regras ou web ACL por meio das APIs ou da interface da linha de comando.
Tópicos
Corresponda com um rótulo local
A lista JSON a seguir mostra uma instrução de correspondência de rótulo para um rótulo que foi adicionado à solicitação da web localmente, no mesmo contexto dessa regra.
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }
Se você usar essa instrução de correspondência na conta 111122223333, em uma regra que você define para testWebACL
da web ACL, ela corresponderá aos rótulos a seguir.
awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
awswaf:111122223333:webacl:testWebACL:testNS1:testNS2:header:encoding:utf8
Não corresponderia ao rótulo a seguir, porque a string do rótulo não é uma correspondência exata.
awswaf:111122223333:webacl:testWebACL:header:encoding2:utf8
Não corresponderia ao rótulo a seguir, porque o contexto não é o mesmo e, portanto, o prefixo não corresponde. Isso é verdade mesmo se você adicionou o productionRules
do grupo de regras ao testWebACL
da web ACL, onde a regra é definida.
awswaf:111122223333:rulegroup:productionRules:header:encoding:utf8
Correspondência com um rótulo de outro contexto
A lista JSON a seguir mostra uma regra de correspondência de rótulos que corresponde a um rótulo de uma regra dentro de um grupo de regras criado pelo usuário. O prefixo é obrigatório na especificação para todas as regras em execução na web ACL que não fazem parte do grupo de regras nomeado. Este exemplo de especificação de rótulo corresponde somente ao rótulo exato.
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "awswaf:111122223333:rulegroup:testRules:header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }
Correspondência com um rótulo de grupo de regras gerenciadas
Este é um caso especial de correspondência com um rótulo que é de outro contexto que não o da regra de correspondência. A lista JSON a seguir mostra uma instrução de correspondência de rótulo para um rótulo de grupo de regras gerenciadas. Isso corresponde somente ao rótulo exato especificado na configuração de chave da instrução de correspondência do rótulo.
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "LABEL", Key: "awswaf:managed:aws:managed-rule-set:header:encoding:utf8" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }
Correspondência com um namespace local
A lista JSON a seguir mostra uma instrução de correspondência de rótulo para um namespace local.
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "NAMESPACE", Key: "header:encoding:" } }, Labels: [ ...generate_more_labels... ], Action: { Block: {} } }
Semelhante à correspondência Label
local, se você usar essa instrução na conta 111122223333, em uma regra que você define para testWebACL
da web ACL, ela corresponderá ao rótulo a seguir.
awswaf:111122223333:webacl:testWebACL:header:encoding:utf8
Não corresponderia ao rótulo a seguir, porque a conta não é a mesma e, portanto, o prefixo não corresponde.
awswaf:444455556666:webacl:testWebACL:header:encoding:utf8
O prefixo também não corresponde a nenhum rótulo aplicado por grupos de regras gerenciadas, como o seguinte.
awswaf:managed:aws:managed-rule-set:header:encoding:utf8
Correspondência com um namespace de grupo de regras gerenciadas
A lista JSON a seguir mostra uma instrução de correspondência de rótulo para um namespace de grupo de regras gerenciadas. Para um grupo de regras que você possui, você também precisaria fornecer o prefixo para corresponder a um namespace que esteja fora do contexto da regra.
Rule: { Name: "match_rule", Statement: { LabelMatchStatement: { Scope: "NAMESPACE", Key: "awswaf:managed:aws:managed-rule-set:header:" } }, RuleLabels: [ ...generate_more_labels... ], Action: { Block: {} } }
Essa especificação corresponde aos rótulos de exemplo a seguir.
awswaf:managed:aws:managed-rule-set:header:encoding:utf8
awswaf:managed:aws:managed-rule-set:header:encoding:unicode
Não corresponde ao rótulo a seguir.
awswaf:managed:aws:managed-rule-set:query:badstring