Parsen des POST-Textinhalts

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.

Google Cloud Armor wertet standardmäßig den vollständigen Inhalt eines POST-Textes als einheitlichen String (vorbehaltlich Textgrößeneinschränkungen) im Vergleich zu den Signaturen in Ihren vorkonfigurierten WAF-Regeln aus. Bei Anfragen mit einer alternativen 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 falsch-positiver Ergebnisse zu reduzieren, sollten Sie Google Cloud Armor so konfigurieren, dass für jeden unterstützten Inhaltstyp ein alternatives Parsen aktiviert wird, 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 von benutzerdefinierten Content-Type-Headerwerten, für die ein alternatives Parsen angewendet wird. Im Beispiel wird die Sicherheitsrichtlinie POLICY_NAME aktualisiert, um das JSON-Parsing zu aktivieren, und die Inhaltstypen application/json, application/vnd.api+json, application/vnd.collection+json und application/vnd.hyper+json werden 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

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

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 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 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 von allen 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