Anfrage-Logging verwenden

Google Cloud Armor-Logs auf Anfrage für den Namen der Sicherheitsrichtlinie, die Priorität der Abgleichsregel, zugehörige Aktion und zugehörige Informationen im Rahmen des Loggings für externen Application Load Balancern und externen Proxy-Network Load Balancern. Das Logging für neue Backend-Dienste ist standardmäßig deaktiviert. Daher müssen Sie das Logging aktivieren, um vollständige Logging-Informationen für Google Cloud Armor aufzuzeichnen.

Google Cloud Armor-Logs sind Teil der Cloud Load Balancing-Logs. Das bedeutet, dass die Google Cloud Armor-Loggenerierung dem Log unterliegt, Abtastrate, die für Ihren Load-Balancer konfiguriert ist. Wenn Sie die Stichprobenrate verringern für Ihren Load-Balancer, werden die Logs für Ihre Google Cloud Armor-Anfragen diesen reduzierten Satz. Wenn Sie außerdem projektübergreifende Dienstleistungsreferenzen, Logs werden unter dem Host- oder Dienstprojekt generiert, das Ihre Frontend und URL-Zuordnung des Load-Balancers. Daher empfehlen wir, Administratoren im Frontend-Projekt erteilen Berechtigungen zum Lesen von Logs und für Administratoren im Back-End-Projekt.

Mit Logging können Sie jede Anfrage sehen, die von einer Google Cloud Armor-Sicherheitsrichtlinie ausgewertet wird, und sich die Ergebnisse und Maßnahmen ansehen, die ergriffen wurden. Wenn Sie beispielsweise abgelehnte Anfragen aufrufen möchten, können Sie Filter wie jsonPayload.enforcedSecurityPolicy.outcome="DENY" oder jsonPayload.statusDetails="denied_by_security_policy" verwenden.

Informationen zum Aktivieren des Loggings für einen externen Application Load Balancer finden Sie unter Logging und Monitoring für externen Application Load Balancer Für den externen Proxy-Network Load Balancer können Sie die Google Cloud CLI verwenden wie unter Logging und Monitoring für externen Application Load Balancer aufgeführt. Seite. Sie können Logging für den externen Proxy-Network Load Balancer nicht aktivieren mit der Google Cloud Console.

Darüber hinaus können Sie verschiedene Logging-Ebenen festlegen, um zu beurteilen, ob Ihre Sicherheitsrichtlinien und deren Regeln wie vorgesehen funktionieren. Ausführliche Informationen finden Sie unter Ausführliches Logging.

Logeinträge für Sicherheitsrichtlinien

Die im Folgenden aufgeführten Logeinträge in der Logs Explorer beziehen sich auf das Google Cloud Armor-Sicherheitsrichtlinien- und Regel-Logging. Die Einträge haben die folgende Struktur in jsonPayload. HTTP-Anfragedetails sind in der httpRequest-Meldung enthalten.

  • statusDetails (String): eine Beschreibung des Antwortcodes
    • redirected_by_security_policy: Die Anfrage wurde durch eine Weiterleitungsregel weitergeleitet, entweder GOOGLE_RECAPTCHA oder EXTERNAL_302.
    • denied_by_security_policy: Eine Anfrage wurde von einem Load-Balancer aufgrund einer Google Cloud Armor-Sicherheitsrichtlinie abgelehnt.
    • body_denied_by_security_policy: Eine Anfrage wurde von einem Load-Balancer aufgrund einer Google Cloud Armor-Sicherheitsrichtlinie abgelehnt.
  • enforcedSecurityPolicy: die Sicherheitsrichtlinienregel, die erzwungen wurde
    • name (String): Der Name der Sicherheitsrichtlinie.
    • priority (Zahl): Die Priorität der Abgleichsregel in der Sicherheitsrichtlinie.
    • adaptiveProtection: Informationen zum automatisch bereitgestellten Adaptive Protection-Regel (falls zutreffend).
      • autoDeployAlertId: Die Benachrichtigungs-ID der Ereignisse, die Adaptive Protection erkannt hat.
    • configuredAction (String): Der Name der konfigurierten Aktion in der Abgleichsregel, z. B.ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302, THROTTLE (für eine Drosselungsregel), RATE_BASED_BAN (für eine ratenbasierte Sperrregel).
    • rateLimitAction: Informationen zur Ratenbegrenzungsaktion, wenn eine Drosselungsregel oder ratenbasierte Sperrregel abgeglichen wird.
      • key (String): Schlüsselwert für Ratenbegrenzung (bis zu 32 Byte). Dieses Feld wird weggelassen, wenn der Schlüsseltyp ALL ist oder der Schlüsseltyp HTTP-HEADER oder HTTP-COOKIE ist und der angegebene Header oder das angegebene Cookie nicht in der Anfrage vorhanden ist.
      • outcome (String): Mögliche Werte sind:
        • "RATE_LIMIT_THRESHOLD_CONFORM" bei Unterschreitung des konfigurierten Ratengrenzwertes.
        • "RATE_LIMIT_THRESHOLD_EXCEED" bei Überschreitung des konfigurierten Ratengrenzwertes.
        • "BAN_THRESHOLD_EXCEED" bei Überschreitung des konfigurierten Sperrgrenzwerts.
    • outcome (String): das Ergebnis der Ausführung der konfigurierten Aktion, z. B. ACCEPT, DENY, REDIRECT, EXEMPT.
    • preconfiguredExprIds (String): Die IDs aller vorkonfigurierten WAF-Regelausdrücke, die die Regel ausgelöst haben.
    • threatIntelligence: Informationen über die Liste(n) mit übereinstimmenden IP-Adressen gegebenenfalls von Threat Intelligence.
      • categories: (String) die Namen der übereinstimmenden IP-Adressenlisten.
  • previewSecurityPolicy: enthält nur Daten, wenn bei einer Anfrage eine für die Vorschau konfigurierte Regel gilt (nur vorhanden, wenn eine Vorschauregel Vorrang vor der erzwungenen Regel gehabt hat).
    • name (String): Der Name der Sicherheitsrichtlinie
    • priority (Zahl): Die Priorität der Abgleichsregel in der Sicherheitsrichtlinie.
    • configuredAction (String): Der Name der konfigurierten Aktion in der Abgleichsregel, z. B.ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302, THROTTLE (für eine Drosselungsregel), RATE_BASED_BAN (für eine ratenbasierte Sperrregel).
    • rateLimitAction: Informationen zur Ratenbegrenzungsaktion, wenn eine Drosselungsregel oder ratenbasierte Sperrregel abgeglichen wird.
      • key (String): Schlüsselwert für Ratenbegrenzung (bis zu 32 Byte). Dieses Feld wird weggelassen, wenn der Schlüsseltyp ALL ist oder der Schlüsseltyp HTTP-HEADER oder HTTP-COOKIE ist und der angegebene Header oder das angegebene Cookie nicht in der Anfrage vorhanden ist.
      • outcome (String): Mögliche Werte sind:
        • "RATE_LIMIT_THRESHOLD_CONFORM" bei Unterschreitung des konfigurierten Ratengrenzwertes.
        • "RATE_LIMIT_THRESHOLD_EXCEED" bei Überschreitung des konfigurierten Ratengrenzwertes.
        • "BAN_THRESHOLD_EXCEED" bei Überschreitung des konfigurierten Sperrgrenzwerts.
    • outcome (String): das Ergebnis der Ausführung der konfigurierten.
    • outcome (String): das Ergebnis der Ausführung der konfigurierten Aktion, z. B. ACCEPT, DENY, REDIRECT, EXEMPT.
    • preconfiguredExprIds (String): Die IDs aller vorkonfigurierten WAF-Regelausdrücke, die die Regel ausgelöst haben.
    • threatIntelligence: Informationen über die Liste(n) mit übereinstimmenden IP-Adressen gegebenenfalls von Threat Intelligence.
      • categories: (String) die Namen der übereinstimmenden IP-Adressenlisten.
  • enforcedEdgeSecurityPolicy (Vorschau): Die erzwungene Edge-Sicherheitsrichtlinienregel.
    • name (String): Der Name der Sicherheitsrichtlinie.
    • priority (Zahl): Die Priorität der Abgleichsregel in der Sicherheitsrichtlinie.
    • configuredAction (String): der Name der konfigurierten Aktion in der Abgleichsregel, z. B. ALLOW, DENY.
    • outcome (String): das Ergebnis der Ausführung der konfigurierten Aktion, z. B. ACCEPT, DENY.
  • previewEdgeSecurityPolicy (Vorschau): Enthält Werte, wenn eine Anfrage mit einer Edge-Sicherheitsrichtlinienregel für die Vorschau übereinstimmt (nur vorhanden, wenn eine Vorschauregel Vorrang vor der erzwungenen Regel hat)
    • name (String): Der Name der Sicherheitsrichtlinie.
    • priority (Zahl): Die Priorität der Abgleichsregel in der Sicherheitsrichtlinie.
    • configuredAction (String): der Name der konfigurierten Aktion in der Abgleichsregel, z. B. ALLOW, DENY.
    • outcome (String): das Ergebnis der Ausführung der konfigurierten Aktion, z. B. ACCEPT, DENY.

Logs ansehen

Sie können die Logs für eine Google Cloud Armor-Sicherheitsrichtlinie nur in der Google Cloud Console aufrufen.

Console

  1. Rufen Sie in der Google Cloud Console die Google Cloud Armor-Richtlinien auf.

    Zu den Google Cloud Armor-Richtlinien

  2. Klicken Sie auf Aktionen.

  3. Wählen Sie Logs ansehen aus.

Daten-Logging anfordern

Bei Verwendung mit Google Cloud Armor hat jsonPayload die folgenden zusätzlichen ein:

  • securityPolicyRequestData: Anfragebezogene Daten, die von einer Sicherheitsrichtlinie verarbeitet werden, unabhängig davon, welche Regel schließlich übereinstimmt.
    • recaptchaActionToken: Daten, die sich auf ein reCAPTCHA-Aktionstoken beziehen.
      • score (float): ein in ein reCAPTCHA-Aktionstoken. Nur vorhanden, wenn ein reCAPTCHA Das Aktionstoken wurde an die Anfrage angehängt und wurde erfolgreich decodiert basierend auf einer Sicherheitsrichtlinienregel. Weitere Informationen finden Sie unter reCAPTCHA-Bewertung erzwingen.
    • recaptchaSessionToken: Daten, die sich auf ein reCAPTCHA-Sitzungstoken beziehen.
      • score (float): ein in ein reCAPTCHA-Sitzungstoken. Nur vorhanden, wenn ein reCAPTCHA Sitzungstoken an die Anfrage angehängt und erfolgreich decodiert basierend auf einer Sicherheitsrichtlinienregel.
    • tlsJa3Fingerprint: ein JA3-TTL-/SSL-Fingerabdruck, wenn der Client eine Verbindung herstellt mit HTTPS, HTTP/2 oder HTTP/3. Nur vorhanden, wenn der Fingerabdruck und es gibt eine Sicherheitsrichtlinie, die die Anfrage bewertet Dabei spielt es keine Rolle, ob ein Ausdruck in der Richtlinie mit dem Antrag übereinstimmt.

Logbeispiele

Das folgende Beispiel zeigt Logdetails für eine Drosselungsregel, die eine Anfrage blockiert:

jsonPayload: {
 enforcedSecurityPolicy: {
  priority: 100
  name: "sample-prod-policy"
  configuredAction: "THROTTLE"
  outcome: "DENY"
  rateLimitAction: {
    key:"sample-key"
    outcome:"RATE_LIMIT_THRESHOLD_EXCEED"
  }
 }
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:16:48.185763Z"

Das folgende Beispiel zeigt Logdetails für eine ratenbasierte Sperrregel, die eine Anfrage blockiert:

jsonPayload: {
 @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
 enforcedSecurityPolicy: {
  priority: 150
  name: "sample-prod-policy"
  outcome: "DENY"
  configuredAction: "RATE_BASED_BAN"
  rateLimitAction: {
    key:"sample-key"
    outcome:"BAN_THRESHOLD_EXCEED"
  }
 }
 statusDetails: "denied_by_security_policy"
}
httpRequest: {8}
resource: {2}
timestamp: "2021-03-17T19:27:17.393244Z"

Nächste Schritte

Fehlerbehebung bei Google Cloud Armor