As regras da política de segurança do Google Cloud Armor que filtram com base num endereço IP usam normalmente o IP do cliente do autor da chamada. Quando os 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 e não o cliente original.
A funcionalidade de IP do utilizador permite-lhe configurar um campo alternativo, origin.user_ip, para resolver a partir de um cabeçalho que o fornecedor a montante preenche. Em seguida, pode usar o campo origin.user_ip nas regras da política de segurança para especificar o endereço IP usado nessas funcionalidades. Pode configurar a opção userIpRequestHeaders[] no campo advancedOptionsConfig da política de segurança quando usar origin.user_ip.
Como funcionam os endereços IP dos utilizadores
Configura o Cloud Armor para extrair o endereço IP do utilizador final de um cabeçalho de pedido específico. Este valor preenche o campo origin.user_ip, que pode usar nas regras da política de segurança.
Se os cabeçalhos especificados em userIpRequestHeaders[] não existirem ou se os respetivos valores não forem endereços IP válidos, o Cloud Armor reverte para o endereço IP do cliente (origin.ip). O exemplo seguinte mostra uma comparação direta para o caso predefinido.
origin.ip != origin.user_ip
Os exemplos seguintes mostram como usar origin.user_ip na linguagem de regras,
com a inteligência contra ameaças da Google e em grupos de endereços.
inIpRange
inIpRange(origin.user_ip, '9.9.9.0/24')
Para mais informações sobre a utilização de inIpRange com origin.user_ip, consulte Atributos.
Google Threat Intelligence
evaluateThreatIntelligence('iplist-known-malicious-ips', origin.user_ip)
Para mais informações, consulte o artigo Aplique a inteligência contra ameaças da Google.
Grupos de endereços
evaluateAddressGroup('example-address-group', origin.user_ip)
Para mais informações, consulte o artigo Configure grupos de endereços.
Grupos de moradas ao nível da organização
evaluateOrganizationAddressGroup('example-org-address-group', origin.user_ip)
Para mais informações, consulte o artigo Use grupos de endereços com âmbito da organização.
Práticas recomendadas
Uma vez que origin.user_ip é resolvido a partir de um cabeçalho de pedido, que um cliente não fidedigno pode manipular, tem de validar se o tráfego tem origem numa fonte a montante fidedigna.
Para validar a origem a montante, crie uma política de segurança com, pelo menos, duas regras. A primeira regra, com uma prioridade mais elevada, verifica se o IP do cliente imediato (origin.ip) pertence ao seu fornecedor a montante fidedigno. A segunda regra, com uma prioridade mais baixa, aplica a lógica pretendida através do campo origin.user_ip.
Por exemplo, pode criar uma política com as seguintes duas regras:
- Regra 1:
evaluateThreatIntelligence('iplist-public-clouds', origin.ip) - Regra 2:
inIpRange(origin.user_ip, '9.9.9.0/24')
O que se segue?
- Configure atributos de idioma de regras personalizadas
- Aplique o Google Threat Intelligence
- Configure grupos de moradas
- Use grupos de endereços com âmbito da organização