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
- Configurar atributos de linguagem de regras personalizadas
- Aplicar o Google Threat Intelligence
- Configurar grupos de endereços
- Usar grupos de endereços com escopo de organização