En esta página, se proporciona información para configurar el análisis del contenido del cuerpo de la solicitud, una función opcional que puedes usar con tus políticas de seguridad de Cloud Armor.
De forma predeterminada, Cloud Armor evalúa el contenido completo de un cuerpo de solicitud como una cadena uniforme (sujeta a limitaciones de tamaño del cuerpo) en función de las firmas de tus reglas de WAF preconfiguradas. En el caso de las solicitudes que contienen codificación alternativa, como JSON, los componentes estructurales del mensaje (no especificados por el usuario) pueden activar coincidencias con las firmas de WAF preconfiguradas. Para evitar el ruido y reducir el riesgo de falsos positivos, te recomendamos que configures Cloud Armor para habilitar el análisis alternativo para cualquier tipo de contenido compatible si tus cargas de trabajo protegidas hacen lo siguiente:
- Entregan APIs de REST
- Usan GraphQL
- Reciben solicitudes con contenido codificado en JSON
Para cada política de seguridad, puedes habilitar o inhabilitar el análisis de JSON para los cuerpos de solicitud. Cuando el encabezado Content-Type se configure como application/json, usa la marca --json-parsing en Google Cloud CLI.
De forma predeterminada, esta opción está inhabilitada. La sintaxis de la marca es la siguiente:
--json-parsing=[STANDARD | STANDARD_WITH_GRAPHQL | DISABLED]
La marca solo está disponible con gcloud compute security-policies update. No puedes crear una política de seguridad nueva con esta opción, a menos que crees una política de seguridad en un archivo y, luego, importes ese archivo. Para obtener más información, consulta
Importa políticas de seguridad.
Usa el análisis de JSON
En el siguiente ejemplo, se configura una lista de valores de encabezado Content-Type personalizados para los que se aplica el análisis alternativo. En el ejemplo, se actualiza la política de seguridad POLICY_NAME para habilitar el análisis de JSON y se especifican los tipos de contenido application/json, application/vnd.api+json, application/vnd.collection+json y application/vnd.hyper+json:
gcloud compute security-policies update POLICY_NAME \
--json-parsing STANDARD \
--json-custom-content-types "application/json,application/vnd.api+json,application/vnd.collection+json,application/vnd.hyper+json"
Usa el análisis de GraphQL
Para configurar el análisis de GraphQL, actualiza tu política de seguridad para establecer la marca --json-parsing en STANDARD_WITH_GRAPHQL:
gcloud compute security-policies update POLICY_NAME \
--json-parsing STANDARD_WITH_GRAPHQL
Logging
Cada solicitud HTTP(S) que se evalúa en función de una política de seguridad de Cloud Armor se registra a través de Cloud Logging. Los registros proporcionan detalles como el nombre de la política de seguridad aplicada y la regla de coincidencia, y se informa si se aplicó la regla. El registro de solicitudes para recursos de servicio de backend nuevos está inhabilitado de forma predeterminada. Para registrar solicitudes de Cloud Armor, debes habilitar la configuración de registro de HTTP(S) para cada servicio de backend protegido por una política de seguridad. Para obtener más información, consulta Registro y supervisión del balanceador de cargas de aplicaciones externo global.
Limitaciones
Ten en cuenta las siguientes limitaciones cuando configures el análisis de JSON:
De forma predeterminada, Cloud Armor inspecciona el cuerpo de la solicitud hasta los primeros 64 kB. Puedes configurar este límite en 8 kB, 16 kB, 32 kB, 48 kB o 64 kB. Si el contenido JSON supera el límite de inspección configurado, Cloud Armor aplica el análisis de JSON hasta este límite, que luego inspecciona cualquiera de las reglas de WAF preconfiguradas.
Para obtener más información sobre cómo configurar el límite de inspección para el cuerpo de la solicitud cuando se usan reglas de WAF preconfiguradas, consulta Limitación de inspección del cuerpo de la solicitud.
Cloud Armor puede analizar y aplicar reglas de WAF preconfiguradas al contenido con formato JSON (incluidas las solicitudes de GraphQL a través de HTTP con el formato adecuado) cuando el análisis de JSON está habilitado con un valor de encabezado
Content-Typecoincidente. Para obtener más información, consulta Análisis de JSON parsing. Si Cloud Armor no puede analizar por completo el contenido JSON, es posible que vuelva a procesar todo el cuerpo como una sola cadena codificada en URL.Si el analizador de JSON no muestra ningún resultado, se puede intentar el análisis de URI. Si el analizador de URI no muestra parámetros de nombre-valor o muestra solo parámetros nombre-valor parciales, la string completa o parcial podría tratarse como el nombre de parámetro para la inspección.