Usa il logging delle richieste

I log per richiesta di Google Cloud Armor per il nome della policy di sicurezza, la priorità della regola di corrispondenza, l'azione associata e le informazioni correlate vengono registrati nell'ambito del logging per i bilanciatori del carico delle applicazioni esterni e i bilanciatori del carico di rete proxy esterni. Il logging per i nuovi servizi di backend è disabilitato per impostazione predefinita, quindi devi abilitarlo per registrare informazioni di logging complete per Cloud Armor.

I log di Cloud Armor fanno parte dei log di Cloud Load Balancing. Ciò significa che la generazione dei log di Cloud Armor è soggetta alla frequenza di campionamento dei log configurata per il bilanciatore del carico. Se riduci la frequenza di campionamento per il bilanciatore del carico, i log delle richieste di Cloud Armor vengono campionati a questa frequenza ridotta. Inoltre, se utilizzi il riferimento ai servizi tra progetti, i log vengono generati nel progetto host o di servizio che include il frontend e la mappa URL del bilanciatore del carico. Pertanto, consigliamo agli amministratori del progetto frontend di concedere le autorizzazioni per leggere i log e le metriche agli amministratori del progetto backend.

Utilizzando la registrazione, puoi visualizzare ogni richiesta valutata da una policy di sicurezza di Cloud Armor e il risultato o l'azione intrapresa in base alla regola corrispondente con priorità più alta. Ad esempio, per visualizzare le richieste rifiutate, 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 nella pagina Logging e monitoraggio del bilanciatore del carico delle applicazioni esterno regionale. Per il bilanciatore del carico di rete proxy esterno, puoi utilizzare i comandi Google Cloud CLI elencati nella pagina precedente Logging e monitoraggio del bilanciatore del carico delle applicazioni esterno. Non puoi abilitare il logging per il bilanciatore del carico di rete proxy esterno utilizzando la console Cloud de Confiance .

Inoltre, puoi impostare diversi livelli di logging per valutare se i criteri di sicurezza e le relative regole funzionano come previsto. Per informazioni complete, consulta Logging dettagliato.

Voci di log delle policy di sicurezza

Le seguenti voci di log in Esplora log riguardano la registrazione delle regole e delle policy di sicurezza di Cloud Armor. Le voci includono la seguente struttura in jsonPayload. I dettagli della richiesta HTTP vengono visualizzati nel messaggio httpRequest.

  • statusDetails: una descrizione testuale del codice di risposta.
    • redirected_by_security_policy: la richiesta è stata reindirizzata da una regola di reindirizzamento, GOOGLE_RECAPTCHA o EXTERNAL_302.
    • denied_by_security_policy: una richiesta è stata negata dal bilanciamento del carico a causa di una policy di sicurezza Cloud Armor.
    • body_denied_by_security_policy: un corpo della richiesta è stato negato dal bilanciatore del carico a causa di una policy di sicurezza Cloud Armor.
  • enforcedSecurityPolicy: la regola della policy di sicurezza che è stata applicata.
    • name: il nome della policy di sicurezza.
    • priority: una priorità numerica della regola di corrispondenza nella policy di sicurezza.
    • configuredAction: il nome dell'azione configurata nella regola di corrispondenza, ad esempio ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302, THROTTLE (per una regola di limitazione) o RATE_BASED_BAN (per una regola di ban basata sulla frequenza).
    • rateLimitAction: informazioni sull'azione di limitazione della frequenza quando viene trovata una corrispondenza con una regola di limitazione o di esclusione basata sulla frequenza.
      • key: valore della chiave di limite di frequenza (fino a 36 byte). Questo campo viene omesso se il tipo di chiave è ALL o se il tipo di chiave è HTTP-HEADER o HTTP-COOKIE e l'intestazione o il cookie specificato non è presente nella richiesta.
      • outcome: i valori possibili sono i seguenti:
        • "RATE_LIMIT_THRESHOLD_CONFORM" se al di sotto della soglia di limitazione di frequenza configurata.
        • "RATE_LIMIT_THRESHOLD_EXCEED" se supera la soglia di limitazione di frequenza configurata.
        • "BAN_THRESHOLD_EXCEED" se supera la soglia di esclusione configurata.
    • outcome: il risultato dell'esecuzione dell'azione configurata, ad esempio ACCEPT, DENY, REDIRECT, EXEMPT.
    • preconfiguredExprIds: gli ID di tutte le espressioni delle regole WAF preconfigurate che hanno attivato la regola.
    • threatIntelligence: informazioni sugli elenchi di indirizzi IP corrispondenti di Threat Intelligence, se applicabile.
      • categories: i nomi degli elenchi di indirizzi IP corrispondenti.
  • previewSecurityPolicy: compilato se una richiesta corrisponde a una regola configurata per l'anteprima (presente solo quando una regola di anteprima avrebbe avuto la priorità rispetto alla regola applicata).
    • name: il nome della policy di sicurezza
    • priority: una priorità numerica della regola di corrispondenza nella policy di sicurezza.
    • configuredAction: il nome dell'azione configurata nella regola di corrispondenza, ad esempio ALLOW, DENY, GOOGLE_RECAPTCHA, EXTERNAL_302, THROTTLE (per una regola di limitazione) o RATE_BASED_BAN (per una regola di ban basata sulla frequenza).
    • rateLimitAction: informazioni sull'azione di limitazione della frequenza quando viene trovata una corrispondenza con una regola di limitazione o di esclusione basata sulla frequenza.
      • key: valore della chiave di limite di frequenza (fino a 36 byte). Questo campo viene omesso se il tipo di chiave è ALL o se il tipo di chiave è HTTP-HEADER o HTTP-COOKIE e l'intestazione o il cookie specificato non è presente nella richiesta.
      • outcome: i valori possibili sono i seguenti:
        • "RATE_LIMIT_THRESHOLD_CONFORM" se al di sotto della soglia di limitazione di frequenza configurata.
        • "RATE_LIMIT_THRESHOLD_EXCEED" se supera la soglia di limitazione di frequenza configurata.
        • "BAN_THRESHOLD_EXCEED" se supera la soglia di esclusione configurata.
    • outcome: il risultato dell'esecuzione dell'azione configurata, ad esempio ACCEPT, DENY, REDIRECT, EXEMPT.
    • preconfiguredExprIds: gli ID di tutte le espressioni delle regole WAF preconfigurate che hanno attivato la regola.
    • threatIntelligence: informazioni sugli elenchi di indirizzi IP corrispondenti di Threat Intelligence, se applicabile.
      • categories: i nomi degli elenchi di indirizzi IP corrispondenti.
  • enforcedEdgeSecurityPolicy: la regola della policy di sicurezza perimetrale che è stata applicata.
    • name: il nome della policy di sicurezza.
    • priority: una priorità numerica della regola di corrispondenza nella policy di sicurezza.
    • configuredAction: il nome dell'azione configurata nella regola di corrispondenza, ad esempio ALLOW, DENY.
    • outcome: il risultato dell'esecuzione dell'azione configurata, ad esempio ACCEPT, DENY.
  • previewEdgeSecurityPolicy: compilato se una richiesta corrisponde a una regola della policy di sicurezza perimetrale configurata per l'anteprima (presente solo quando una regola di anteprima avrebbe avuto la priorità sulla regola applicata).
    • name: il nome della policy di sicurezza.
    • priority: una priorità numerica della regola di corrispondenza nella policy di sicurezza.
    • configuredAction: il nome dell'azione configurata nella regola di corrispondenza, ad esempio ALLOW, DENY.
    • outcome: il risultato dell'esecuzione dell'azione configurata, ad esempio ACCEPT, DENY.

Visualizzazione dei log

Puoi visualizzare i log per una policy di sicurezza Cloud Armor solo nella consoleCloud de Confiance .

Console

  1. Nella console Cloud de Confiance , vai a Policy Cloud Armor.

    Vai alle policy di Cloud Armor

  2. Fai clic su Azioni.

  3. Seleziona Visualizza log.

Richiedere il logging dei dati

Se utilizzato con Cloud Armor, jsonPayload ha il seguente campo aggiuntivo:

  • securityPolicyRequestData: dati relativi alla richiesta durante l'elaborazione da parte di una policy di sicurezza, indipendentemente dalla regola che verrà abbinata alla fine.
    • recaptchaActionToken: dati relativi a un token di azione reCAPTCHA.
      • score: un punteggio di legittimità dell'utente incorporato in un token di azione reCAPTCHA. Presente solo quando un token di azione reCAPTCHA è allegato alla richiesta e viene decodificato correttamente in base a una regola del criterio di sicurezza. Per ulteriori informazioni, consulta Imponi la valutazione reCAPTCHA.
    • recaptchaSessionToken: dati relativi a un token di sessione reCAPTCHA.
      • score: un punteggio di legittimità dell'utente incorporato in un token di sessione reCAPTCHA. Presente solo quando un token di sessione reCAPTCHA è allegato alla richiesta e viene decodificato correttamente in base a una regola del criterio di sicurezza.
    • userIpInfo: i dati relativi all'utilizzo dell'IP utente.
      • source: un campo che in genere è l'intestazione da cui è stato risolto l'IP utente.
      • ipAddress: l'indirizzo IP risolto dal campo di origine.
    • remoteIpInfo: i dati relativi all'indirizzo IP client della richiesta.
      • ipAddress: l'indirizzo IP client della richiesta.
      • region_code: il codice paese o regione di due lettere per l'indirizzo IP.
      • asn: il numero di sistema autonomo (ASN) di cinque cifre corrispondente all'indirizzo IP.
    • tlsJa4Fingerprint: un'impronta TTL/SSL JA4 se il client si connette utilizzando HTTPS, HTTP/2 o HTTP/3. Presente solo se l'impronta è disponibile e se esiste una policy di sicurezza che valuta la richiesta (indipendentemente dal fatto che un'espressione nella policy corrisponda alla richiesta).
    • tlsJa3Fingerprint: un'impronta JA3 TTL/SSL se il client si connette utilizzando HTTPS, HTTP/2 o HTTP/3. Presente solo se l'impronta è disponibile e se esiste una policy di sicurezza che valuta la richiesta (indipendentemente dal fatto che un'espressione nella policy corrisponda alla richiesta).

Esempi di log

Di seguito è riportato un esempio di dettagli del log per una regola di limitazione che blocca una 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 del log per una regola di divieto basata sulla frequenza 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