Pemicu Eventarc mendeklarasikan 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 Google Cloud layanan yang menyediakan log audit, lihat
Google Cloud layanan dengan log audit. 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 rekam, lalu lihat entri Log Audit Cloud yang sesuai. Perhatikan bahwa data dari entri log mungkin dibagi dan didistribusikan di beberapa entri.
Pastikan Anda telah mengaktifkan jenis log audit akses data untuk layanan Anda.
Perhatikan bahwa layanan 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 konten entri log audit ini:
Kolom
protoPayload.@type
adalahtype.googleapis.com/google.cloud.audit.AuditLog
.Kolom
logName
menyertakan 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 akan 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 yang disebut cal-workflows-trigger
untuk
tujuan Alur Kerja. Filter pemicu untuk 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 yang disebut cal-run-trigger
untuk
tujuan Cloud Run. Filter pemicu untuk 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 terdapat dalam entri log audit asli ke beberapa entri pemisahan. Jika entri log
berisi kolom split
, 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 pemisahan memiliki protoPayload
yang menyertakan nilai serviceName
,
methodName
, dan resourceName
yang sama untuk membantu memfilter peristiwa Log Audit Cloud. Pemicu Eventarc mengirimkan peristiwa untuk setiap entri pemisahan.
Jika 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 terpisah, Anda dapat menjalankan perintah gcloud CLI berikut, menggunakan split.index=0
untuk menunjukkan posisi entri pertama:
gcloud logging read "split.index=0"
Untuk informasi selengkapnya, termasuk cara mengenali entri dan contoh kueri, lihat Memisahkan entri log audit.