Memahami log audit

Halaman ini menjelaskan entri log Cloud Audit Logs secara mendetail: struktur, cara membacanya, dan cara menafsirkannya.

Cloud Audit Logs menyediakan log audit berikut untuk setiap Cloud de Confiance project, folder, dan organisasi:

  • Log audit Aktivitas Admin
  • Log audit Akses Data
  • Log audit Peristiwa Sistem
  • Log audit Kebijakan Ditolak

Untuk membaca ringkasan umum tentang Cloud Audit Logs, lihat Cloud Audit Logs.

Format entri log audit

Entri log audit adalah jenis entri log Cloud Logging. Seperti semua entri log Logging, entri log audit disimpan dalam objek LogEntry. Yang membedakan entri log audit dari entri log lainnya adalah kolom protoPayload. Dalam entri log audit, kolom protoPayload entri log berisi objek AuditLog yang menyimpan data logging audit.

Singkatnya, setiap entri log audit dicirikan oleh informasi berikut:

  • Project, folder, atau organisasi yang memiliki entri log.
  • Resource tempat entri log diterapkan. Informasi ini terdiri dari jenis resource dari daftar Resource yang dimonitor dan nilai tambahan yang menunjukkan instance tertentu. Misalnya, Anda dapat melihat entri log audit dari satu instance VM Compute Engine atau dari semua instance VM.
  • Stempel waktu.
  • Layanan: Layanan adalah produk individual Cloud de Confiance , seperti Compute Engine, Cloud SQL, atau Pub/Sub. Setiap layanan diidentifikasi berdasarkan nama: Compute Engine adalah compute.googleapis.com, Cloud SQL adalah cloudsql.googleapis.com, dan sebagainya. Informasi ini tercantum di kolom protoPayload.serviceName entri log audit.

    Jenis resource termasuk dalam satu layanan, tetapi layanan dapat memiliki beberapa jenis resource. Untuk mengetahui daftar layanan dan resource, buka Memetakan layanan ke resource.

  • Payload, yang merupakan jenis protoPayload. Payload setiap entri log audit adalah objek jenis AuditLog, yang menentukan kumpulan kolom khusus untuk Cloud Audit Logs, seperti serviceName dan authenticationInfo. Payload juga memiliki kolom opsional, metadata, yang digunakan layanan untuk mencantumkan informasi khusus layanan dalam entri log audit. Cloud de Confiance by S3NS Beberapa Cloud de Confiance by S3NS layanan masih menggunakan kolom serviceData yang lebih lama untuk mencantumkan informasi khusus layanan. Untuk mengetahui daftar layanan yang menggunakan kolom serviceData, lihat Data audit khusus layanan.

  • Nama log: Entri log audit termasuk dalam log dalam akun penagihan, project, folder, dan organisasi. Tabel berikut mencantumkan nama log:

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

Dalam akun penagihan, project, folder, atau organisasi, nama log ini biasanya disingkat sebagai activity, data_access, system_event, dan policy.

Contoh entri log audit

Bagian ini menggunakan contoh entri log audit untuk menjelaskan cara menemukan informasi terpenting dalam entri log audit.

Contoh berikut adalah entri log audit Aktivitas Admin yang mencatat perubahan pada kebijakan Identity and Access Management (IAM) dengan PROJECT_ID my-gcp-project-id. Kolom serviceName mengidentifikasi layanan yang menulis log audit. Agar lebih ringkas, beberapa bagian entri log dihilangkan, dan beberapa kolom ditandai:

    {
      protoPayload: {
        @type: "type.googleapis.com/google.cloud.audit.AuditLog",
        status: {},
        authenticationInfo: {
          principalEmail: "user@example.com"
        },
        serviceName: "appengine.googleapis.com",
        methodName: "SetIamPolicy",
        authorizationInfo: [...],
        serviceData: {
          @type: "type.googleapis.com/google.appengine.legacy.AuditData",
          policyDelta: { bindingDeltas: [
              action: "ADD",
              role: "roles/logging.privateLogViewer",
              member: "user:user@example.com"
          ], }
        },
        request: {
          resource: "my-gcp-project-id",
          policy: { bindings: [...], }
        },
        response: {
          bindings: [
            {
              role: "roles/logging.privateLogViewer",
              members: [ "user:user@example.com" ]
            }
          ],
        }
      },
      insertId: "53179D9A9B559.AD6ACC7.B40604EF",
      resource: {
        type: "gae_app",
        labels: { project_id: "my-gcp-project-id" }
      },
      timestamp: "2019-05-27T16:24:56.135Z",
      severity: "NOTICE",
      logName: "projects/my-gcp-project-id/logs/cloudaudit.googleapis.com%2Factivity",
    }

Berikut adalah kueri yang digunakan untuk memilih contoh entri log audit sebelumnya. Kueri dapat digunakan di Logs Explorer, Logging API, atau Google Cloud CLI. ID project ada di nama log:

    resource.type = "gae_app"
    logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"

Jika Anda mencari log audit dari satu instance jenis resource, seperti gce_instance, tambahkan kualifikasi instance:

    resource.type = "gce_instance"
    resource.instance_id = "INSTANCE_ID"
    logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity"

Menafsirkan contoh entri log audit

Dalam contoh entri log audit sebelumnya, kolom protoPayload, insertId, resource, timestamp, severity, dan logName yang ditampilkan adalah bagian dari objek LogEntry. Nilai kolom protoPayload adalah objek AuditLog. Objek ini merangkum data logging audit.

Melihat contoh entri log audit, Anda mungkin memiliki beberapa pertanyaan:

  • Apakah ini entri log audit? Ya, yang dapat Anda ketahui dengan dua cara:

    • Kolom protoPayload.@type adalah type.googleapis.com/google.cloud.audit.AuditLog.

    • Kolom logName menyertakan domain cloudaudit.googleapis.com.

  • Layanan apa yang menulis log audit? Log ditulis oleh App Engine. Informasi ini tercantum di kolom protoPayload.serviceName entri log audit.

  • Operasi apa yang sedang diaudit? SetIamPolicy, seperti yang ditentukan di kolom protoPayload.methodName, sedang diaudit. Informasi selengkapnya tentang operasi yang diaudit ada di objek AuditData di protoPayload.serviceData.

  • Resource apa yang sedang diaudit? Aplikasi yang berjalan di App Engine, yang dikaitkan dengan Cloud de Confiance project my-gcp-project-id, sedang diaudit. Anda dapat menentukannya dari kolom resource, yang menentukan jenis resource gae_app dan ID project my-gcp-project-id. Dalam contoh ini, Anda akan menemukan detail tentang jenis resource di daftar jenis resource yang dimonitor.

Untuk mengetahui informasi selengkapnya, lihat LogEntry jenis, AuditLog jenis, dan jenis IAM AuditData.

Log audit untuk operasi yang berjalan lama

API yang merupakan operasi yang berjalan lama akan memunculkan dua log audit; satu saat API dipanggil dan operasi dimulai, dan satu saat operasi selesai.

Dalam hal ini, objek LogEntry berisi kolom operation. Entri log untuk operasi yang sama memiliki nilai yang sama untuk LogEntry.operation.id dan LogEntry.operation.producer. Entri log pertama yang ditulis memiliki LogEntry.operation.first=true, dan entri log penyelesaian memiliki LogEntry.operation.last=true.

Jika operasi selesai atau gagal segera, hanya ada satu entri log yang berisi LogEntry.operation.first=true dan LogEntry.operation.last=true.

Beberapa layanan tidak mengisi kolom LogEntry.operation saat operasi gagal. Namun, Anda dapat menentukan operasi mana yang merupakan operasi yang berjalan lama dengan melihat dokumentasi logging audit layanan.

API ini mengimplementasikan layanan Operasi. Layanan ini umumnya memunculkan entri log audit saat dipanggil. Bergantung pada API yang dipanggil, protoPayload.methodName adalah salah satu dari berikut ini:

  • google.longrunning.Operations.ListOperations
  • google.longrunning.Operations.GetOperation
  • google.longrunning.Operations.CancelOperation
  • google.longrunning.Operations.WaitOperation
  • google.longrunning.Operations.DeleteOperation

LogEntry.operation tidak ditentukan dalam hal ini, karena API ini menampilkan metadata tentang operasi yang berjalan lama, tetapi bukan operasi yang berjalan lama.

Lihat Cloud de Confiance by S3NS layanan dengan log audit untuk mengetahui detail tentang API mana yang diaudit, karena dapat bervariasi per layanan.

Log audit untuk API streaming

Mirip dengan operasi yang berjalan lama, API streaming memunculkan dua entri log audit; satu saat API pertama kali dipanggil dan satu saat koneksi streaming berakhir.

Dalam hal ini, objek LogEntry berisi kolom operation dan entri log untuk operasi yang sama memiliki nilai yang sama untuk LogEntry.operation.id dan LogEntry.operation.producer. Log pertama yang ditulis memiliki LogEntry.operation.first=true, dan log penyelesaian akan memiliki LogEntry.operation.last=true.

API ini juga dapat memunculkan entri log lanjutan tanpa LogEntry.operation.first maupun LogEntry.operation.last yang ditetapkan untuk menunjukkan bahwa streaming tetap terbuka.

Data audit khusus layanan

Beberapa layanan memperluas informasi yang disimpan di AuditLog dengan menempatkan struktur data tambahan di kolom serviceData entri log audit. Tabel berikut mencantumkan layanan yang menggunakan kolom serviceData dan menyediakan link ke jenis AuditData.

LayananJenis data layanan
BigQuery type.googleapis.com/google.cloud.bigquery.logging.v1.AuditData
IAM type.googleapis.com/google.iam.v1.logging.AuditData

Melihat log audit

Anda dapat membuat kueri untuk semua log audit atau membuat kueri untuk log berdasarkan nama log auditnya. Nama log audit mencakup ID resource project Cloud de Confiance , folder, akun penagihan, atau organisasi yang informasi logging auditnya ingin Anda lihat. Kueri Anda dapat menentukan kolom LogEntry yang diindeks. Untuk mengetahui informasi selengkapnya tentang cara membuat kueri log Anda, lihat Membuat kueri di Logs Explorer.

Sebagian besar log audit dapat dilihat di Cloud Logging menggunakan konsolCloud de Confiance , Google Cloud CLI, atau Logging API. Namun, untuk log audit terkait penagihan, Anda hanya dapat menggunakan Google Cloud CLI atau Logging API.

Konsol

Di Cloud de Confiance konsol, Anda dapat menggunakan Logs Explorer untuk mengambil entri log audit untuk Cloud de Confiance project, folder, atau organisasi Anda:

  1. Di Cloud de Confiance konsol, buka halaman Logs Explorer:

    Buka Logs Explorer

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Logging.

  2. Pilih organisasi, folder, atau project Cloud de Confiance yang sudah ada.

  3. Untuk menampilkan semua log audit, masukkan salah satu kueri berikut ke kolom editor kueri, lalu klik Run query:

    logName:"cloudaudit.googleapis.com"
    
    protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
    
  4. Agar dapat menampilkan log audit untuk jenis log audit dan resource tertentu, di panel Query builder, lakukan langkah berikut ini:

    • Di Resource type, pilih resource Cloud de Confiance yang log auditnya ingin Anda lihat.

    • Di Log name, pilih jenis log audit yang ingin dilihat:

      • Untuk log audit Aktivitas Admin, pilih activity.
      • Untuk log audit Akses Data, pilih data_access.
      • Untuk log audit Peristiwa Sistem, pilih system_event.
      • Untuk log audit Kebijakan Ditolak, pilih policy.
    • Klik Run query.

    Jika Anda tidak melihat opsi ini, berarti tidak ada log audit dengan jenis tersebut yang tersedia di project Cloud de Confiance , folder, atau organisasi.

    Jika mengalami masalah saat mencoba melihat log di Logs Explorer, lihat informasi pemecahan masalah.

    Untuk mengetahui informasi selengkapnya tentang pembuatan kueri menggunakan Logs Explorer, lihat Membuat kueri di Logs Explorer.

gcloud

Google Cloud CLI menyediakan antarmuka command line ke Logging API. Berikan ID resource yang valid di setiap nama log. Misalnya, jika kueri Anda menyertakan PROJECT_ID, project ID yang Anda berikan harus merujuk pada projectCloud de Confiance yang saat ini dipilih.

Untuk membaca entri log audit level project Cloud de Confiance , jalankan perintah berikut:

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

Untuk membaca entri log audit level folder, jalankan perintah berikut:

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

Untuk membaca entri log audit level organisasi, jalankan perintah berikut:

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

Untuk membaca entri log audit level akun Penagihan Cloud Anda, jalankan perintah berikut:

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

Tambahkan flag --freshness ke perintah Anda untuk membaca log yang berusia lebih dari 1 hari.

Untuk mengetahui informasi selengkapnya tentang penggunaan gcloud CLI, lihat gcloud logging read.

REST

Untuk membuat kueri data log menggunakan Cloud Logging API, gunakan entries.list metode.