Logging audit Spanner Omni

Spanner Omni menulis log audit yang mencatat aktivitas administratif dan akses data dalam deployment Spanner Omni Anda.

Log audit membantu Anda menjawab "siapa yang melakukan apa, di mana, dan kapan?". Gunakan log audit untuk membantu entitas keamanan, audit, dan kepatuhan memantau data dan sistem Spanner Omni Anda untuk mengetahui kemungkinan kerentanan atau penyalahgunaan data eksternal.

Sebelum memulai

Konfigurasi deployment Spanner Omni Anda dengan enkripsi TLS atau mutual TLS (mTLS). Jika Anda membuat deployment tanpa enkripsi TLS atau mTLS, log audit tidak akan dibuat. Untuk mengetahui petunjuk cara membuat deployment dengan enkripsi TLS atau mTLS, lihat artikel berikut:

Jenis log audit

Spanner Omni mendukung jenis log audit berikut.

Log audit Aktivitas Admin

Log audit Aktivitas Admin mencatat panggilan API yang mengubah konfigurasi atau metadata deployment Anda. Misalnya, Spanner Omni menulis log audit Aktivitas Admin saat pengguna membuat database.

Log audit Aktivitas Admin dihasilkan secara default untuk deployment yang dikonfigurasi dengan enkripsi TLS dan mTLS. Anda tidak dapat mengonfigurasi, mengecualikan, atau menonaktifkannya.

Untuk mengetahui daftar metode yang menulis log audit Aktivitas Admin, lihat Metode menurut jenis izin.

Log audit Akses Data

Log audit Akses Data mencatat panggilan API yang membaca konfigurasi atau metadata deployment Anda, serta panggilan API yang membuat, mengubah, atau membaca data pengguna. Misalnya, Spanner Omni menulis log audit Akses Data saat pengguna mendeskripsikan database, menjalankan kueri SQL, atau mengeksekusi pernyataan bahasa manipulasi data (DML).

Log audit Akses Data dinonaktifkan secara default karena ukurannya yang kadang besar. Untuk mencatat peristiwa akses data, aktifkan dan konfigurasikan peristiwa tersebut secara eksplisit. Log audit Akses Data membantu Tim Dukungan Google memecahkan masalah, jadi sebaiknya aktifkan log audit tersebut.

Untuk mengetahui petunjuk cara mengonfigurasi log ini, lihat Mengonfigurasi log audit Akses Data. Untuk mengetahui daftar metode yang menulis log audit Akses Data, lihat Metode menurut jenis izin.

Log audit Peristiwa Sistem

Log audit Peristiwa Sistem mencatat saat sistem memodifikasi konfigurasi resource Spanner Omni Anda tanpa tindakan langsung pengguna. Misalnya, Spanner Omni menulis log audit Peristiwa Sistem saat sistem mengoptimalkan database yang baru dipulihkan secara otomatis atau membuat pencadangan terjadwal.

Log audit Peristiwa Sistem dibuat secara default untuk deployment yang dikonfigurasi dengan enkripsi TLS dan mTLS. Anda tidak dapat mengonfigurasi, mengecualikan, atau menonaktifkannya.

Untuk mengetahui informasi selengkapnya tentang peristiwa sistem yang menghasilkan log ini, lihat Peristiwa sistem.

Mengonfigurasi log audit Akses Data

Untuk mengaktifkan log audit Akses Data, konfigurasi kebijakan Identity and Access Management (IAM) untuk deployment Anda menggunakan Spanner Omni CLI atau API. Anda dapat mengaktifkan logging untuk jenis izin tertentu dan mengecualikan pengguna tertentu agar tidak dicatat lognya.

Izin yang diperlukan

Untuk mengonfigurasi log audit Akses Data, Anda memerlukan izin spanner.instances.setIamPolicy.

Untuk melihat konfigurasi log audit Akses Data, Anda memerlukan izin spanner.instances.getIamPolicy.

Jenis izin

Metode API memeriksa izin IAM, dan setiap izin memiliki jenis izin terkait. Saat mengonfigurasi log audit Akses Data, tentukan jenis izin yang akan dicatat. Jenis izin dikategorikan sebagai berikut:

Jenis izin Akses Data:

  • ADMIN_READ: mencatat metode API yang membaca metadata atau informasi konfigurasi. Misalnya, mendeskripsikan database.
  • DATA_READ: mencatat metode API yang membaca data pengguna. Misalnya, menjalankan kueri SQL.
  • DATA_WRITE: mencatat metode API yang menulis data pengguna. Misalnya, mengeksekusi pernyataan DML.

Jenis izin Aktivitas Admin:

  • ADMIN_WRITE: diperiksa untuk metode API yang menulis metadata atau informasi konfigurasi (seperti membuat database). Tindakan ini menghasilkan log audit Aktivitas Admin dan tidak dapat dikonfigurasi.

Untuk penjelasan mendetail tentang jenis izin, lihat Jenis izin dalam dokumentasi Cloud Audit Logs.

Mengonfigurasi menggunakan Spanner Omni CLI

Untuk mengonfigurasi log audit Akses Data menggunakan Spanner Omni CLI, buat file kebijakan JSON yang mencantumkan jenis log yang akan diaktifkan dan anggota yang dikecualikan, lalu terapkan kebijakan tersebut.

  1. Buat file kebijakan bernama policy.json:

    {
      "auditConfigs": [
        {
          "auditLogConfigs": [
            {
              "logType": "ADMIN_READ",
              "exemptedMembers": [
                "USER_NAME"
              ]
            },
            {
              "logType": "DATA_WRITE"
            },
            {
              "logType": "DATA_READ"
            }
          ],
          "service": "spanner.googleapis.com"
        }
      ]
    }
    
  2. Terapkan kebijakan menggunakan perintah spanner instances set-iam-policy:

    spanner instances set-iam-policy default policy.json
    

Untuk melihat konfigurasi log audit Akses Data saat ini, jalankan perintah berikut:

spanner instances get-iam-policy default

Untuk contoh kasus penggunaan konfigurasi umum lainnya, lihat Mengonfigurasi log audit Akses Data dalam dokumentasi Cloud Audit Logs.

Peristiwa sistem

Spanner Omni menghasilkan log audit Peristiwa Sistem untuk sebagian besar peristiwa sistem yang didukung oleh Spanner versi terkelola. Untuk mengetahui informasi selengkapnya, lihat Peristiwa sistem dalam dokumentasi Spanner.

Spanner Omni mendukung peristiwa sistem CreateScheduledBackup dan OptimizeRestoredDatabase. Namun, Spanner Omni tidak mendukung peristiwa sistem AutoscaleInstance karena penskalaan otomatis tidak tersedia di Spanner Omni.

File log audit dan retensi

Spanner Omni menulis log audit ke sistem file lokal server Spanner Omni Anda.

Temukan file log audit menggunakan jalur dan konvensi penamaan berikut: BASE_DIR/logs/PROCESS/audit.log.BUCKET.TIMESTAMP.PROCESS_ID

  • BASE_DIR: direktori dasar yang ditentukan saat memulai deployment Spanner Omni Anda. Untuk deployment Kubernetes, setelan defaultnya adalah /spanner.

  • PROCESS: Spanner Omni menjalankan beberapa proses per server, seperti server, zone_services, zonal_zone_services, zonal_server, dan base_services. Log audit ditulis ke direktori yang sesuai dengan proses yang membuatnya.

  • BUCKET: Log audit Aktivitas Admin dan Peristiwa Sistem ditulis ke bucket required, sedangkan log audit Akses Data ditulis ke bucket default.

  • TIMESTAMP: stempel waktu saat file dibuat.

  • PROCESS_ID: ID proses yang menulis log audit.

Spanner Omni membuat file log audit baru saat file saat ini melebihi 50 MiB atau saat proses server dimulai ulang. Fitur ini juga otomatis memelihara symlink dari BASE_DIR/logs/PROCESS/audit.log.BUCKET ke file log audit yang sedang ditulis.

Akses ke file log audit lokal dikontrol oleh Daftar Kontrol Akses (ACL) sistem file Anda. Siapa pun yang memiliki izin untuk login ke server dan mengakses file ini dapat melihat log audit.

Sebaiknya batasi akses ke VM Spanner Omni (misalnya, dengan membatasi akses SSH dan mengonfigurasi ACL sistem file) sehingga hanya personel yang berwenang yang dapat melihat log. Untuk penyimpanan jangka panjang, audit, dan kepatuhan, gunakan agen logging (seperti Fluentd) untuk mengumpulkan dan mengekspor log audit ke sistem logging eksternal, seperti AWS CloudWatch, Grafana Loki, Elasticsearch, Datadog, Splunk, atau Cloud Monitoring.

Retensi file

Spanner Omni menerapkan kebijakan retensi berbasis ukuran dan berbasis usia untuk file log audit lokal:

  • Batas ukuran: file log audit dipertahankan hingga total penggunaan disknya melebihi 1 GB. Jika disk terpisah digunakan untuk direktori log, file log audit akan dialokasikan kuota 25% dari total ruang di disk tersebut.

  • Batas usia: file log audit dipertahankan hingga 14 hari, asalkan batas ukuran tidak terlampaui.

Jika salah satu batas tercapai, Spanner Omni akan menghapus file log terlama terlebih dahulu. Jika Anda perlu menyimpan log audit selama lebih dari 14 hari, ekspor log tersebut ke sistem logging eksternal.

Struktur entri log audit

Entri log audit Spanner Omni diformat sebagai JSON dan menggunakan definisi struktural yang sama dengan Spanner. Untuk mengetahui informasi selengkapnya, lihat Struktur entri log audit dalam dokumentasi Cloud Audit Logs.

Nama log

Tidak seperti Spanner versi terkelola multi-tenant, Spanner Omni berjalan sebagai deployment single-tenant di server khusus. Karena tidak ada tenant atau project lain di server ini, semua entri log audit menggunakan ID project default.

projects/default/logs/cloudaudit.googleapis.com/activity
projects/default/logs/cloudaudit.googleapis.com/data_access
projects/default/logs/cloudaudit.googleapis.com/system_event

Identitas pemanggil

Log audit mencatat identitas pengguna yang melakukan operasi yang dicatat dalam log. Identitas pemanggil disimpan di kolom AuthenticationInfo objek AuditLog.

Di Spanner Omni, identitas pemanggil adalah nama pengguna pengguna yang diautentikasi yang melakukan panggilan API. Untuk mengetahui informasi tentang cara membuat dan mengelola pengguna, lihat Autentikasi dan otorisasi.

Alamat IP pemanggil

Spanner Omni tidak mendukung pencatatan alamat IP pemanggil dalam log audit.

Metode menurut jenis izin

Saat Anda memanggil metode API, Spanner Omni akan membuat log audit berdasarkan jenis izin yang diperlukan untuk menjalankan metode. Metode yang memerlukan izin ADMIN_READ, DATA_READ, atau DATA_WRITE akan menghasilkan log audit Akses Data, sedangkan metode yang memerlukan izin ADMIN_WRITE akan menghasilkan log audit Aktivitas Admin.

Spanner Omni mendukung sebagian besar metode Cloud Spanner API. Untuk klasifikasi metode audit logging yang digunakan bersama oleh Spanner dan Spanner Omni, lihat Metode menurut jenis izin di dokumentasi Spanner.

Spanner Omni juga memperkenalkan metode API unik yang menghasilkan log audit. Metode yang ditandai sebagai operasi yang berjalan lama (LRO) biasanya menghasilkan dua entri log audit: satu saat operasi dimulai dan satu lagi saat operasi berakhir. Untuk mengetahui informasi selengkapnya, lihat Operasi yang berjalan lama di dokumentasi Cloud Audit Logs.

Jenis izin Metode
ADMIN_READ google.spanner.omni.v1.OmniAdmin.GetLocation
google.spanner.omni.v1.OmniAdmin.ListLocation
google.spanner.omni.v1.OmniAdmin.GetLocationDistance
google.spanner.omni.v1.OmniAdmin.ListLocationDistance
google.spanner.omni.v1.OmniAdmin.GetZone
google.spanner.omni.v1.OmniAdmin.ListZones
google.spanner.omni.v1.OmniAdmin.GetServer
google.spanner.omni.v1.OmniAdmin.ListServers
google.spanner.omni.v1.OmniAdmin.GetDeployment
google.spanner.omni.v1.OmniAdmin.ListBackupDescriptors
google.spanner.omni.v1.OmniAdmin.GetExternalStorage
google.spanner.omni.v1.OmniAdmin.ListExternalStorages
google.spanner.omni.v1.OmniAdmin.GetIamPolicy
google.spanner.omni.v1.UsersService.GetUser
google.spanner.omni.v1.UsersService.ListUsers
google.spanner.omni.v1.UsersService.GetRole
google.spanner.omni.v1.UsersService.ListRoles
ADMIN_WRITE google.spanner.omni.v1.OmniAdmin.CreateLocation
google.spanner.omni.v1.OmniAdmin.DeleteLocation
google.spanner.omni.v1.OmniAdmin.CreateLocationDistance
google.spanner.omni.v1.OmniAdmin.UpdateLocationDistance
google.spanner.omni.v1.OmniAdmin.DeleteLocationDistance
google.spanner.omni.v1.OmniAdmin.CreateZone
google.spanner.omni.v1.OmniAdmin.DeleteZone
google.spanner.omni.v1.OmniAdmin.CreateServer
google.spanner.omni.v1.OmniAdmin.DeleteServer
google.spanner.omni.v1.OmniAdmin.CreateExternalStorage
google.spanner.omni.v1.OmniAdmin.DeleteExternalStorage
google.spanner.omni.v1.OmniAdmin.SetIamPolicy
google.spanner.omni.v1.OmniAdmin.ImportBackup (LRO)
google.spanner.omni.v1.UsersService.CreateUser
google.spanner.omni.v1.UsersService.DeleteUser
google.spanner.omni.v1.UsersService.UpdateUser
DATA_READ google.spanner.omni.v1.ImportExportService.ExportDatabase (LRO)
DATA_WRITE google.spanner.omni.v1.ImportExportService.ImportDatabase (LRO)

Metode yang tidak menghasilkan log audit

Spanner Omni mengecualikan metode yang sama dari logging audit seperti Spanner. Metode ini dikecualikan karena merupakan metode bervolume tinggi yang melibatkan biaya pembuatan dan penyimpanan log yang signifikan, memiliki nilai audit yang rendah, atau karena audit atau log platform lain sudah menyediakan cakupan metode. Untuk mengetahui daftar lengkap metode yang dikecualikan ini, lihat Metode yang dikecualikan di dokumentasi Spanner.

Selain itu, metode google.spanner.omni.v1.LoginService.Login tidak menghasilkan log audit karena mendahului pemeriksaan autentikasi dan otorisasi.

Durasi pemrosesan

Kolom durasi pemrosesan dalam log audit mencatat durasi pemrosesan API, seperti durasi eksekusi kueri SQL, bukan penundaan penulisan log audit. Untuk mengetahui informasi selengkapnya, lihat Durasi pemrosesan di dokumentasi Spanner.

Perbandingan dengan Spanner versi terkelola

Meskipun pencatatan audit di Spanner Omni memiliki konsep dan pemformatan inti yang sama dengan Spanner, ada beberapa perbedaan utama dalam cara log disimpan, dikonfigurasi, dan dikelola.

Perbedaan

  • Tujuan log: Spanner Omni menulis log audit langsung ke sistem file lokal server Spanner Omni Anda, bukan mengekspornya ke Cloud Logging.

  • Konfigurasi: di Spanner, Anda mengonfigurasi log audit Akses Data di tingkat project menggunakan konsol Google Cloud , Google Cloud CLI, atau Identity and Access Management API. Di Spanner Omni, Anda dapat mengonfigurasi log audit Akses Data menggunakan Spanner Omni CLI atau Spanner Omni API.

  • Enkripsi TLS dan mTLS: Spanner menerapkan enkripsi TLS secara default, dan tidak dapat dinonaktifkan. Di Spanner Omni, jika Anda memilih untuk men-deploy tanpa enkripsi TLS atau mTLS, log audit tidak akan dibuat.

  • Retensi: Log audit Spanner disimpan di Logging sesuai dengan setelan retensi Logging Anda. Spanner Omni menyimpan file log audit lokal hingga 14 hari atau hingga batas ukuran disk tercapai, dan mengandalkan Anda untuk mengekspor log ke sistem eksternal untuk penyimpanan jangka panjang.

Persamaan

  • Format log: kedua produk menulis log audit dalam format JSON sesuai dengan struktur Google Cloud AuditLog standar.

  • Konfigurasi Akses Data: kedua produk memungkinkan Anda mengaktifkan log audit Akses Data secara terperinci menurut jenis izin (ADMIN_READ, DATA_READ, DATA_WRITE) dan mendukung pengecualian pengguna tertentu agar tidak dicatat.

Langkah berikutnya