Parsen des POST-Textinhalts

Diese Seite enthält Informationen zum Konfigurieren des Parsens des POST-Textinhalts, Optionales Feature, das Sie mit Ihrer Google Cloud Armor-Sicherheit verwenden können Richtlinien.

Standardmäßig wertet Google Cloud Armor den gesamten Inhalt eines POST-Textkörpers als eine Einheitlicher String (vorbehaltlich Einschränkungen der Körpergröße) mit den Signaturen in Ihren vorkonfigurierten WAF-Regeln vergleichen. Bei Anfragen, die alternative Codierungen wie JSON, strukturelle Komponenten der Nachricht (nicht vom Nutzer angegeben) konnte Übereinstimmungen mit der vorkonfigurierten WAF auslösen Signaturen. Um Störfaktoren zu vermeiden und das Risiko falsch-positiver Ergebnisse zu verringern, empfehlen wir konfigurieren Sie Google Cloud Armor so, dass ein alternatives Parsing für beliebige unterstützt Content-Type, wenn Ihre geschützten Arbeitslasten:

  • REST APIs bereitstellen
  • GraphQL verwenden
  • Alle Anfragen mit JSON-codiertem Inhalt empfangen.

Sie können das Parsen des JSON-Textinhalts von POST-Anfragen für jede Sicherheitsrichtlinie aktivieren oder deaktivieren. Wenn der Header Content-Type auf application/json gesetzt ist, verwenden Sie das Flag --json-parsing im Google Cloud CLI.

Diese Option ist standardmäßig deaktiviert. Die Syntax für das Flag lautet:

--json-parsing=[STANDARD | STANDARD_WITH_GRAPHQL | DISABLED]

Das Flag ist nur mit gcloud compute security-policies update verfügbar. Mit dieser Option können Sie keine neue Sicherheitsrichtlinie erstellen, es sei denn, Sie erstellen eine Sicherheitsrichtlinie in einer Datei und importieren diese Datei dann. Weitere Informationen finden Sie unter Sicherheitsrichtlinien importieren.

JSON-Parsing verwenden

Im folgenden Beispiel konfigurieren Sie eine Liste mit benutzerdefinierten Content-Type-Headern -Werte, für die alternatives Parsen angewendet wird. Im Beispiel wird die Sicherheitsrichtlinie POLICY_NAME zum Aktivieren des JSON-Parsings und gibt die Inhaltstypen application/json, application/vnd.api+json, application/vnd.collection+json und 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"

GraphQL-Parsing verwenden

Aktualisieren Sie zum Konfigurieren des GraphQL-Parsings Ihre Sicherheitsrichtlinie, um die --json-parsing-Flag in STANDARD_WITH_GRAPHQL, wie im folgenden Beispiel:

gcloud compute security-policies update POLICY_NAME \
    --json-parsing STANDARD_WITH_GRAPHQL

Logging

Jede HTTP(S)-Anfrage, die anhand einer Google Cloud Armor-Sicherheitsrichtlinie ausgewertet wird, wird über Cloud Logging protokolliert. Die Protokolle enthalten Details wie die Name der angewendeten Sicherheitsrichtlinie, die entsprechende Regel und ob die Regel durchgesetzt wird. Das Anfrage-Logging für neue Back-End-Dienstressourcen ist standardmäßig deaktiviert. Damit Google Cloud Armor-Anfragen protokolliert werden, müssen Sie für jeden durch eine Sicherheitsrichtlinie geschützten Back-End-Dienst das HTTP(S)-Logging aktivieren. Weitere Informationen finden Sie unter Logging und Monitoring für globalen externen Application Load Balancer

Beschränkungen

Beachten Sie beim Konfigurieren des JSON-Parsings die folgenden Einschränkungen:

  • Die Prüfung des POST-Textkörpers ist auf die ersten 8 KB beschränkt. Wenn die JSON-Datei Inhalt größer als 8 KB ist, wird Google Cloud Armor JSON-Parsing in den ersten 8 KB des verwendeten Inhalts, der von einem beliebigen vorkonfigurierten WAF-Regeln.
  • Wenn der JSON-Parser kein Ergebnis zurückgibt, wird möglicherweise ein URI-Parsing versucht. Wenn der URI-Parser keine oder nur unvollständige Name/Wert-Parameter zurückgibt, wird der gesamte String oder ein Teil davon möglicherweise für die Prüfung als Parametername behandelt.

Nächste Schritte