Log audit

Dokumen ini berisi penjelasan mengenai log audit yang dibuat oleh Cloud SQL untuk PostgreSQL sebagai bagian dari Cloud Audit Logs.

Ringkasan

Layanan Google Cloud menulis log audit untuk membantu Anda menjawab pertanyaan, "Siapa yang melakukan apa, di mana, dan kapan?" dalam resource Google Cloud.

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

Untuk membaca ringkasan umum tentang Cloud Audit Logs, lihat Ringkasan Cloud Audit Logs. Untuk mendapatkan pemahaman yang lebih mendalam tentang format log audit, lihat Memahami log audit.

Log audit yang tersedia

Jenis log audit berikut tersedia untuk Cloud SQL untuk PostgreSQL:

  • Log audit Aktivitas Admin

    Mencakup operasi "penulisan admin" yang menulis metadata atau informasi konfigurasi.

    Anda tidak dapat menonaktifkan log audit Aktivitas Admin.

  • Log audit Akses Data

    Mencakup operasi "pembacaan admin" yang membaca metadata atau informasi konfigurasi. Juga mencakup operasi "pembacaan data" dan "penulisan data" yang membaca atau menulis data yang disediakan pengguna.

    Untuk menerima log audit Akses Data, Anda harus mengaktifkannya secara eksplisit.

  • Log audit Peristiwa Sistem

    Mengidentifikasi tindakan Google Cloud otomatis yang mengubah konfigurasi resource.

    Anda tidak dapat menonaktifkan log audit Peristiwa Sistem.

Untuk deskripsi yang lebih lengkap tentang jenis log audit, lihat Jenis log audit.

Operasi yang diaudit

Tabel berikut merangkum operasi API yang sesuai untuk setiap jenis log audit di Cloud SQL untuk PostgreSQL:

Kategori log audit Cloud SQL untuk operasi PostgreSQL
Log audit Aktivitas Admin Operasi Cloud SQL Admin API yang mengubah metadata instance (DATA_WRITE):
cloudsql.backupRuns.create
cloudsql.backupRuns.delete
cloudsql.instances.addServerCa
cloudsql.instances.clone
cloudsql.instances.connect
cloudsql.instances.create
cloudsql.instances.createTagBinding
cloudsql.instances.delete
cloudsql.instances.deleteTagBinding
cloudsql.instances.demoteMaster
cloudsql.instances.failover
cloudsql.instances.promoteReplica
cloudsql.instances.resetSslConfig
cloudsql.instances.restart
cloudsql.instances.restoreBackup
cloudsql.instances.rotateServerCa
cloudsql.instances.startReplica
cloudsql.instances.stopReplica
cloudsql.instances.truncateLog
cloudsql.instances.update
cloudsql.sslCerts.create
cloudsql.sslCerts.delete
Log audit Akses Data Operasi Cloud SQL Admin API yang membaca metadata instance (DATA_READ):
cloudsql.backupRuns.get
cloudsql.backupRuns.list
cloudsql.databases.create
cloudsql.databases.delete
cloudsql.databases.get
cloudsql.databases.list
cloudsql.databases.update
cloudsql.instances.export
cloudsql.instances.get
cloudsql.instances.import
cloudsql.instances.list
cloudsql.instances.listEffectiveTags
cloudsql.instances.listServerCas
cloudsql.instances.listTagBindings
cloudsql.sslCerts.get
cloudsql.sslCerts.list
cloudsql.users.create
cloudsql.users.delete
cloudsql.users.get
cloudsql.users.list
cloudsql.users.update
Log audit Peristiwa Sistem Tindakan sistem Cloud SQL untuk PostgreSQL yang dilakukan pada instance:
cloudsql.instances.automaticBackup
cloudsql.instances.AutomaticStorageIncrease

Format log audit

Entri log audit mencakup objek berikut:

  • Entri log itu sendiri, yang merupakan objek dengan jenis LogEntry. Kolom berguna yang meliputi hal berikut ini:

    • logName berisi ID resource dan jenis log audit.
    • resource berisi target operasi yang diaudit.
    • timeStamp berisi waktu operasi yang diaudit.
    • protoPayload berisi informasi yang diaudit.
  • Data logging audit, yang merupakan objek AuditLog yang disimpan di kolom protoPayload entri log.

  • Informasi audit khusus layanan opsional, yang merupakan objek khusus layanan. Untuk integrasi sebelumnya, objek ini disimpan di kolom serviceData dari objek AuditLog; integrasi berikutnya menggunakan kolom metadata.

Untuk kolom lain dalam objek ini, dan cara menafsirkannya, pelajari Memahami log audit.

Payload proto

protoPayload berisi data operasi yang terkait dengan peristiwa yang diaudit. Cloud SQL membuat protoPayload saat update, peningkatan penyimpanan otomatis, dan operasi pencadangan otomatis selesai.

Tabel berikut menjelaskan kolom metadata log audit dari operasi ini:

Update: cloudsql.instances.update

Kolom metadata
intents

Daftar intent serta nilai lama dan baru propertinya.

intent

Jenis operasi update. Nilainya dapat berupa UPDATE_TIER, UPDATE_ZONE, INCREASE_STORAGE_SIZE, ENABLE_HIGH_AVAILABILITY, DISABLE_HIGH_AVAILABILITY, UPDATE_FLAGS, atau UPDATE_BACKUP_TRANSACTION_LOG_RETENTION_DAY.

property

Properti intent yang diperbarui.

oldValue

Nilai properti sebelum operasi update dimulai.

newValue

Nilai properti setelah operasi pembaruan selesai.

Peningkatan Penyimpanan Otomatis: cloudsql.instances.automaticStorageIncrease

Kolom metadata
storageIncreaseStartTime

Waktu mulai operasi peningkatan penyimpanan otomatis.

storageIncreaseCompletionTime

Waktu berakhir operasi peningkatan penyimpanan otomatis.

oldStorageSizeGb

Ukuran penyimpanan sebelum operasi peningkatan penyimpanan otomatis dimulai.

newStorageSizeGb

Ukuran penyimpanan setelah operasi peningkatan penyimpanan otomatis selesai.

Pencadangan otomatis: cloudsql.instances.automatedBackup

Kolom metadata
windowStartTime

Waktu mulai periode pencadangan otomatis.

windowEndTime

Waktu berakhir periode pencadangan otomatis.

backupStartTime

Waktu mulai operasi pencadangan otomatis.

backupCompletionTime

Waktu berakhir operasi pencadangan otomatis.

windowStatus

Status pencadangan yang dibuat selama periode pencadangan.

Untuk informasi selengkapnya, lihat Melihat log audit untuk pencadangan otomatis.

Nama log

Nama log Cloud Audit Logs mencakup ID resource yang menunjukkan project Google Cloud atau entity Google Cloud lainnya yang memiliki log audit, dan apakah log berisi Aktivitas Admin, Akses Data, Kebijakan Ditolak, atau data logging audit Peristiwa Sistem.

Berikut adalah nama log audit, termasuk variabel untuk ID resource:

   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

Nama layanan

Log audit Cloud SQL untuk PostgreSQL menggunakan nama layanan cloudsql.googleapis.com.

Untuk mengetahui daftar lengkap semua nama layanan Cloud Logging API dan jenis resource yang dimonitor, lihat Memetakan layanan ke resource.

Jenis resource

Log audit Cloud SQL untuk PostgreSQL menggunakan jenis resource cloudsql_database untuk semua log audit.

Untuk mengetahui daftar semua jenis resource yang dimonitor dan informasi deskriptif Cloud Logging, lihat Jenis resource yang dimonitor.

Identitas pemanggil

Alamat IP pemanggil disimpan di kolom RequestMetadata.caller_ip pada objek AuditLog. Logging mungkin menyamarkan identitas pemanggil dan alamat IP tertentu.

Untuk mengetahui informasi tentang informasi yang disamarkan dalam log audit, lihat Identitas pemanggil di log audit.

Mengaktifkan logging audit

Log audit Peristiwa Sistem selalu diaktifkan; Anda tidak dapat menonaktifkannya.

Log audit Aktivitas Admin selalu diaktifkan; Anda tidak dapat menonaktifkannya.

Log audit Akses Data dinonaktifkan secara default dan tidak ditulis kecuali diaktifkan secara eksplisit (dengan pengecualian log audit Akses Data untuk BigQuery, yang tidak dapat dinonaktifkan).

Untuk informasi tentang cara mengaktifkan sebagian atau semua log audit Akses Data Anda, lihat Mengaktifkan log audit Akses Data.

Izin dan peran

Izin dan peran IAM menentukan kemampuan Anda untuk mengakses data log audit di resource Google Cloud.

Saat memutuskan Izin dan peran khusus logging mana yang berlaku untuk kasus penggunaan Anda, pertimbangkan hal berikut:

  • Peran Logs Viewer (roles/logging.viewer) memberi Anda akses hanya baca ke log audit Aktivitas Admin, Kebijakan Ditolak, dan Peristiwa Sistem. Jika hanya memiliki peran ini, Anda tidak dapat melihat log audit Akses Data yang ada di bucket _Default.

  • Peran Private Logs Viewer(roles/logging.privateLogViewer) mencakup izin yang ada di roles/logging.viewer, serta kemampuan untuk membaca log audit Akses Data di bucket _Default.

    Perlu diperhatikan bahwa jika log pribadi ini disimpan dalam bucket yang ditentukan pengguna, maka setiap pengguna yang memiliki izin untuk membaca log dalam bucket tersebut dapat membaca log pribadi. Untuk informasi selengkapnya tentang bucket log, lihat Ringkasan perutean dan penyimpanan.

Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM yang berlaku untuk data log audit, lihat Kontrol akses dengan IAM.

Melihat log

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

Logs Explorer memungkinkan Anda melihat filter setiap entri log. Jika Anda ingin menggunakan SQL untuk menganalisis grup entri log, gunakan halaman Log Analytics. Untuk informasi selengkapnya, lihat:

Sebagian besar log audit dapat dilihat di Cloud Logging menggunakan Konsol Google Cloud, gcloud CLI, atau Logging API. Namun, untuk log audit yang terkait dengan penagihan, Anda hanya dapat menggunakan gcloud CLI atau Logging API.

Konsol

Di Konsol Google Cloud, Anda dapat menggunakan Logs Explorer guna mengambil entri log audit untuk project, folder, atau organisasi Google Cloud Anda:

  1. Di konsol Google Cloud, buka halaman Logs Explorer:

    Buka Logs Explorer

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

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

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

    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 Builder kueri, lakukan langkah berikut ini:

    • Di Jenis resource, pilih resource Google Cloud 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 Jalankan kueri.

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

    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 Membangun kueri di Logs Explorer.

gcloud

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

Untuk membaca entri log audit level project Google Cloud Anda, 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

Saat membangun kueri, sediakan ID resource yang valid di setiap nama log. Misalnya, jika kueri Anda menyertakan PROJECT_ID, ID project yang Anda berikan harus merujuk ke project Google Cloud yang saat ini dipilih.

Misalnya, untuk menggunakan Logging API guna melihat entri log audit level project Anda, lakukan tindakan berikut:

  1. Buka bagian Coba API ini dalam dokumentasi untuk metode entries.list.

  2. Masukkan string berikut ke dalam bagian Isi permintaan di formulir Coba API ini. Mengklik formulir yang telah diisi ini akan otomatis mengisi isi permintaan, tetapi Anda harus memberikan PROJECT_ID yang valid di setiap nama log.

    {
      "resourceNames": [
        "projects/PROJECT_ID"
      ],
      "pageSize": 5,
      "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com"
    }
    
  3. Klik Jalankan.

Rutekan log audit

Anda dapat merutekan log audit ke tujuan yang didukung dengan cara yang sama seperti saat merutekan jenis log lainnya. Berikut adalah beberapa alasan mengapa Anda mungkin ingin merutekan log audit Anda:

  • Untuk menyimpan log audit dalam jangka panjang atau untuk menggunakan kemampuan penelusuran yang lebih andal, Anda dapat merutekan salinan log audit Anda ke Cloud Storage, BigQuery, atau Pub/Sub. Dengan Pub/Sub, Anda dapat merutekan log audit ke aplikasi lain, repositori lain, dan ke pihak ketiga.

  • Untuk mengelola log audit di seluruh organisasi, Anda dapat membuat sink gabungan yang dapat merutekan log dari setiap atau semua project Google Cloud di organisasi.

  • Jika log audit Akses Data yang diaktifkan membuat project Google Cloud Anda melebihi alokasi log, Anda dapat membuat sink yang mengecualikan log audit Akses Data dari Logging.

Untuk mendapatkan petunjuk tentang cara merutekan log, lihat Merutekan log ke tujuan yang didukung.

Harga

Untuk mengetahui informasi selengkapnya tentang harga, lihat ringkasan harga Cloud Logging.