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
- Configurar atributos de idioma de reglas personalizadas
- Aplicar Google Threat Intelligence
- Configurar grupos de direcciones
- Usar grupos de direcciones con ámbito de organización