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 autor da chamada. Quando seus serviços estão atrás de um
intermediário, como uma rede de fornecimento 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.
O recurso de IP do usuário permite configurar um campo alternativo, origin.user_ip, para
resolver de um cabeçalho que o provedor upstream preenche. 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. É possível configurar a opção userIpRequestHeaders[]
no campo advancedOptionsConfig da política de segurança ao usar
origin.user_ip.
Como funcionam os endereços IP dos usuários
Configure o Cloud Armor para extrair o endereço IP do usuário final de um cabeçalho da 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 da solicitação, que pode ser manipulado por um cliente não confiável, é 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 confiável. A segunda regra,
com uma prioridade menor, aplica a lógica pretendida usando o campo
origin.user_ip.
Por exemplo, é possível criar uma política com as duas regras a seguir:
- Regra 1:
evaluateThreatIntelligence('iplist-public-clouds', origin.ip) - Regra 2:
inIpRange(origin.user_ip, '9.9.9.0/24')