Descripción general de las direcciones IP del usuario

Las reglas de políticas de seguridad de Google Cloud Armor que filtran según una dirección IP suelen usar la IP del cliente del llamador. Cuando tus servicios se encuentran detrás de 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 del usuario te permite configurar un campo alternativo, origin.user_ip, para resolver desde un encabezado que completa 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 usas 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 solicitud específico. Este valor completa el campo origin.user_ip, que luego puedes usar en las reglas de tu política de seguridad.

Si no existen los encabezados especificados en userIpRequestHeaders[] 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 los 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 Cómo aplicar 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

Dado que origin.user_ip se resuelve a partir de un encabezado de 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 upstream 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?