Descripción general de las direcciones IP de los usuarios

Las reglas de política de seguridad de Google Cloud Armor que filtran en función de una dirección IP suelen usar la IP del cliente de la persona que llama. Si tus servicios se encuentran tras un intermediario, como una red de distribución de contenido (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 de usuario te permite configurar un campo alternativo, origin.user_ip, para resolverlo a partir de un encabezado que rellena el proveedor upstream. Después, puede usar el campo origin.user_ip en las reglas de su 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

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

Si los encabezados especificados en userIpRequestHeaders[] no existen o 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 del 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 cómo usar 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 Aplicar Google Threat Intelligence.

Grupos de direcciones

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

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

Grupos de direcciones en el ámbito de organizaciones

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

Para obtener más información, consulta el artículo Usar grupos de direcciones de ámbito de organización.

Prácticas recomendadas

Como origin.user_ip se resuelve a partir de un encabezado de solicitud que puede manipular un cliente no fiable, debes validar que el tráfico procede de una fuente upstream de confianza.

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

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

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

Siguientes pasos