Esta página contiene información sobre la configuración del análisis del contenido del cuerpo de la solicitud POST, una función opcional que puedes usar con tus políticas de seguridad de Cloud Armor.
De forma predeterminada, Cloud Armor evalúa todo el contenido del cuerpo de una solicitud POST como una cadena uniforme (sujeta a limitaciones de tamaño del cuerpo) en comparación con las firmas de las reglas de WAF preconfiguradas. En 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 de cualquier tipo de contenido admitido si tus cargas de trabajo protegidas hacen lo siguiente:
- Servir APIs REST
- Usar GraphQL
- Recibe cualquier solicitud con contenido codificado en JSON.
Puedes habilitar o inhabilitar el análisis del contenido del cuerpo JSON de las solicitudes POST para cada política de seguridad. Cuando el encabezado Content-Type
se defina como application/json
, usa la marca --json-parsing
en la CLI de Google Cloud.
Esta opción está inhabilitada de forma predeterminada. 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 con esta opción a menos que crees una política de seguridad en un archivo y, a continuación, importes ese archivo. Para obtener más información, consulta Importar políticas de seguridad.
Usar el análisis JSON
En el ejemplo siguiente, se configura una lista de valores de encabezado Content-Type
personalizados a los que se aplica un análisis alternativo. En el ejemplo se actualiza la política de seguridad POLICY_NAME
para habilitar el análisis 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"
Usar el análisis de GraphQL
Para configurar el análisis de GraphQL, actualiza tu política de seguridad para definir la marca --json-parsing
como STANDARD_WITH_GRAPHQL
:
gcloud compute security-policies update POLICY_NAME \ --json-parsing STANDARD_WITH_GRAPHQL
Almacenamiento de registros
Cada solicitud HTTP(S) que se evalúa con una política de seguridad de Cloud Armor se registra mediante Cloud Logging. Los registros proporcionan detalles como el nombre de la política de seguridad aplicada, la regla coincidente y si se ha aplicado la regla. El registro de solicitudes de los nuevos recursos de servicio de backend está inhabilitado de forma predeterminada. Para registrar las solicitudes de Cloud Armor, debe habilitar el ajuste de registro de HTTP(S) en cada servicio de backend protegido por una política de seguridad. Para obtener más información, consulta Registro y monitorización de balanceadores de carga de aplicación externos regionales.
Limitaciones
Ten en cuenta las siguientes limitaciones al configurar el análisis de JSON:
Cloud Armor inspecciona el cuerpo
HTTP POST
hasta los primeros 8 kB de forma predeterminada. 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 JSON hasta ese límite, que luego se inspecciona con cualquiera de las reglas de WAF preconfiguradas.Para obtener más información sobre cómo configurar el límite de inspección del cuerpo de la solicitud al usar reglas de WAF preconfiguradas, consulta Limitación de la inspección del cuerpo de las solicitudes POST y PATCH.
Si el analizador JSON no devuelve ningún resultado, se puede intentar analizar el URI. Si el analizador de URIs no devuelve ningún parámetro de nombre-valor o solo devuelve parámetros de nombre-valor parciales, la cadena completa o parcial se puede tratar como el nombre del parámetro para la inspección.