En esta página, se proporciona información para configurar el análisis de contenido del cuerpo POST, una función opcional que puedes usar con tus políticas de seguridad de Google Cloud Armor.
De forma predeterminada, Google Cloud Armor evalúa el contenido completo de un cuerpo POST 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) podrían activar coincidencias con las firmas de WAF preconfiguradas. Para evitar el ruido y reducir el riesgo de falsos positivos, te recomendamos que configures Google Cloud Armor para habilitar el análisis alternativo de cualquier Content-Type compatible si tus cargas de trabajo protegidas hacen lo siguiente:
- Publica APIs de REST
- Usa GraphQL
- Recibir solicitudes 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 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, configuras 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 la política de seguridad para establecer la marca --json-parsing
en STANDARD_WITH_GRAPHQL
, como en el siguiente ejemplo:
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 Google 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 asegurarte de que se registren las solicitudes de Google Cloud Armor, debes habilitar el 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:
- La inspección del cuerpo de POST se limita a los primeros 8 KB. Si el contenido JSON es mayor que 8 KB, Google Cloud Armor aplica el análisis de JSON a los primeros 8 KB de contenido que se usa y que inspecciona cualquier regla de WAF preconfigurada.
- 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.
¿Qué sigue?
- Configura políticas de seguridad de Google Cloud Armor.
- Obtén más información sobre el registro de solicitudes.