Parsen des POST-Texts

Auf dieser Seite finden Sie Informationen zum Konfigurieren des Parsens von POST-Body-Inhalten. Dies ist eine optionale Funktion, die Sie mit Ihren Google Cloud Armor-Sicherheitsrichtlinien verwenden können.

Standardmäßig wertet Google Cloud Armor den gesamten Inhalt eines POST-Textkörpers als einheitlichen String (vorbehaltlich der Größenbeschränkungen für den Textkörper) anhand der Signaturen in Ihren vorkonfigurierten WAF-Regeln aus. Bei Anfragen mit alternativer Codierung wie JSON können strukturelle Komponenten der Nachricht (nicht vom Nutzer angegeben) Übereinstimmungen mit den vorkonfigurierten WAF-Signaturen auslösen. Um unerwünschte Ergebnisse zu vermeiden und das Risiko von Falschmeldungen zu reduzieren, empfehlen wir Ihnen, Google Cloud Armor so zu konfigurieren, dass für alle unterstützten Content-Typen ein alternatives Parsen aktiviert wird, wenn Ihre geschützten Arbeitslasten Folgendes tun:

  • REST APIs bereitstellen
  • GraphQL verwenden
  • Alle Anfragen mit JSON-codierten Inhalten 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 wird eine Liste benutzerdefinierter Content-Type-Headerwerte konfiguriert, für die das alternative Parsing angewendet wird. Im Beispiel wird die Sicherheitsrichtlinie POLICY_NAME aktualisiert, um das JSON-Parsing zu aktivieren, und es werden die Inhaltstypen application/json, application/vnd.api+json, application/vnd.collection+json und application/vnd.hyper+json angegeben:

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

Wenn Sie das GraphQL-Parsen konfigurieren möchten, aktualisieren Sie Ihre Sicherheitsrichtlinie und legen Sie das Flag --json-parsing auf STANDARD_WITH_GRAPHQL fest, 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 Logs enthalten Details wie den Namen der angewendeten Sicherheitsrichtlinie, die Abgleichsregel und ob die Regel erzwungen wurde. 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 globale externe Application Load Balancer.

Beschränkungen

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

  • Die Prüfung des POST-Texts ist auf die ersten 8 KB beschränkt. Wenn der JSON-Inhalt größer als 8 KB ist, wendet Google Cloud Armor das JSON-Parsen auf die ersten 8 KB des verwendeten Inhalts an, der von vorkonfigurierten WAF-Regeln geprüft wird.
  • 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