Bermigrasi dari log aktivitas ke log audit


Jika Anda menggunakan log aktivitas untuk melihat aktivitas admin dan peristiwa sistem Compute Engine, baca panduan ini untuk memahami cara menemukan entri log serupa menggunakan log audit.

Log aktivitas Compute Engine tidak digunakan lagi. Anda dapat mengidentifikasi entri log aktivitas berdasarkan nama log:

logName: "projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"

Log audit Compute Engine berisi informasi yang sama yang tersedia melalui log aktivitas, dan banyak lagi. Namun, log audit menyajikan informasi secara berbeda dibandingkan log aktivitas. Jadi, Anda harus menyesuaikan kueri.

Cara bermigrasi dari log aktivitas ke log audit

Untuk menggunakan log audit, bukan log aktivitas, sesuaikan kueri Anda. Gunakan langkah-langkah berikut.

  1. Temukan kueri lama Anda. Misalnya, Anda mungkin telah menyimpannya dalam penelusuran tersimpan di Logs Explorer atau membuat skrip menggunakan API atau SDK. Untuk mengetahui informasi selengkapnya tentang cara memantau resource, baca dokumentasi Logging.

  2. Ganti kolom log aktivitas dengan kolom log audit yang sesuai. Lihat tabel untuk melihat cara kolom dipetakan satu sama lain.

    Misalnya, jika kueri log aktivitas lama Anda mencari kolom bernama jsonPayload.resource.name, kueri log audit baru Anda akan mencari protoPayload.resourceName.

  3. Simpan dan gunakan kueri log audit baru Anda. Misalnya, buat penelusuran tersimpan di Cloud Logging atau update skrip Anda.

Contoh

Berikut adalah beberapa contoh kueri yang dikonversi:

Membuat kueri untuk aktivitas yang terkait dengan resource tertentu

Contoh kueri
Log aktivitas lamagcloud logging read jsonPayload.resource.name="VM_NAME"
Log audit

Gunakan salah satu opsi berikut

  1. gcloud logging read protoPayload.resourceName:"VM_NAME"
  2. gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"

Dengan opsi 1, operator "has" (:) cocok dengan semua resource dalam project Anda yang memiliki nama yang menyertakan VM_NAME. Dengan opsi 2, operator "equals" (=) hanya cocok dengan resource tertentu yang sepenuhnya memenuhi syarat dengan nama tersebut.

Membuat kueri entri log aktivitas admin terbaru

Contoh kueri
Log aktivitas lamagcloud logging read logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log"
Log auditgcloud logging read logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"

Membuat kueri untuk entri log pembuatan instance terbaru

Contoh kueri
Log aktivitas lamagcloud logging read 'logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_log" AND jsonPayload.event_subtype="compute.instances.insert"'
Log auditgcloud logging read 'logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.methodName:"compute.instances.insert"'

Membuat kueri untuk awal semua operasi pembuatan instance

Contoh kueri
Log aktivitas lamagcloud logging read 'jsonPayload.event_type="GCE_API_CALL" AND jsonPayload.event_subtype="compute.instances.insert"'
Log auditgcloud logging read 'operation.first="true" AND protoPayload.methodName:"compute.instances.insert"'

Membuat kueri untuk penyelesaian operasi apa pun

Contoh kueri
Log aktivitas lamagcloud logging read jsonPayload.event_type="GCE_OPERATION_DONE"
Log auditgcloud logging read operation.last="true"

Perbedaan antara log aktivitas dan log audit

Baca bagian ini untuk mempelajari bagaimana struktur log audit disusun secara berbeda dengan log aktivitas. Ingatlah perbedaan ini saat Anda mengonversi kueri log aktivitas lama menjadi kueri log audit. Misalnya, di kueri, ganti semua nama kolom log aktivitas lama dengan nama kolom log audit yang sesuai.

Meskipun logging audit dan logging aktivitas menampilkan objek entri log, keduanya memiliki perbedaan berikut:

  • Nama kolom yang berbeda. Lihat tabel pemetaan nama kolom untuk mengetahui detailnya.
  • Nilai kolom yang berbeda, termasuk:
    • Nama log yang berbeda: Log audit memiliki nama log yang berisi cloudaudit.googleapis.com.
    • payloads berbeda: Log audit menampilkan kolom protoPayload, bukan jsonPayload.
    • Nama resource yang sepenuhnya memenuhi syarat: Log audit menampilkan nama resource yang menyertakan jalurnya, misalnya: projects/my-project/zones/us-east1-b/instances/my-instance-name.
    • Nama metode dengan versi: Log audit menampilkan nama metode yang menyertakan versinya, misalnya, v1.

Berikut ini contoh yang menunjukkan perbedaan nama log dan payload:

Contoh entri log
Log aktivitas lama

{
  insertId:  "1x3bbhjg2wwvz1x"
  jsonPayload: {
    event_subtype: "compute.instances.stop"
    ...
    resource: {
      id: "12345678900123456789"
      name: "my-instance-name"
      type: "instance"
      zone: "us-east1-b"
    }
    ...
  }
  labels: {…}
  logName:  "projects/my-project/logs/compute.googleapis.com%2Factivity_log"
  receiveTimestamp:  "2019-08-26T12:22:44.602794616Z"
  ...
}
Log audit

{
  insertId:  "-w6o499e22fwk"
  logName:  "projects/my-project/logs/cloudaudit.googleapis.com%2Factivity"
  protoPayload: {
    ...
    methodName: "beta.compute.instances.stop"
    ...
    resourceName: "projects/my-project/zones/us-east1-b/instances/my-instance-name"
  }
  receiveTimestamp:  "2019-08-26T12:22:46.881198276Z"
  ...
}

Memetakan kolom dari log aktivitas ke log audit

Gunakan tabel berikut untuk memetakan kolom log aktivitas ke kolom log audit yang sesuai di kueri Anda.

Kolom

Gunakan tabel berikut untuk mengganti kolom log aktivitas lama dengan kolom log audit di kueri yang telah diperbarui.

Misalnya, jika kueri log aktivitas lama Anda berisi filter berdasarkan jsonPayload.resource.type, kueri log audit baru Anda harus memfilter resource.type.

Kolom log aktivitas lama Kolom log audit
insertId insertId
jsonPayload.actor.user protoPayload.authenticationInfo.principalEmail
jsonPayload.event_subtype protoPayload.methodName
jsonPayload.event_timestamp_us timestamp
jsonPayload.event_type="GCE_API_CALL" operation.first="true"
jsonPayload.event_type="GCE_OPERATION_DONE" operation.last="true"
jsonPayload.request protoPayload.request
jsonPayload.operation operation
jsonPayload.resource.id resource.labels.instance_id
jsonPayload.resource.name protoPayload.resourceName
jsonPayload.resource.type resource.type
jsonPayload.resource.zone resource.labels.zone
jsonPayload.trace_id operation.id
jsonPayload.user_agent protoPayload.requestMetadata.callerSuppliedUserAgent
labels.compute.googleapis.com/resource_id resource.labels.[RESOURCE_TYPE]_id
labels.compute.googleapis.com/resource_name protoPayload.resourceName
labels.compute.googleapis.com/resource_type resource.type
labels.compute.googleapis.com/resource_zone Salah satu dari:
  • resource.labels.zone
  • resource.labels.region
  • resource.labels.location
logName logName
receiveTimestamp receiveTimestamp
resource.labels resource.labels
severity severity
timestamp timestamp

Nilai kolom

Gunakan tabel berikut untuk memetakan nilai kolom log aktivitas lama ke nilai kolom log audit. Dibandingkan dengan log aktivitas, log audit memiliki beberapa nilai nama log dan nilai payload yang berbeda. Entri log audit juga menampilkan nama resource yang sepenuhnya memenuhi syarat dan nama metode berversi.

Nama log

Untuk menemukan entri log audit, cari logName yang menyertakan cloudaudit.googleapis.com.

Nama logKonten log
Log aktivitas lamaprojects/PROJECT_ID/logs/compute.googleapis.com%2Factivity_logPeristiwa sistem dan aktivitas admin
Log auditprojects/PROJECT_ID/logs/cloudaudit.googleapis.com%2FactivityAktivitas admin
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_eventPeristiwa sistem
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_accessAkses data

Payload

Di setiap entri log audit, cari protoPayload, bukan jsonPayload.

Jenis payloadContoh payload
Log aktivitas lamajsonPayload

    jsonPayload: {
      actor: {…}
      event_subtype:  "compute.instances.start"
      event_timestamp_us:  "1566404493487248"
      event_type:  "GCE_API_CALL"
      ip_address:  ""
      operation: {…}
      request: {…}
      resource: {…}
      trace_id:  "operation-1566404491560-590a2f74b4705-a1ae0686-d896d772"
      user_agent:  "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"
      version:  "1.2"
    }
Log auditprotoPayload

    protoPayload: {
      @type:  "type.googleapis.com/google.cloud.audit.AuditLog"
      authenticationInfo: {…}
      methodName:  "v1.compute.instances.start"
      request: {…}
      requestMetadata: {…}
      resourceName:  "projects/my-project/zones/us-central1-a/instances/alert"
      serviceName:  "compute.googleapis.com"
    }

Untuk mempelajari hubungan antara payload ini dan cara memetakan kolom log aktivitas lama ke kolom log audit, baca pemetaan kolom entri log.

Nama resource

Dalam log audit, nama resource API (di kolom protoPayload.resourceName) sepenuhnya memenuhi syarat, misalnya:

resourceName: "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"

Anda masih dapat menggunakan nama sebagian, tetapi Anda harus memperbaiki kueri untuk menggunakan operator "has" (:), bukan operator "sama dengan".

Gunakan salah satu opsi berikut di kueri log audit Anda untuk memfilter resource tertentu:

  • gcloud logging read protoPayload.resourceName:"VM_NAME"
  • gcloud logging read protoPayload.resourceName="projects/PROJECT_ID/zones/ZONE/instances/VM_NAME"

Nama metode

Dalam log audit, nama metode API (di kolom protoPayload.methodName) diawali dengan versinya, seperti: v1.compute.instances.delete.

KolomNilaiContoh kueri
Log aktivitas lamajsonPayload.event_subtypeRESOURCE.METHODjsonPayload.event_subtype=compute.instances.delete
Log auditprotoPayload.methodNameAPI_VERSION.RESOURCE.METHODprotoPayload.methodName=v1.compute.instances.delete
atau
protoPayload.methodName=beta.compute.instances.delete
atau
protoPayload.methodName:compute.instances.delete

Anda masih dapat menggunakan nama metode tanpa versi dalam kueri log audit, tetapi Anda harus memperbaiki kueri tersebut agar menggunakan operator "has" (:), bukan operator "equals" (= ). Misalnya: protoPayload.methodName:compute.instances.delete menampilkan semua panggilan API penghapusan instance, berapa pun versinya. Untuk mengetahui informasi selengkapnya tentang operator, baca perbandingan.

Langkah selanjutnya