Pemicu Eventarc menyatakan minat Anda pada peristiwa atau rangkaian peristiwa tertentu, sehingga Anda dapat merekam dan menindaklanjuti peristiwa tertentu.
Pemicu Eventarc dengan type=google.cloud.audit.log.v1.written
mengirim permintaan ke tujuan saat log audit dibuat yang cocok dengan
kriteria filter pemicu. Kecocokan dibuat pada nilai berikut dari entri log audit:
serviceName
: layanan yang menulis log auditmethodName
: operasi yang sedang diauditresourceName
: resource yang sedang diaudit
Untuk mengetahui daftar layanan yang menyediakan log audit, lihat
Google Cloud layanan dengan log audit. Google Cloud Anda
juga dapat mengambil nilai filter peristiwa yang berlaku untuk jenis peristiwa google.cloud.audit.log.v1.written
.
Mengidentifikasi filter peristiwa
Untuk mengidentifikasi filter peristiwa yang tepat yang diperlukan untuk membuat pemicu, buat peristiwa yang ingin Anda ambil, lalu lihat entri Cloud Audit Logs yang sesuai. Perhatikan bahwa data dari entri log dapat dipisahkan dan didistribusikan ke beberapa entri.
Pastikan Anda telah mengaktifkan jenis log audit akses data untuk layanan Anda.
Perhatikan bahwa layanan apa pun yang mengaktifkan audit secara default tidak tercantum.
Di tabel utama pada halaman Log Audit, pilih layanan Google Cloud.
Di tab Log Types, centang kotak Admin Read, Data Read, dan Data Write, lalu klik Save.
Lakukan operasi yang ingin Anda buat filter peristiwanya dan buat entri log audit. Misalnya, simpan file di bucket Cloud Storage.
Di konsol Google Cloud , buka Logs Explorer.
Di panel Query builder, buat dan jalankan kueri untuk memfilter entri log dan mengambil hasilnya. Contoh:
resource.type="gcs_bucket" resource.labels.bucket_name="eventarc-bucket"
Untuk mengetahui detail selengkapnya tentang cara membuat kueri untuk mengambil dan menyaring log, lihat Membuat kueri menggunakan bahasa kueri Logging.
Untuk melihat detail lengkap satu entri log, klik panah peluas (▸) di awal entri.
Kolom
protoPayload
membedakan entri log audit dari entri log lainnya. Pada contoh berikut, beberapa bagian entri log dihilangkan, dan beberapa kolom ditandai:{ 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" }
Informasi berikut dapat digunakan untuk memverifikasi isi entri log audit ini:
Kolom
protoPayload.@type
adalahtype.googleapis.com/google.cloud.audit.AuditLog
.Kolom
logName
mencakup domaincloudaudit.googleapis.com
.
Kolom
protoPayload.serviceName
adalah layanan yang menulis log audit.Kolom
protoPayload.methodName
adalah operasi yang sedang diaudit.Kolom
protoPayload.resourceName
adalah resource yang sedang diaudit.
Untuk mengetahui detail selengkapnya tentang cara menemukan informasi dalam entri log audit, lihat Memahami log audit.
Mengambil nilai filter peristiwa
Anda dapat menggunakan perintah
gcloud eventarc audit-logs-provider
untuk menjelajahi dan mencantumkan nilai serviceName
dan methodName
penyedia untuk
jenis peristiwa google.cloud.audit.log.v1.written
.
Untuk mencantumkan nama layanan, jalankan perintah berikut:
gcloud eventarc audit-logs-provider service-names list
Tindakan ini menampilkan semua nilai atribut serviceName
untuk jenis peristiwa google.cloud.audit.log.v1.written
.
Untuk mencantumkan nama metode untuk layanan tertentu, jalankan perintah berikut:
gcloud eventarc audit-logs-provider method-names list \ --service-name=SERVICE_NAME
Ganti SERVICE_NAME
dengan nilai serviceName
—misalnya, bigquery.googleapis.com
.
Contoh pemicu Eventarc
Contoh berikut membuat pemicu bernama cal-workflows-trigger
untuk tujuan
Workflows. Pemicu memfilter log audit yang ditulis oleh bigquery.googleapis.com
dan untuk operasi yang diidentifikasi sebagai google.cloud.bigquery.v2.JobService.InsertJob
:
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=google.cloud.bigquery.v2.JobService.InsertJob" \ --service-account=${TRIGGER_SA}@${PROJECT_ID}.iam.gserviceaccount.com
Contoh berikut membuat pemicu bernama cal-run-trigger
untuk tujuan
Cloud Run. Pemicu memfilter log audit yang ditulis oleh workflows.googleapis.com
dan untuk operasi yang diidentifikasi sebagai 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
Entri log audit yang terlalu besar
Cloud Logging membagi entri log audit yang lebih besar dari
batas penggunaan dan mendistribusikan data yang ada
dalam entri log audit asli ke beberapa entri split. Jika entri log
berisi kolom split
, maka entri tersebut adalah hasil pemisahan entri log asli yang lebih besar. Kolom split
adalah objek LogSplit
yang berisi
informasi yang diperlukan untuk mengidentifikasi entri pemisahan terkait.
Setiap entri yang dibagi memiliki protoPayload
yang menyertakan nilai serviceName
,
methodName
, dan resourceName
yang sama untuk membantu memfilter peristiwa
Cloud Audit Logs. Pemicu Eventarc mengirimkan peristiwa untuk setiap entri yang dibagi.
Jika Anda memiliki entri log audit yang dibagi menjadi beberapa entri log, Anda
dapat memfilter kolom apa pun di LogEntry
. Misalnya, jika Anda memerlukan
entri pertama dalam serangkaian entri log yang dibagi, Anda dapat menjalankan perintah
gcloud CLI berikut, menggunakan split.index=0
untuk menunjukkan posisi
entri pertama:
gcloud logging read "split.index=0"
Untuk mengetahui informasi selengkapnya, termasuk cara mengenali entri dan contoh kueri, lihat Memisahkan entri log audit.