Direcciones IP de los usuarios

Las reglas de la política de seguridad de Google Cloud Armor que filtran según una dirección IP suelen usar la IP del cliente del emisor. Cuando tus servicios están detrás de un intermediario, como una red de distribución de contenidos (CDN) de terceros, la IP del cliente en el campo origin.ip es la dirección IP del último intermediario, no la del cliente original.

La función de IP del usuario te permite configurar un campo alternativo, origin.user_ip, para resolver desde un encabezado que propaga el proveedor upstream. Luego, puedes usar el campo origin.user_ip en las reglas de tu política de seguridad para especificar la dirección IP que se usa en esas funciones. Puedes configurar la opción userIpRequestHeaders[] en el campo advancedOptionsConfig de la política de seguridad cuando uses origin.user_ip.

Cómo funcionan las direcciones IP de los usuarios

Configuras Cloud Armor para extraer la dirección IP del usuario final de un encabezado de la solicitud específico. Este valor propaga el campo origin.user_ip, que puedes usar en tus reglas de política de seguridad.

Si los encabezados especificados en userIpRequestHeaders[] no existen o si sus valores no son direcciones IP válidas, Cloud Armor recurre a la dirección IP del cliente (origin.ip). En el siguiente ejemplo, se muestra una comparación directa para el caso predeterminado.

origin.ip != origin.user_ip

En los siguientes ejemplos, se muestra cómo usar origin.user_ip en el lenguaje de reglas, con Google Threat Intelligence y en grupos de direcciones.

inIpRange

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

Para obtener más información sobre el uso de inIpRange con origin.user_ip, consulta Atributos.

Google Threat Intelligence

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

Para obtener más información, consulta Aplica Google Threat Intelligence.

Grupos de direcciones

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

Para obtener más información, consulta Configura grupos de direcciones.

Grupos de direcciones con permiso de la organización

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

Para obtener más información, consulta Usa grupos de direcciones con permiso de la organización.

Prácticas recomendadas

Debido a que origin.user_ip se resuelve a partir de un encabezado de la solicitud, que un cliente no confiable puede manipular, debes validar que el tráfico se origine en una fuente upstream confiable.

Para validar la fuente upstream, crea una política de seguridad con al menos dos reglas. La primera regla, con una prioridad más alta, verifica que la IP del cliente inmediato (origin.ip) pertenezca a tu proveedor ascendente de confianza. La segunda regla, con una prioridad más baja, aplica la lógica prevista con el campo origin.user_ip.

Por ejemplo, puedes crear una política con las siguientes dos reglas:

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

¿Qué sigue?