Auf dieser Seite finden Sie Informationen zum Konfigurieren des Parsens von Anfragekörperinhalten. Dies ist eine optionale Funktion, die Sie mit Ihren Google Cloud Armor-Sicherheitsrichtlinien verwenden können.
Standardmäßig wertet Cloud Armor den gesamten Inhalt eines Anfragetexts als einheitlichen String (vorbehaltlich Beschränkungen der Textgröße) anhand der Signaturen in Ihren vorkonfigurierten WAF-Regeln aus. Bei Anfragen, die eine alternative Codierung wie JSON enthalten, 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 Falschmeldungen zu verringern, empfehlen wir, Cloud Armor so zu konfigurieren, dass die alternative Analyse für alle unterstützten Content-Type-Header aktiviert wird, wenn Ihre geschützten Arbeitslasten Folgendes tun:
- REST APIs bereitstellen
- GraphQL verwenden
- Anfragen mit JSON-codierten Inhalten empfangen.
Für jede Sicherheitsrichtlinie können Sie das JSON-Parsing für Anfrage-Textinhalte 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 alternatives 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
Um das GraphQL-Parsing zu konfigurieren, aktualisieren Sie Ihre Sicherheitsrichtlinie und legen Sie das Flag --json-parsing auf STANDARD_WITH_GRAPHQL fest:
gcloud compute security-policies update POLICY_NAME \
--json-parsing STANDARD_WITH_GRAPHQL
Logging
Jede HTTP(S)-Anfrage, die anhand einer 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 Backend-Dienstressourcen ist standardmäßig deaktiviert. Damit Cloud Armor-Anfragen protokolliert werden, müssen Sie die HTTP(S)-Logging-Einstellung für jeden durch eine Sicherheitsrichtlinie geschützten Backend-Dienst aktivieren. Weitere Informationen finden Sie unter Logging und Monitoring für globale externe Application Load Balancer.
Beschränkungen
Beachten Sie beim Konfigurieren des JSON-Parsings die folgenden Einschränkungen:
Cloud Armor prüft den Anfragetext standardmäßig bis zu den ersten 64 KB. Sie können dieses Limit auf 8 KB, 16 KB, 32 KB, 48 KB oder 64 KB festlegen. Wenn der JSON-Inhalt das konfigurierte Prüflimit überschreitet, wendet Cloud Armor das JSON-Parsing bis zu diesem Limit an. Der Inhalt wird dann von den vorkonfigurierten WAF-Regeln geprüft.
Weitere Informationen zum Konfigurieren des Inspektionslimits für den Anfragetext bei Verwendung vorkonfigurierter WAF-Regeln finden Sie unter Beschränkung der Textkörperinspektion.
Cloud Armor kann vorkonfigurierte WAF-Regeln für JSON-formatierte Inhalte (einschließlich korrekt formatierter GraphQL-Anfragen über HTTP) parsen und anwenden, wenn die JSON-Analyse mit einem übereinstimmenden
Content-Type-Headerwert aktiviert ist. Weitere Informationen finden Sie unter JSON-Analyse. Wenn Cloud Armor JSON-Inhalte nicht vollständig parsen kann, wird möglicherweise der gesamte Textkörper als einzelner URL-codierter String verarbeitet.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.