Pengantar log audit di BigQuery

Anda dapat menggunakan log audit BigQuery untuk memantau aktivitas administratif dan akses data dalam project Anda. Log adalah file teks yang dibuat secara otomatis dan mencatat siapa yang melakukan tindakan tertentu, seperti membuat tabel atau menjalankan tugas, untuk membantu Anda menjaga keamanan dan memastikan kepatuhan. Dokumen ini menjelaskan kapan harus menggunakan log audit dan memberikan ringkasan formatnya.

Cloud de Confiance by S3NS juga menulis log, termasuk log audit yang memberikan insight tentang masalah operasional terkait penggunaan layanan Cloud de Confiance oleh Anda. Untuk mengetahui informasi selengkapnya tentang cara Cloud de Confiance menangani logging, lihat dokumentasi Cloud Logging dan ringkasan Cloud Audit Logs.

Log audit versus tabel virtual INFORMATION_SCHEMA

Project Cloud de Confiance Anda berisi log audit hanya untuk resource yang berada langsung dalam project Cloud de Confiance . Resource Cloud de Confiance lainnya, seperti folder, organisasi, dan akun penagihan, berisi log auditnya sendiri.

Log audit membantu Anda menjawab pertanyaan "Siapa yang melakukan apa, di mana, dan kapan?" dalam resource Cloud de Confiance Anda. Log audit adalah sumber informasi definitif untuk aktivitas sistem menurut pengguna dan pola akses, serta harus menjadi sumber utama Anda dalam pertanyaan audit atau keamanan.

Tampilan INFORMATION_SCHEMA di BigQuery adalah sumber insight lain yang dapat Anda gunakan bersama dengan metrik dan log. Tampilan ini berisi metadata tentang tugas, set data, tabel, dan entity BigQuery lainnya. Misalnya, Anda bisa mendapatkan metadata real-time tentang tugas BigQuery mana yang dijalankan selama waktu tertentu. Kemudian, Anda dapat mengelompokkan atau memfilter hasil berdasarkan project, pengguna, tabel yang dirujuk, dan dimensi lainnya.

Tampilan INFORMATION_SCHEMA memberi Anda informasi untuk melakukan analisis yang lebih mendetail tentang workload BigQuery, seperti berikut:

  • Berapa rata-rata penggunaan slot untuk semua kueri selama tujuh hari terakhir untuk project tertentu?
  • Error streaming apa yang terjadi dalam 30 menit terakhir, yang dikelompokkan berdasarkan kode error?

Log audit BigQuery berisi entri log untuk panggilan API, tetapi tidak menjelaskan dampak panggilan API. Sekumpulan panggilan API membuat tugas (seperti kueri dan pemuatan) yang informasinya diambil oleh tampilan INFORMATION_SCHEMA. Misalnya, Anda dapat menemukan informasi tentang waktu dan slot yang digunakan oleh kueri tertentu dalam tampilan INFORMATION_SCHEMA, tetapi tidak di log audit.

Untuk mendapatkan insight tentang performa workload BigQuery secara khusus, lihat metadata tugas, metadata streaming, dan metadata pemesanan.

Untuk mengetahui informasi selengkapnya tentang jenis log audit yang ditulis layanan Cloud de Confiance , lihat Jenis log audit.

Format log audit

LayananCloud de Confiance menulis log audit dalam format JSON terstruktur. Jenis data dasar untuk entri log Cloud de Confiance adalah struktur LogEntry. Struktur ini berisi nama log, resource yang menghasilkan entri log, stempel waktu (UTC), dan informasi dasar lainnya.

Log mencakup detail peristiwa yang dicatat ke dalam log di subkolom yang disebut kolom payload. Untuk log audit, kolom payload diberi nama protoPayload. Jenis kolom ini (protoPayload.@type) ditetapkan ke type.googleapis.com/google.cloud.audit.AuditLog, yang menunjukkan bahwa kolom menggunakan struktur log AuditLog.

Untuk operasi pada set data, tabel, dan tugas, BigQuery menulis log audit dalam dua format yang berbeda, meskipun kedua format tersebut menggunakan jenis dasar AuditLog yang sama.

Format yang lebih lama mencakup kolom dan nilai berikut:

  • Nilai untuk kolom resource.type adalah bigquery_resource.
  • BigQuery menulis detail tentang operasi di kolom protoPayload.serviceData. Nilai kolom ini menggunakan struktur log AuditData.

Format yang lebih baru mencakup kolom dan nilai berikut:

  • Nilai untuk kolom resource.type adalah bigquery_project atau bigquery_dataset. Resource bigquery_project memiliki entri log tentang tugas, sedangkan resource bigquery_dataset memiliki entri log tentang penyimpanan.
  • BigQuery menulis detail tentang operasi di kolom protoPayload.metadata. Nilai kolom ini menggunakan struktur BigQueryAuditMetadata.

Sebaiknya gunakan log dalam format yang lebih baru. Untuk informasi selengkapnya, lihat Panduan migrasi log audit.

Berikut adalah contoh singkat entri log yang menunjukkan operasi yang gagal:

{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "code": 5,
      "message": "Not found: Dataset myproject:mydataset was not found in location US"
    },
    "authenticationInfo": { ... },
    "requestMetadata":  { ... },
    "serviceName": "bigquery.googleapis.com",
    "methodName": "google.cloud.bigquery.v2.JobService.InsertJob",
    "metadata": {
  },
  "resource": {
    "type": "bigquery_project",
    "labels": { .. },
  },
  "severity": "ERROR",
  "logName": "projects/myproject/logs/cloudaudit.googleapis.com%2Fdata_access",
  ...
}

Untuk operasi pada pemesanan BigQuery, kolom protoPayload menggunakan struktur AuditLog, serta kolom protoPayload.request dan protoPayload.response berisi informasi selengkapnya. Anda dapat menemukan definisi kolom di BigQuery Reservation API. Untuk informasi selengkapnya, lihat Memantau reservasi BigQuery.

Untuk mendapatkan pemahaman yang lebih mendalam tentang format log audit, lihat Memahami log audit.

Batasan

Pesan log memiliki batas ukuran 100.000 byte. Untuk informasi selengkapnya, lihat Entri log yang terpotong.

Visibilitas dan kontrol akses

Log audit BigQuery dapat menyertakan informasi yang mungkin dianggap sensitif oleh pengguna, seperti teks SQL, definisi skema, dan ID untuk resource seperti tabel dan set data. Untuk mengetahui informasi tentang cara mengelola akses ke informasi ini, lihat dokumentasi kontrol akses Cloud Logging.

Peta telemetri

Tabel berikut memetakan fitur dan resource BigQuery ke telemetri pemantauan operasional, layanan dan resource API yang diaudit, serta dokumentasi referensi log audit. Anda dapat menggunakannya untuk menemukan telemetri yang diperlukan untuk memecahkan masalah, mengoptimalkan performa, mengontrol biaya, mengaudit penggunaan, dan menjaga kepatuhan.

Tidak seperti banyak layanan Cloud de Confiance by S3NS yang menulis log tugas operasional ke Cloud Logging, BigQuery menulis telemetri tugas operasional ke tampilan skema informasi seperti INFORMATION_SCHEMA.JOBS. Tabel virtual ini mencatat tahap eksekusi kueri, penggunaan slot, byte yang ditagih, dan semua tugas yang dikirimkan, termasuk tugas yang sedang berlangsung dan gagal.

BigQuery menggunakan Logging terutama untuk memunculkan Cloud Audit Logs, yang mencatat aktivitas administratif dan akses data. Saat mengaudit aktivitas ini, Anda dapat menentukan siapa yang mengakses resource atau data, di mana, dan kapan.

Log audit tidak dikeluarkan untuk setiap gangguan atau kegagalan tugas. Misalnya, tugas yang gagal tidak menghasilkan peristiwa TableDataRead atau TableDataChange, dan jobCompletedEvent hanya mencatat penyelesaian tugas yang berhasil. Untuk mengetahui detail tentang skenario yang tidak memunculkan log audit, lihat Akses data dalam Ringkasan log audit BigQuery.

Dalam tabel berikut, tanda bintang (*) dalam nama tampilan INFORMATION_SCHEMA menunjukkan varian tampilan khusus cakupan, seperti _BY_PROJECT, _BY_USER, _BY_FOLDER, dan _BY_ORGANIZATION.

Fitur atau fasilitas Pemantauan operasional Cloud Audit Logs
Kueri dan tugas

Tampilan skema informasi:

  • JOBS*: eksekusi tugas real-time dan historis, milidetik slot, byte yang ditagih, tahap eksekusi, dan semua tugas yang dikirimkan, terlepas dari status penyelesaiannya
  • JOBS_TIMELINE*: status tugas dan penggunaan slot per rentang waktu

Konsol:

Metrik: Metrik Cloud Monitoring, seperti query/count, query/execution_times, dan job/num_in_flight.

Layanan API: bigquery.googleapis.com.

Resource yang diaudit: tugas di JobService (resource yang dimonitor: bigquery_project).

Log audit: Log Akses Data menggunakan BigQueryAuditMetadata (peristiwa JobInsertion dan JobChange), yang mencatat siapa yang mengirimkan atau membatalkan tugas, status tugas, jenis pernyataan, dan tabel atau tampilan yang direferensikan. Lihat Ringkasan log audit BigQuery.

Tabel dan tampilan

Tampilan skema informasi:

Metrik: Metrik pemantauan, seperti storage/stored_bytes dan storage/table_count.

Layanan API: bigquery.googleapis.com dan bigquerystorage.googleapis.com. Log Akses Data untuk BigQuery Storage API menggunakan bigquery.googleapis.com, sedangkan log Kebijakan Ditolak menggunakan bigquerystorage.googleapis.com.

Resource yang diaudit: tabel, tampilan, dan tampilan terwujud di TableService dan TableDataService; serta sesi baca penyimpanan dan aliran tulis di BigQueryRead dan BigQueryWrite (resource yang dimonitor: bigquery_dataset dan bigquery_table).

Log audit: Log Akses Data menggunakan BigQueryAuditMetadata (peristiwa TableDataRead dan TableDataChange untuk pembacaan tabel, modifikasi, kolom yang direferensikan, tugas sumber, dan pembacaan dan penulisan aliran BigQuery Storage API), ditambah log Aktivitas Admin, Akses Data, dan Peristiwa Sistem untuk peristiwa TableCreation, TableChange, dan TableDeletion, termasuk perubahan kebijakan Identity and Access Management (IAM) tabel dan masa berlaku tabel. Lihat Ringkasan log audit BigQuery.

Set data

Tampilan skema informasi:

Layanan API: bigquery.googleapis.com.

Resource yang diaudit: set data, kebijakan IAM set data, dan ACL set data di DatasetService dan IAMPolicy (resource yang dipantau: bigquery_dataset).

Log audit: Log Aktivitas Admin dan Akses Data menggunakan BigQueryAuditMetadata (peristiwa DatasetCreation, DatasetChange, dan DatasetDeletion), termasuk perubahan kebijakan IAM set data di bindingDeltas dan update ACL di accessChanges. Lihat Ringkasan log audit BigQuery.

Slot dan pemesanan

Tampilan skema informasi:

Konsol:

Metrik: Metrik pemantauan, seperti slots/allocated dan slots/total_available.

Layanan API: bigqueryreservation.googleapis.com untuk BigQuery Reservation API.

Resource yang diaudit: pemesanan, komitmen kapasitas, dan penetapan pemesanan di ReservationService (resource yang dipantau: bigquery_project).

Log audit: Log Aktivitas Admin dan Akses Data untuk membuat, mengubah, menghapus, dan mencantumkan pemesanan, komitmen kapasitas, serta penetapan project atau folder. Lihat Logging audit BigQuery Reservation API.

Keamanan tingkat kolom dan penyamaran data

Tampilan skema informasi:

  • COLUMN_FIELD_PATHS: jalur kolom bertingkat, tag kebijakan, dan penetapan kebijakan data
  • COLUMNS: skema kolom dan jenis data

Layanan API: datacatalog.googleapis.com untuk tag kebijakan Data Catalog, bigquerydatapolicy.googleapis.com untuk BigQuery Data Policy API, dan bigquery.googleapis.com.

Resource yang diaudit: taksonomi dan tag kebijakan di PolicyTagManager, kebijakan data di DataPolicyService, dan kolom tabel yang diberi tag kebijakan (resource yang dipantau: audited_resource dan bigquery_dataset).

Log audit: Log Aktivitas Admin dan Akses Data untuk pengelolaan taksonomi dan tag kebijakan serta perubahan kebijakan IAM (Tag kebijakan audit); pengelolaan kebijakan data dan update penerima (Logging audit Kebijakan Data BigQuery); dan log TableDataRead.fields untuk pembacaan di kolom yang dilindungi (Ringkasan log audit BigQuery).

Rutinitas, termasuk UDF dan prosedur tersimpan

Tampilan skema informasi:

Layanan API: bigquery.googleapis.com.

Resource yang diaudit: fungsi yang ditentukan pengguna (UDF), fungsi tabel, dan prosedur tersimpan di RoutineService (resource yang dipantau: bigquery_dataset dan bigquery_project).

Log audit: Log Aktivitas Admin dan Akses Data menggunakan BigQueryAuditMetadata (peristiwa RoutineCreation, RoutineChange, dan RoutineDeletion), ditambah peristiwa tugas turunan untuk operasi prosedur tersimpan. Lihat Ringkasan log audit BigQuery.

Sambungan eksternal

Tampilan skema informasi:

  • OBJECT_PRIVILEGES: hak istimewa koneksi
  • JOBS*: kueri gabungan dan tugas fungsi jarak jauh yang menggunakan koneksi

Layanan API: bigqueryconnection.googleapis.com untuk BigQuery Connection API.

Resource yang diaudit: koneksi dan kebijakan IAM koneksi di ConnectionService (resource yang dimonitor: audited_resource).

Log audit: Log Aktivitas Admin dan Akses Data untuk pembuatan koneksi, pembaruan kredensial, penghapusan, listing, dan perubahan kebijakan IAM. Lihat logging audit BigQuery Connection API.

BigQuery sharing

Tampilan skema informasi:

Dasbor: dasbor metrik penggunaan berbagi.

Layanan API: analyticshub.googleapis.com.

Resource yang diaudit: pertukaran data, listingan, langganan, dan kebijakan IAM pertukaran atau listingan di AnalyticsHubService (resource yang dimonitor: audited_resource).

Log audit: Log Aktivitas Admin dan Akses Data untuk pertukaran data dan pembuatan, pembaruan, penghapusan listingan, perubahan kebijakan IAM, dan operasi pelanggan. Lihat Logging audit berbagi.

BigQuery Data Transfer Service

Metrik dan log:

Layanan API: bigquerydatatransfer.googleapis.com untuk BigQuery Data Transfer Service API.

Resource yang diaudit: konfigurasi transfer, operasi transfer, dan sumber data di DataTransferService (resource yang dimonitor: audited_resource).

Log audit: Log Aktivitas Admin dan Akses Data untuk membuat, memperbarui, menghapus, mencantumkan, dan memulai konfigurasi serta operasi transfer. Lihat Logging audit BigQuery Data Transfer Service.

Katalog dan tabel BigLake

Tampilan skema informasi:

  • TABLES: metadata tabel
  • JOBS*: statistik kueri penyimpanan objek eksternal (metadata_cache_statistics dan object_storage_stats)

Layanan API: biglake.googleapis.com dan bigquery.googleapis.com.

Resource yang diaudit: katalog, database, tabel, dan partisi metastore di MetastoreService dan HiveMetastoreService, serta katalog, namespace, dan tabel Apache Iceberg di IcebergCatalogService (resource yang dipantau: audited_resource dan bigquery_dataset).

Log audit: Log Aktivitas Admin dan Akses Data untuk operasi kebijakan IAM katalog, database, namespace, tabel, partisi, dan katalog. Lihat logging audit BigLake.

BigQuery Migration Service

Status dan laporan:

  • Status tugas Terjemahan SQL batch di konsol Cloud de Confiance
  • Status alur kerja dan subtugas di BigQuery Migration API
  • Laporan ringkasan terjemahan di Cloud Storage

Layanan API: bigquerymigration.googleapis.com untuk BigQuery Migration API.

Resource yang diaudit: alur kerja migrasi, subtugas migrasi, dan permintaan terjemahan SQL di MigrationService dan SqlTranslationService (resource yang dipantau: audited_resource).

Log audit: Log Akses Data untuk membuat, memulai, mencantumkan, melihat, dan menghapus alur kerja dan subtugas migrasi, serta menerjemahkan kueri SQL. Lihat Logging audit BigQuery Migration Service.

Langkah berikutnya

  • Untuk mempelajari cara menggunakan Cloud Logging untuk mengaudit aktivitas yang terkait dengan tag kebijakan, lihat Tag kebijakan audit.
  • Guna mempelajari cara menggunakan BigQuery untuk menganalisis aktivitas yang dicatat, lihat Ringkasan log audit BigQuery.