Utilizzo del logging delle richieste

Log per richiesta di Google Cloud Armor per il nome del criterio di sicurezza, la priorità delle regole di corrispondenza l'azione associata e le relative informazioni vengono registrate nell'ambito del logging per bilanciatori del carico delle applicazioni esterni e bilanciatori del carico di rete proxy esterni. Logging per i nuovi servizi di backend sono disabilitati per impostazione predefinita, quindi devi abilitare il logging per registrare le informazioni di logging complete per Google Cloud Armor.

I log di Google Cloud Armor fanno parte dei log di Cloud Load Balancing. Ciò significa che la generazione dei log di Google Cloud Armor è soggetta al log e la frequenza di campionamento configurata per il bilanciatore del carico. Se riduci la frequenza di campionamento per il bilanciatore del carico, i log delle richieste di Google Cloud Armor sono campionati ha ridotto il tasso. Inoltre, se utilizzi riferimenti di servizi tra progetti, vengono generati nell'ambito del progetto host o di servizio che include la mappa URL e il frontend del bilanciatore del carico. Pertanto, consigliamo gli amministratori del progetto frontend concedono le autorizzazioni per leggere i log agli amministratori del progetto di backend.

Utilizzando il logging, puoi visualizzare ogni richiesta valutata da Google Cloud Armor politiche di sicurezza e il risultato o l'azione intrapresa. Ad esempio, per visualizzare i contenuti richieste, puoi utilizzare filtri come jsonPayload.enforcedSecurityPolicy.outcome="DENY" o jsonPayload.statusDetails="denied_by_security_policy".

Per abilitare il logging per un bilanciatore del carico delle applicazioni esterno, consulta Logging e monitoraggio del bilanciatore del carico delle applicazioni esterno Per il bilanciatore del carico di rete proxy esterno, puoi utilizzare Google Cloud CLI come elencato nella precedente sezione Logging e monitoraggio del bilanciatore del carico delle applicazioni esterno . Impossibile abilitare il logging per il bilanciatore del carico di rete proxy esterno utilizzando la console Google Cloud.

Inoltre, puoi impostare diversi livelli di logging per valutare se che i criteri di sicurezza e le relative regole funzionino come previsto. Per completamento consulta la sezione Logging dettagliato.

Voci di log dei criteri di sicurezza

Le seguenti voci di log in Esplora log si riferiscono a Google Cloud Armor criteri di sicurezza e logging delle regole. Le voci includono la seguente struttura a jsonPayload. I dettagli della richiesta HTTP vengono visualizzati nel messaggio httpRequest.

  • statusDetails (stringa): una descrizione testuale del codice di risposta.
    • redirected_by_security_policy: la richiesta è stata reindirizzata da un reindirizzamento regolabile, GOOGLE_RECAPTCHA o EXTERNAL_302.
    • denied_by_security_policy: una richiesta è stata rifiutata dal bilanciatore del carico a causa di un criterio di sicurezza di Google Cloud Armor.
    • body_denied_by_security_policy: il corpo di una richiesta è stato rifiutato dal carico a causa di un criterio di sicurezza di Google Cloud Armor.
  • enforcedSecurityPolicy: la regola del criterio di sicurezza precedente in modo forzato.
    • name (stringa): il nome del criterio di sicurezza.
    • priority (numero): la priorità della regola corrispondente nell'elenco di sicurezza .
    • adaptiveProtection: informazioni sul deployment automatico Regola di Adaptive Protection, se applicabile.
      • autoDeployAlertId: ID avviso degli eventi che Adaptive Protection rilevato.
    • configuredAction (stringa): il nome dell'azione configurata nella regola di corrispondenza, ad esempio ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302, THROTTLE (per una regola di limitazione), RATE_BASED_BAN (per una regola di esclusione basata sulla frequenza).
    • rateLimitAction: informazioni sull'azione per la limitazione di frequenza quando viene abbinata la regola di limitazione o la regola di esclusione basata sulla tariffa.
      • key (stringa): valore chiave per il limite di frequenza (fino a 32 byte). Questo campo è omesso se il tipo di chiave è ALL o se il tipo di chiave è HTTP-HEADER o HTTP-COOKIE e l'intestazione o il cookie specificati non sono presenti nella richiesta.
      • outcome (stringa). I valori possibili sono i seguenti:
        • "RATE_LIMIT_THRESHOLD_CONFORM" se è inferiore al limite di frequenza configurato soglia.
        • "RATE_LIMIT_THRESHOLD_EXCEED" se si supera il limite di frequenza configurato soglia.
        • "BAN_THRESHOLD_EXCEED" se al di sopra della soglia di esclusione configurata.
    • outcome (stringa): il risultato dell'esecuzione del comando configurato azione, ad esempio ACCEPT, DENY, REDIRECT, EXEMPT.
    • preconfiguredExprIds (stringa): gli ID di tutte le regole WAF preconfigurate che hanno attivato la regola.
    • threatIntelligence: informazioni sugli elenchi di indirizzi IP corrispondenti da Threat Intelligence, se applicabile.
      • categories: (stringa) i nomi degli elenchi di indirizzi IP corrispondenti.
  • previewSecurityPolicy: compilata se una richiesta corrisponde a una regola configurata per anteprima (presente solo quando una regola di anteprima avrebbe avuto la priorità sui una regola applicata in modo forzato).
    • name (stringa): il nome del criterio di sicurezza
    • priority (numero): la priorità della regola corrispondente nell'elenco di sicurezza .
    • configuredAction (stringa): il nome dell'azione configurata nella regola di corrispondenza, ad esempio ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302, THROTTLE (per una regola di limitazione), RATE_BASED_BAN (per una regola di esclusione basata sulla frequenza).
    • rateLimitAction: informazioni sull'azione per la limitazione di frequenza quando viene abbinata la regola di limitazione o la regola di esclusione basata sulla tariffa.
      • key (stringa): valore chiave per il limite di frequenza (fino a 32 byte). Questo campo è omesso se il tipo di chiave è ALL o se il tipo di chiave è HTTP-HEADER o HTTP-COOKIE e l'intestazione o il cookie specificati non sono presenti nella richiesta.
      • outcome (stringa). I valori possibili sono i seguenti:
        • "RATE_LIMIT_THRESHOLD_CONFORM" se è inferiore al limite di frequenza configurato soglia.
        • "RATE_LIMIT_THRESHOLD_EXCEED" se si supera il limite di frequenza configurato soglia.
        • "BAN_THRESHOLD_EXCEED" se al di sopra della soglia di esclusione configurata.
    • outcome (stringa): il risultato dell'esecuzione della configurazione configurata.
    • outcome (stringa): il risultato dell'esecuzione del comando configurato azione, ad esempio ACCEPT, DENY, REDIRECT, EXEMPT.
    • preconfiguredExprIds (stringa): gli ID di tutte le regole WAF preconfigurate che hanno attivato la regola.
    • threatIntelligence: informazioni sugli elenchi di indirizzi IP corrispondenti da Threat Intelligence, se applicabile.
      • categories: (stringa) i nomi degli elenchi di indirizzi IP corrispondenti.
  • enforcedEdgeSecurityPolicy (anteprima): la regola del criterio di sicurezza perimetrale applicata.
    • name (stringa): il nome del criterio di sicurezza.
    • priority (numero): la priorità della regola corrispondente nell'elenco di sicurezza .
    • configuredAction (stringa): il nome dell'azione configurata nella regola di corrispondenza, ad esempio ALLOW, DENY.
    • outcome (stringa): il risultato dell'esecuzione del comando configurato dell'azione, ad esempio ACCEPT, DENY.
  • previewEdgeSecurityPolicy (anteprima): compilata se una richiesta corrisponde a una regola del criterio di sicurezza perimetrale configurata per anteprima (presente solo quando una regola di anteprima avrebbe avuto la priorità sui una regola applicata in modo forzato).
    • name (stringa): il nome del criterio di sicurezza.
    • priority (numero): la priorità della regola corrispondente nell'elenco di sicurezza .
    • configuredAction (stringa): il nome dell'azione configurata nella regola di corrispondenza, ad esempio ALLOW, DENY.
    • outcome (stringa): il risultato dell'esecuzione del comando configurato dell'azione, ad esempio ACCEPT, DENY.

Visualizzazione dei log

Puoi visualizzare i log per un criterio di sicurezza di Google Cloud Armor solo nel nella console Google Cloud.

Console

  1. Nella console Google Cloud, vai a Criteri di Google Cloud Armor.

    Vai ai criteri di Google Cloud Armor

  2. Fai clic su Azioni.

  3. Seleziona Visualizza log.

Richiedi il logging dei dati

Se utilizzato con Google Cloud Armor, jsonPayload offre i seguenti componenti aggiuntivi campo:

  • securityPolicyRequestData: dati relativi alla richiesta mentre vengono elaborati da un criterio di sicurezza, indipendentemente dalla regola che alla fine corrisponde.
    • recaptchaActionToken: dati relativi a un token di azione reCAPTCHA.
      • score (float): un punteggio di legittimità dell'utente incorporato in un Token di azione reCAPTCHA. Presente solo quando è presente un reCAPTCHA il token di azione è collegato alla richiesta ed è stato decodificato correttamente in base a una regola del criterio di sicurezza. Per ulteriori informazioni, vedi Applica la valutazione reCAPTCHA.
    • recaptchaSessionToken: dati relativi a un token di sessione reCAPTCHA.
      • score (float): un punteggio di legittimità dell'utente incorporato in un token di sessione reCAPTCHA. Presente solo quando è presente un reCAPTCHA il token di sessione è collegato alla richiesta ed è stato decodificato correttamente in base a una regola del criterio di sicurezza.
    • tlsJa3Fingerprint: un'impronta digitale TTL/SSL JA3 se il client si connette utilizzando HTTPS, HTTP/2 o HTTP/3. È presente solo se l'impronta è disponibile ed esiste un criterio di sicurezza che valuta la richiesta (indipendentemente dal fatto che un'espressione nel criterio corrisponda alla richiesta).

Esempi di log

Di seguito è riportato un esempio di dettagli di log per una regola di limitazione che blocca un richiesta:

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"

Di seguito è riportato un esempio di dettagli di log per una regola di esclusione basata sulla tariffa che blocca una richiesta:

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"

Passaggi successivi

Scopri di più sulla risoluzione dei problemi di Google Cloud Armor.