Visão geral dos endereços IP dos usuários

As regras de política de segurança do Google Cloud Armor que filtram com base em um endereço IP normalmente usam o IP do cliente do chamador. Quando seus serviços estão por trás de um intermediário, como uma rede de entrega de conteúdo (CDN) de terceiros, o IP do cliente no campo origin.ip é o endereço IP do último intermediário, não do cliente original.

Com o recurso de IP do usuário, é possível configurar um campo alternativo, origin.user_ip, para resolver um cabeçalho preenchido pelo provedor upstream. Em seguida, use o campo origin.user_ip nas regras da política de segurança para especificar o endereço IP usado nesses recursos. Você pode configurar a opção userIpRequestHeaders[] no campo advancedOptionsConfig da política de segurança ao usar origin.user_ip.

Como os endereços IP dos usuários funcionam

Configure o Cloud Armor para extrair o endereço IP do usuário final de um cabeçalho de solicitação específico. Esse valor preenche o campo origin.user_ip, que pode ser usado nas regras da política de segurança.

Se os cabeçalhos especificados em userIpRequestHeaders[] não existirem ou se os valores deles não forem endereços IP válidos, o Cloud Armor vai usar o endereço IP do cliente (origin.ip). O exemplo a seguir mostra uma comparação direta para o caso padrão.

origin.ip != origin.user_ip

Os exemplos a seguir mostram como usar origin.user_ip na linguagem de regras, com o Google Threat Intelligence e em grupos de endereços.

inIpRange

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

Para mais informações sobre como usar inIpRange com origin.user_ip, consulte Atributos.

Google Threat Intelligence

evaluateThreatIntelligence('iplist-known-malicious-ips', origin.user_ip)

Para mais informações, consulte Aplicar o Google Threat Intelligence.

Grupos de endereços

evaluateAddressGroup('example-address-group', origin.user_ip)

Para mais informações, consulte Configurar grupos de endereços.

Grupos de endereços com escopo de organização

evaluateOrganizationAddressGroup('example-org-address-group', origin.user_ip)

Para mais informações, consulte Usar grupos de endereços com escopo de organização.

Práticas recomendadas

Como origin.user_ip é resolvido de um cabeçalho de solicitação, que um cliente não confiável pode manipular, é necessário validar se o tráfego se origina de uma fonte upstream confiável.

Para validar a origem upstream, crie uma política de segurança com pelo menos duas regras. A primeira regra, com uma prioridade mais alta, verifica se o IP do cliente imediato (origin.ip) pertence ao seu provedor upstream de confiança. A segunda regra, com uma prioridade menor, aplica a lógica pretendida usando o campo origin.user_ip.

Por exemplo, você pode criar uma política com estas duas regras:

  • Regra 1: evaluateThreatIntelligence('iplist-public-clouds', origin.ip)
  • Regra 2: inIpRange(origin.user_ip, '9.9.9.0/24')

A seguir