Menentukan filter peristiwa untuk Cloud Audit Logs

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 audit
  • methodName: operasi yang sedang diaudit
  • resourceName: 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.

  1. Pastikan Anda telah mengaktifkan jenis log audit akses data untuk layanan Anda.

    Buka Log Audit

    Perhatikan bahwa layanan yang mengaktifkan audit secara default tidak tercantum.

    1. Di tabel utama pada halaman Log Audit, pilih layanan Google Cloud.

    2. Di tab Log Types, centang kotak Admin Read, Data Read, dan Data Write, lalu klik Save.

  2. Lakukan operasi yang ingin Anda buat filter peristiwanya dan buat entri log audit. Misalnya, simpan file di bucket Cloud Storage.

  3. Di konsol Google Cloud, buka Logs Explorer.

    Buka Logs Explorer

  4. 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.

  5. 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 adalah type.googleapis.com/google.cloud.audit.AuditLog.

      • Kolom logName menyertakan domain cloudaudit.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.

Langkah berikutnya