Un trigger Eventarc dichiara il tuo interesse per un determinato evento o set di eventi, consentendoti di acquisire e agire su eventi specifici. Gli eventi Eventarc con type=google.cloud.audit.log.v1.written
inviano richieste al tuo flusso di lavoro o servizio quando viene creato un audit log che corrisponde ai criteri di filtro dell'attivatore. Le corrispondenze vengono effettuate sui seguenti valori dalla voce di log di controllo:
serviceName
: il servizio che ha scritto l'audit logmethodName
: l'operazione in fase di controlloresourceName
: risorsa oggetto di controllo
Per un elenco dei servizi Google Cloud che forniscono audit log, consulta Servizi Google con audit log.
Per un elenco degli eventi dei log di controllo supportati da Eventarc, inclusi i valori serviceName
e methodName
, consulta
Eventi supportati da Eventarc.
Identifica i filtri degli eventi
Per identificare i filtri eventi esatti necessari per creare un trigger, genera l'evento che vuoi acquisire, quindi visualizza la voce Cloud Audit Logs corrispondente. Tieni presente che i dati di una voce di log possono essere suddivisi e distribuiti tra più voci.
Assicurati di aver abilitato i tipi di audit log di accesso ai dati per il tuo servizio.
Tieni presente che tutti i servizi per cui è abilitato il controllo per impostazione predefinita non sono elencati.
Nella tabella principale della pagina Audit log, seleziona un servizio Google Cloud dalla colonna Titolo.
Nella scheda Tipo di log, seleziona le caselle di controllo Lettura amministratore, Lettura dati e Scrittura dati, quindi fai clic su Salva.
Esegui l'operazione per cui vuoi creare un filtro eventi e genera una voce di log di controllo. Ad esempio, archivia un file in un bucket Cloud Storage.
Nella console Google Cloud, vai a Esplora log.
Nel riquadro Query builder, crea ed esegui una query per filtrare le voci di log e recuperare i risultati. Ad esempio:
resource.type="gcs_bucket" resource.labels.bucket_name="eventarc-bucket"
Per maggiori dettagli su come creare query per recuperare e perfezionare i log, consulta Creazione di query di log.
Per visualizzare i dettagli completi di una voce di log, fai clic sulla freccia di espansione (▸) all'inizio della voce.
Il campo
protoPayload
distingue una voce di log di controllo da altre voci di log. Nell'esempio seguente, alcune parti della voce di log vengono omesse e alcuni campi vengono evidenziati:{ protoPayload:{ @type:"type.googleapis.com/google.cloud.audit.AuditLog", status:{}, authenticationInfo:{}, requestMetadata:{}, serviceName:"storage.googleapis.com", methodName:"storage.objects.create", authorizationInfo:[], resourceName:"projects/_/buckets/eventarc-bucket/objects/random.txt", resourceLocation:{} }, insertId:"il9evleafpdk", resource:{ type:"gcs_bucket", labels:{ project_id:"cloud-run-test", location:"us-central1", bucket_name:"eventarc-bucket" } }, timestamp:"2021-03-05T15:55:20.754688805Z", severity:"INFO", logName:"projects/cloud-run-test/logs/cloudaudit.googleapis.com%2Fdata_access", receiveTimestamp:"2021-03-05T15:55:20.884984611Z" }
Per verificare i contenuti di questa voce di log di controllo possono essere utilizzate le seguenti informazioni:
Il campo
protoPayload.@type
ètype.googleapis.com/google.cloud.audit.AuditLog
.Il campo
logName
include il dominiocloudaudit.googleapis.com
.
Il campo
protoPayload.serviceName
è il servizio che ha scritto l'audit log.Il campo
protoPayload.methodName
è l'operazione che viene controllata.Il campo
protoPayload.resourceName
è la risorsa che viene controllata.
Per maggiori dettagli su come trovare le informazioni in una voce del log di controllo, vedi Informazioni sui log di controllo.
Esempi di trigger Eventarc
L'esempio seguente crea un trigger denominato cal-workflows-trigger
per una destinazione di Workflows. I filtri trigger per gli audit log scritti da bigquery.googleapis.com
e per l'operazione identificati come jobservice.jobcompleted
:
gcloud eventarc triggers create cal-workflows-trigger \ --location=us-central1 \ --destination-workflow=my-workflow \ --destination-workflow-location=europe-west4 \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=bigquery.googleapis.com" \ --event-filters="methodName=jobservice.jobcompleted" \ --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com
L'esempio seguente crea un trigger denominato cal-run-trigger
per una destinazione Cloud Run. I filtri trigger per gli audit log scritti da workflows.googleapis.com
e per l'operazione identificati come google.cloud.workflows.v1.Workflows.GetWorkflow
:
gcloud eventarc triggers create cal-run-trigger \ --location=us-central1 \ --destination-run-service=helloworld-events \ --destination-run-region=us-central1 \ --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=workflows.googleapis.com" \ --event-filters="methodName=google.cloud.workflows.v1.Workflows.GetWorkflow" \ --event-filters="resourceName=projects/_/locations/us-central1/workflows/test-workflow" \ --service-account=${PROJECT_NUMBER}-compute@developer.gserviceaccount.com
Audit log di Cloud divisi
Cloud Logging suddivide singole voci di audit log più grandi di un limite di dimensione di 512 kB e distribuisce i dati contenuti nella voce di log di controllo originale in più voci di log split
. Il campo split
è un oggetto LogSplit
che contiene le informazioni necessarie per identificare le voci del log diviso correlate.
Ogni protoPayload
delle voci suddivise includerà gli stessi valori serviceName
,
methodName
e resourceName
per contribuire a filtrare gli eventi di Cloud Audit Logs. I trigger Eventarc distribuiranno un evento per ogni voce di log divisa.
Se disponi di una voce di log di controllo suddivisa in più voci, puoi filtrare in base a qualsiasi campo in LogEntry
. Ad esempio, se hai bisogno della prima voce di una voce di log divisa, puoi eseguire il comando dell'interfaccia a riga di comando gcloud seguente, utilizzando split.index
per indicare la posizione della voce nella serie di voci divisi. (La prima voce della suddivisione ha
indice 0):
gcloud logging read "split.index=0"
Per ulteriori informazioni sulle voci dei log suddivise, incluse le istruzioni su come riconoscere le voci e le query di esempio, consulta Suddividi le voci del log di controllo.