Cette page contient des informations sur la configuration de l'analyse du contenu du corps POST, une fonctionnalité facultative que vous pouvez utiliser avec vos stratégies de sécurité Google Cloud Armor.
Par défaut, Google Cloud Armor évalue l'intégralité du contenu d'un corps POST en tant que chaîne uniforme (sous réserve des limites de taille du corps) par rapport aux signatures de vos règles WAF préconfigurées. Pour les requêtes contenant un encodage alternatif tel que JSON, les composants structurels du message (non spécifiés par l'utilisateur) peuvent déclencher des correspondances avec les signatures WAF préconfigurées. Pour éviter le bruit et réduire le risque de faux positifs, nous vous recommandons de configurer Google Cloud Armor afin d'activer l'analyse alternative pour tout type de contenu compatible si vos charges de travail protégées effectuent les opérations suivantes :
- Diffuser des API REST
- Utiliser GraphQL
- Recevez toutes les requêtes avec du contenu encodé au format JSON.
Vous pouvez activer ou désactiver l'analyse du contenu du corps JSON des requêtes POST pour chaque stratégie de sécurité. Lorsque l'en-tête Content-Type
est défini sur application/json
, utilisez l'option --json-parsing
dans Google Cloud CLI.
Cette option est désactivée par défaut. Voici la syntaxe de l'option :
--json-parsing=[STANDARD | STANDARD_WITH_GRAPHQL | DISABLED]
L'option est disponible uniquement avec gcloud compute security-policies update
. Cette option ne vous permet pas de créer une stratégie de sécurité, sauf si vous créez une stratégie de sécurité dans un fichier, puis que vous importez ce fichier. Pour en savoir plus, consultez Importer des règles de sécurité.
Utiliser l'analyse JSON
Dans l'exemple suivant, vous configurez une liste de valeurs d'en-têtes Content-Type
personnalisées pour lesquelles une analyse alternative est appliquée. L'exemple met à jour la stratégie de sécurité POLICY_NAME
pour activer l'analyse JSON et spécifie les types de contenu application/json
, application/vnd.api+json
, application/vnd.collection+json
et 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"
Utiliser l'analyse GraphQL
Pour configurer l'analyse GraphQL, mettez à jour votre stratégie de sécurité afin de définir l'indicateur --json-parsing
sur STANDARD_WITH_GRAPHQL
:
gcloud compute security-policies update POLICY_NAME \ --json-parsing STANDARD_WITH_GRAPHQL
Journalisation
Chaque requête HTTP(S) évaluée par rapport à une stratégie de sécurité Google Cloud Armor est enregistrée via Cloud Logging. Les journaux fournissent des détails tels que le nom de la stratégie de sécurité appliquée, la règle de correspondance et si la règle a été appliquée. La journalisation des requêtes pour les nouvelles ressources de service de backend est désactivée par défaut. Pour consigner les requêtes Google Cloud Armor, vous devez activer le paramètre de journalisation HTTP(S) pour chaque service de backend protégé par une stratégie de sécurité. Pour en savoir plus, consultez la page Journalisation et surveillance de l'équilibreur de charge d'application externe global.
Limites
Tenez compte des limites suivantes lorsque vous configurez l'analyse JSON :
Par défaut, Google Cloud Armor inspecte les 8 premiers kilo-octets du corps
HTTP POST
. Vous pouvez configurer cette limite sur 8 Ko, 16 Ko, 32 Ko, 48 Ko ou 64 Ko. Si le contenu JSON est supérieur à la limite d'inspection configurée, Google Cloud Armor applique l'analyse JSON jusqu'à cette limite, qui est ensuite inspectée par l'une des règles WAF préconfigurées.Pour en savoir plus sur la configuration de la limite d'inspection du corps de la requête lorsque vous utilisez des règles WAF préconfigurées, consultez Limites d'inspection du corps POST et PATCH.
Si l'analyseur JSON ne renvoie aucun résultat, vous pouvez tenter d'analyser l'URI. Si l'analyseur d'URI ne renvoie aucun paramètre nom-valeur ou uniquement des paramètres nom-valeur partiels, la chaîne entière ou partielle peut être traitée comme nom de paramètre pour l'inspection.