Los registros por solicitud de Google Cloud Armor para el nombre de política de seguridad, la prioridad de la regla de coincidencias, la acción asociada y la información relacionada se registran como parte del registro para los balanceadores de cargas de aplicaciones externos y los balanceadores de cargas de red del proxy externos. El registro para los servicios de backend nuevos está inhabilitado de forma predeterminada, por lo que debes habilitar el registro para ingresar la información de registro completa para Cloud Armor.
Los registros de Cloud Armor son parte de los registros de Cloud Load Balancing. Esto significa que la generación de registros de Cloud Armor está sujeta a la tasa de muestreo de registros configurada para tu balanceador de cargas. Si reduces la tasa de muestreo para tu balanceador de cargas, tus registros de solicitudes de Cloud Armor se muestrean con esa tasa reducida. Además, si usas la referencia de servicios entre proyectos, los registros se generan en el proyecto host o de servicio que incluye el frontend y el mapa de URLs del balanceador de cargas. Por lo tanto, recomendamos que los administradores del proyecto de frontend otorguen permisos para leer registros y métricas a los administradores del proyecto de backend.
Con el registro, puedes ver cada solicitud evaluada por una política de seguridad de Cloud Armor
y el resultado o la acción realizados según la regla coincidente
de mayor prioridad. Por ejemplo, para ver las solicitudes rechazadas, puedes usar filtros como
jsonPayload.enforcedSecurityPolicy.outcome="DENY" o
jsonPayload.statusDetails="denied_by_security_policy".
Además, puedes establecer diferentes niveles de registro para evaluar si tus políticas de seguridad y sus reglas funcionan según lo previsto. Para obtener información completa, consulta Registro detallado.
Entradas de registro de la política de seguridad
Las siguientes entradas de registro en el Explorador de registros son para la política de seguridad
y el registro de reglas de Cloud Armor. Las entradas incluyen la siguiente estructura en jsonPayload. Los detalles de la solicitud HTTP aparecen en el mensaje httpRequest.
statusDetails: Es una descripción textual del código de respuesta.redirected_by_security_policy: La solicitud se redireccionó mediante una regla de redireccionamiento; ya seaGOOGLE_RECAPTCHAoEXTERNAL_302.denied_by_security_policy: El balanceador de cargas rechazó una solicitud debido a una política de seguridad de Cloud Armor.body_denied_by_security_policy: El balanceador de cargas rechazó el cuerpo de una solicitud debido a una política de seguridad de Cloud Armor.
enforcedSecurityPolicy: La regla de la política de seguridad que se aplicó.name: Es el nombre de la política de seguridad.priority: Es una prioridad numérica de la regla coincidente en la política de seguridad.configuredAction: Es el nombre de la acción configurada en la regla coincidente, por ejemplo:ALLOW,DENY,GOOGLE_RECAPTCHA,EXTERNAL_302,THROTTLE(para una regla de limitación),RATE_BASED_BAN(para una regla de bloqueo basada en la frecuencia).rateLimitAction: Información sobre la acción de límite de frecuencia cuando se detecta una coincidencia con una regla de limitación o una de bloqueo basada en la velocidad.key: Es el valor de la clave de límite de frecuencia (hasta 36 bytes). Este campo se omite si el tipo de clave esALL, o si el tipo de clave esHTTP-HEADERoHTTP-COOKIEy el encabezado o cookie especificado no está presente en la solicitud.outcome: Los valores posibles son los siguientes:"RATE_LIMIT_THRESHOLD_CONFORM"si está por debajo del umbral del límite de frecuencia configurado."RATE_LIMIT_THRESHOLD_EXCEED"si supera el umbral del límite de frecuencia configurado."BAN_THRESHOLD_EXCEED"si supera el umbral de bloqueo configurado.
outcome: Es el resultado de la ejecución de la acción configurada, por ejemplo,ACCEPT,DENY,REDIRECT,EXEMPT.preconfiguredExprIds: los IDs de todas las expresiones de reglas de WAF preconfiguradas que activaron la regla.ruleNumber: Es un identificador único y permanente para la regla de política de seguridad que persiste después de que se establece.rulesetId: Es el nombre o identificador de la categoría de reglas administradas activadas (por ejemplo,google:sqli:stable).rulesetVersion: Es la configuración de la versión definida en la regla coincidente (por ejemplo,stableocanary).rulesetArtifact: Es el identificador opaco y único que corresponde al registro de artefactos de la versión que se usa para la evaluación.threatIntelligence: información sobre las listas de direcciones IP coincidentes de Inteligencia contra amenazas, si corresponde.categories: los nombres de las listas de direcciones IP que coinciden.
previewSecurityPolicy: Se propaga si la solicitud coincide con una regla configurada para la vista previa (presente solo cuando una regla de vista previa hubiera tenido prioridad sobre la regla aplicada).name: el nombre de la política de seguridadpriority: Es una prioridad numérica de la regla coincidente en la política de seguridad.configuredAction: Es el nombre de la acción configurada en la regla coincidente, por ejemplo:ALLOW,DENY,GOOGLE_RECAPTCHA,EXTERNAL_302,THROTTLE(para una regla de limitación),RATE_BASED_BAN(para una regla de bloqueo basada en la frecuencia).rateLimitAction: Información sobre la acción de límite de frecuencia cuando se detecta una coincidencia con una regla de limitación o una de bloqueo basada en la velocidad.key: Es el valor de la clave de límite de frecuencia (hasta 36 bytes). Este campo se omite si el tipo de clave esALL, o si el tipo de clave esHTTP-HEADERoHTTP-COOKIEy el encabezado o cookie especificado no está presente en la solicitud.outcome: Los valores posibles son los siguientes:"RATE_LIMIT_THRESHOLD_CONFORM"si está por debajo del umbral del límite de frecuencia configurado."RATE_LIMIT_THRESHOLD_EXCEED"si supera el umbral del límite de frecuencia configurado."BAN_THRESHOLD_EXCEED"si supera el umbral de bloqueo configurado.
outcome: Es el resultado de la ejecución de la acción configurada, por ejemplo,ACCEPT,DENY,REDIRECT,EXEMPT.preconfiguredExprIds: los IDs de todas las expresiones de reglas de WAF preconfiguradas que activaron la regla.ruleNumber: Es un identificador único y permanente para la regla de política de seguridad que persiste después de que se establece.rulesetId: Es el nombre o identificador de la categoría de reglas administradas activadas (por ejemplo,google:sqli:stable).rulesetVersion: Es la configuración de la versión definida en la regla coincidente (por ejemplo,stableocanary).rulesetArtifact: Es el identificador opaco y único que corresponde al registro de artefactos de la versión que se usa para la evaluación.threatIntelligence: información sobre las listas de direcciones IP coincidentes de Inteligencia contra amenazas, si corresponde.categories: los nombres de las listas de direcciones IP que coinciden.
enforcedEdgeSecurityPolicy: La regla de la política de seguridad perimetral que se aplicó.name: Es el nombre de la política de seguridad.priority: Es una prioridad numérica de la regla coincidente en la política de seguridad.configuredAction: Es el nombre de la acción configurada en la regla coincidente, por ejemplo,ALLOW,DENY.outcome: Es el resultado de la ejecución de la acción configurada, por ejemplo,ACCEPT,DENY.
previewEdgeSecurityPolicy: Se propaga si una solicitud coincide con una regla de política de seguridad perimetral configurada para la vista previa (presente solo cuando una regla de vista previa hubiera tenido prioridad sobre la regla aplicada).name: Es el nombre de la política de seguridad.priority: Es una prioridad numérica de la regla coincidente en la política de seguridad.configuredAction: Es el nombre de la acción configurada en la regla coincidente, por ejemplo,ALLOW,DENY.outcome: Es el resultado de la ejecución de la acción configurada, por ejemplo,ACCEPT,DENY.
evaluatedSecurityPolicies: Es una lista de reglas de coincidencia no terminales evaluadas para esta política (por ejemplo, coincidencias de vista previa de candidatos y solo de información).ruleNumber: Es un identificador único y permanente para la regla de política de seguridad que persiste después de que se establece.rulesetId: Es el nombre o identificador de la categoría de reglas administradas activadas (por ejemplo,google:sqli:stable).rulesetVersion: Es la configuración de la versión definida en la regla coincidente (por ejemplo,stableocanary).rulesetArtifact: Es el identificador opaco y único que corresponde al registro de artefactos de la versión que se usa para la evaluación.
Visualiza registros
Puedes ver los registros de una política de seguridad de Cloud Armor solo en la consola deGoogle Cloud .
Console
En la consola de Google Cloud , ve a Políticas de Cloud Armor.
Haz clic en Acciones.
Selecciona Ver registros.
Correlaciona las respuestas con las entradas de registro
Para correlacionar la solicitud de un cliente directamente con una entrada de registro individual para
los balanceadores de cargas de aplicaciones externos globales y los balanceadores de cargas de aplicaciones clásicos, puedes configurar un
encabezado de respuesta personalizado en tu servicio de backend que incluya la
variable {cloud_trace_id}, como se muestra en el siguiente ejemplo:
--custom-response-header='X-Cloud-Trace-Id:{cloud_trace_id}'
El balanceador de cargas propaga esta variable con el ID de seguimiento hexadecimal de 32 caracteres extraído o generado para la solicitud HTTP y devuelve el encabezado al cliente, incluso cuando Cloud Armor rechaza la solicitud.
En Cloud Logging, este ID de seguimiento se registra en el campo trace de nivel superior de
la entrada de registro del balanceador de cargas con el formato
projects/PROJECT_ID/traces/TRACE_ID. Puedes
filtrar por este valor trace en el Explorador de registros para ubicar la entrada de registro
de una solicitud específica permitida o bloqueada. Para obtener instrucciones paso a paso, consulta
Identifica y correlaciona las solicitudes bloqueadas en
los registros.
Solicita el registro de datos
Cuando se usa con Cloud Armor, jsonPayload tiene el siguiente campo
adicional:
securityPolicyRequestData: datos que pertenecen a la solicitud mientras se procesa mediante una política de seguridad, sin importar qué regla coincide finalmente.recaptchaActionToken: Datos relacionados con un token de acción de reCAPTCHA.score: Es una puntuación de legitimidad del usuario incorporada en un token de acción de reCAPTCHA. Solo está presente cuando un token de acción de reCAPTCHA se adjunta a la solicitud y se decodifica de forma correcta en función de una regla de política de seguridad. Para obtener más información, consulta Aplica una evaluación de reCAPTCHA.
recaptchaSessionToken: Son los datos relacionados con un token de sesión de reCAPTCHA.score: Es una puntuación de legitimidad del usuario incorporada en un token de sesión de reCAPTCHA. Solo está presente cuando un token de sesión de reCAPTCHA se adjunta con la solicitud y se decodifica de forma correcta en función de una regla de política de seguridad.
userIpInfo: Son los datos relacionados con el uso de la IP del usuario.source: Es un campo que, por lo general, es el encabezado desde el que se resolvió la IP del usuario.ipAddress: Es la dirección IP resuelta a partir del campo de origen.
remoteIpInfo: son los datos relacionados con la dirección IP del cliente de la solicitud.ipAddress: Es la dirección IP del cliente de la solicitud.region_code: Es el código de país o región de dos letras de la dirección IP.asn: Es el número de sistema autónomo (ASN) de cinco dígitos que corresponde a la dirección IP.
tlsJa4Fingerprint: Es una huella digital de TTL/SSL de JA4 si el cliente se conecta conHTTPS,HTTP/2oHTTP/3. Solo está presente si la huella digital está disponible y hay una política de seguridad que evalúa la solicitud (independientemente de si una expresión de la política coincide con la solicitud).tlsJa3Fingerprint: Es una huella digital de TTL/SSL de JA3 si el cliente se conecta conHTTPS,HTTP/2oHTTP/3. Solo está presente si el fingerprint está disponible y hay una política de seguridad que evalúa la solicitud (independientemente de si una expresión de la política coincide con la solicitud).
Ejemplos de registros
El siguiente es un ejemplo de detalles de registro de una regla de regulación que bloquea una solicitud:
jsonPayload: {
enforcedSecurityPolicy: {
priority: 100
name: "sample-prod-policy"
configuredAction: "THROTTLE"
outcome: "DENY"
rateLimitAction: {
key:"sample-key"
outcome:"RATE_LIMIT_THRESHOLD_EXCEED"
}
}
@type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:16:48.185763Z"
El siguiente es un ejemplo de los detalles de registro de una regla de bloqueo basada en la tarifa que bloquea una solicitud:
jsonPayload: {
@type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
enforcedSecurityPolicy: {
priority: 150
name: "sample-prod-policy"
outcome: "DENY"
configuredAction: "RATE_BASED_BAN"
rateLimitAction: {
key:"sample-key"
outcome:"BAN_THRESHOLD_EXCEED"
}
}
statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:27:17.393244Z"
¿Qué sigue?
- Obtén información para solucionar problemas de Cloud Armor.