I log per richiesta di Google Cloud Armor per nome del criterio di sicurezza, priorità della regola di corrispondenza, azione associata e informazioni correlate vengono registrati nell'ambito della registrazione 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 Google Cloud Armor.
I log di Google Cloud Armor fanno parte dei log di Cloud Load Balancing. Ciò significa che la generazione di log di Google 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 Google 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 log e metriche agli amministratori del progetto backend.
Utilizzando la registrazione, puoi visualizzare ogni richiesta valutata da un criterio di sicurezza Google Cloud Armor e il risultato o l'azione intrapresa in base alla regola corrispondente con la 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"
.
Inoltre, puoi impostare diversi livelli di logging per valutare se i criteri di sicurezza e le relative regole funzionano come previsto. Per informazioni complete, vedi Logging dettagliato.
Voci di log dei criteri di sicurezza
Le seguenti voci di log in Esplora log riguardano la registrazione delle regole e dei criteri di sicurezza di Google 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
oEXTERNAL_302
.denied_by_security_policy
: una richiesta è stata negata dal bilanciatore del carico a causa di un criterio di sicurezza di Google Cloud Armor.body_denied_by_security_policy
: un corpo della richiesta è stato negato dal bilanciatore del carico a causa di un criterio di sicurezza Google 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.adaptiveProtection
: informazioni sulla regola di Adaptive Protection di cui è stato eseguito il deployment automatico, se applicabile.autoDeployAlertId
: l'ID avviso degli eventi rilevati da Adaptive Protection.
configuredAction
: il nome dell'azione configurata nella regola di corrispondenza, ad esempioALLOW
,DENY
,GOOGLE_RECAPTCHA
,EXTERNAL_302
,THROTTLE
(per una regola di limitazione) oRATE_BASED_BAN
(per una regola di ban basata sulla frequenza).rateLimitAction
: informazioni sull'azione di limite di frequenza quando viene trovata una corrispondenza con una regola di limitazione o di esclusione basata sulla frequenza.key
: valore della chiave del 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
oHTTP-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 del limite di frequenza configurato."RATE_LIMIT_THRESHOLD_EXCEED"
se supera la soglia del limite di frequenza configurato."BAN_THRESHOLD_EXCEED"
se supera la soglia di ban configurata.
outcome
: il risultato dell'esecuzione dell'azione configurata, ad esempioACCEPT
,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 Google Threat Intelligence, se applicabile.categories
: i nomi degli elenchi di indirizzi IP corrispondenti.
addressGroup
: informazioni sui gruppi di indirizzi corrispondenti, se applicabile.names
: i nomi dei gruppi di indirizzi 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 sicurezzapriority
: una priorità numerica della regola di corrispondenza nella policy di sicurezza.configuredAction
: il nome dell'azione configurata nella regola di corrispondenza, ad esempioALLOW
,DENY
,GOOGLE_RECAPTCHA
,EXTERNAL_302
,THROTTLE
(per una regola di limitazione) oRATE_BASED_BAN
(per una regola di ban basata sulla frequenza).rateLimitAction
: informazioni sull'azione di limite di frequenza quando viene trovata una corrispondenza con una regola di limitazione o di esclusione basata sulla frequenza.key
: valore della chiave del 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
oHTTP-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 del limite di frequenza configurato."RATE_LIMIT_THRESHOLD_EXCEED"
se supera la soglia del limite di frequenza configurato."BAN_THRESHOLD_EXCEED"
se supera la soglia di ban configurata.
outcome
: il risultato dell'esecuzione dell'azione configurata, ad esempioACCEPT
,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.
addressGroup
: informazioni sui gruppi di indirizzi corrispondenti, se applicabile.names
: i nomi dei gruppi di indirizzi corrispondenti.
enforcedEdgeSecurityPolicy
: la regola del criterio di sicurezza edge che è stata applicata.name
: il nome della policy di sicurezza.priority
: la priorità della regola corrispondente nel criterio di sicurezza.configuredAction
: il nome dell'azione configurata nella regola di corrispondenza, ad esempioALLOW
,DENY
.outcome
: il risultato dell'esecuzione dell'azione configurata, ad esempioACCEPT
,DENY
.
previewEdgeSecurityPolicy
: compilato se una richiesta corrisponde a una regola dei criteri di sicurezza perimetrale configurata per l'anteprima. La voce di logpreviewEdgeSecurityPolicy
è presente solo quando una regola di anteprima ha la precedenza 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 esempioALLOW
,DENY
.outcome
: il risultato dell'esecuzione dell'azione configurata, ad esempioACCEPT
,DENY
.
Visualizzazione dei log
Puoi visualizzare i log per un criterio di sicurezza Google Cloud Armor solo nella consoleGoogle Cloud .
Console
Nella console Google Cloud , vai a Criteri di Google Cloud Armor.
Fai clic su
Azioni.Seleziona Visualizza log.
Richiedere il logging dei dati
Se utilizzato con Google Cloud Armor, jsonPayload
ha il seguente campo aggiuntivo:
securityPolicyRequestData
: dati relativi alla richiesta durante l'elaborazione da parte di un criterio 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.
tlsJa4Fingerprint
: un'impronta JA4 TTL/SSL se il client si connette utilizzandoHTTPS
,HTTP/2
oHTTP/3
. Presente solo se l'impronta è disponibile e se esiste un criterio di sicurezza che valuta la richiesta (indipendentemente dal fatto che un'espressione nel criterio corrisponda alla richiesta).tlsJa3Fingerprint
: un'impronta JA3 TTL/SSL se il client si connette utilizzandoHTTPS
,HTTP/2
oHTTP/3
. Presente solo se l'impronta è disponibile e se 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 dei 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
- Scopri di più sulla risoluzione dei problemi di Google Cloud Armor.