Parsen von POST-Textinhalten

Diese Seite enthält Informationen zum Konfigurieren des Parsens von POST-Textinhalten, einem optionalen Feature, das Sie mit Ihren Google Cloud Armor-Sicherheitsrichtlinien verwenden können.

Standardmäßig wertet Google Cloud Armor den gesamten Inhalt eines POST-Texts als einheitlichen String aus (unterliegt Einschränkungen der Größe des Textkörpers) anhand der Signaturen in Ihren vorkonfigurierten WAF-Regeln. 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 Rauschen zu vermeiden und das Risiko von falsch-positiven Ergebnissen zu verringern, empfehlen wir, dass Sie Google Cloud Armor so konfigurieren, dass ein alternatives Parsing für jeden unterstützten Content-Type möglich ist, wenn Ihre geschützten Arbeitslasten Folgendes tun:

  • 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 benutzerdefinierter Content-Type-Headerwerte, auf die ein alternatives Parsing angewendet wird. Im Beispiel wird die Sicherheitsrichtlinie POLICY_NAME aktualisiert, um das JSON-Parsing zu ermöglichen, 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

Zum Konfigurieren des GraphQL-Parsings aktualisieren Sie Ihre Sicherheitsrichtlinie, um das Flag --json-parsing auf STANDARD_WITH_GRAPHQL zu setzen, wie im folgenden Beispiel gezeigt:

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 des globalen externen Application Load Balancers.

Beschränkungen

Beachten Sie beim Konfigurieren des JSON-Parsings 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-Parsing auf die ersten 8 KB des verwendeten Inhalts an, der durch vorkonfigurierte 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