Configure atributos de idioma de regras personalizadas

Cada regra da política de segurança do Google Cloud Armor tem uma prioridade, uma condição de correspondência e uma ação. O Cloud Armor executa a ação da regra de prioridade mais elevada que corresponde a um pedido. As regras com uma prioridade inferior à da regra de correspondência de prioridade mais elevada não são avaliadas, mesmo que tenham as mesmas condições de correspondência.

Cada regra de política de segurança suporta dois tipos de condições de correspondência:

  • Uma condição de correspondência básica contém listas de endereços IP ou listas de intervalos de endereços IP. As condições de correspondência básicas são definidas através da flag --src-ip-ranges quando cria uma regra com a CLI Google Cloud.
  • Uma condição de correspondência avançada contém uma expressão com até cinco subexpressões que podem corresponder a uma variedade de atributos de um pedido recebido. As condições de correspondência avançadas são definidas através da flag --expression quando cria uma regra através da CLI do Google Cloud.

Esta página aborda as condições de correspondência avançadas e a linguagem de regras personalizadas do Cloud Armor que usa para escrever expressões nas condições de correspondência avançadas das regras da política de segurança. A linguagem das regras personalizadas do Cloud Armor é um subconjunto do Idioma de expressão comum (IEC). As expressões escritas na linguagem de regras personalizadas do Cloud Armor requerem dois componentes:

  • O atributo: os dados a inspecionar
  • A operação: como usar os dados

Por exemplo, a expressão seguinte usa os atributos origin.ip e 9.9.9.0/24 na operação inIpRange(). Neste caso, a expressão devolve verdadeiro se origin.ip estiver no intervalo de endereços IP 9.9.9.0/24.

inIpRange(origin.ip, '9.9.9.0/24')

Embora a expressão do exemplo anterior só corresponda ao endereço IP do cliente, quando usa a expressão do exemplo numa regra da política de segurança do Cloud Armor, a regra é considerada uma regra com condições de correspondência avançadas do ponto de vista da quota. Para mais informações, consulte as quotas e os limites do Cloud Armor.

Operações

A referência seguinte descreve os operadores que pode usar com atributos (representados por x, y e k) para definir expressões de regras.

Operações Expressões Descrição
Igualdade x == y Devolve true se x for igual a y.
Igualdade, literal de string x == "foo" Devolve true se x for igual à string literal constante fornecida.
Igualdade, literal de string não processada x == R"fo'o" Devolve true se x for igual ao literal de string não processada fornecido que não interpreta sequências de escape. Os literais de strings não processadas são úteis para expressar strings que, por si só, têm de usar carateres de sequência de escape.
NÃO lógico !x Devolve o valor true se o valor booleano x for falso ou devolve o valor false se o valor booleano x for verdadeiro.
Desigualdade x != y Devolve true se x não for igual a y.
Concatenação x + y Devolve a string concatenada