Bagikan melalui


Pengelogan audit di Azure Database for PostgreSQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Pengelogan audit aktivitas database di server fleksibel Azure Database for PostgreSQL tersedia melalui pgaudit ekstensi. pgaudit menyediakan sesi terperinci dan/atau pengelogan audit objek.

Jika Anda menginginkan log tingkat sumber daya Azure untuk operasi seperti komputasi dan penskalaan penyimpanan, lihat Log Aktivitas Azure.

Pertimbangan penggunaan

Secara default, pgaudit pernyataan log dan pernyataan log reguler Anda dipancarkan menggunakan fasilitas pengelogan standar Postgres. Di server fleksibel Azure Database for PostgreSQL, Anda dapat mengonfigurasi semua log untuk dikirim ke penyimpanan Log Azure Monitor untuk analisis nanti di Analitik Log. Jika Anda mengaktifkan pengelogan sumber daya Azure Monitor, log Anda secara otomatis dikirim (dalam format JSON) ke log Azure Storage, Event Hubs, dan/atau Azure Monitor, tergantung pilihan Anda.

Untuk mempelajari cara menyiapkan pengelogan ke log Azure Storage, Azure Event Hubs, atau Azure Monitor, kunjungi bagian log sumber daya dari artikel log server.

Menginstal ekstensi

Agar dapat menggunakan pgaudit ekstensi, Anda perlu mengizinkan daftar, memuat, dan membuat ekstensi di database tempat Anda berencana menggunakannya.

Mengonfigurasi pengaturan ekstensi

pgaudit memungkinkan Anda mengonfigurasi pengelogan audit sesi atau objek. Pengelogan audit sesi mengeluarkan log terperinci dari pernyataan yang dijalankan. Pengelogan audit objek adalah audit yang tercakup dalam relasi tertentu. Anda dapat memilih untuk menyiapkan satu atau kedua jenis pengelogan.

Setelah mengaktifkan pgaudit, Anda dapat mengonfigurasi parameternya untuk mulai pengelogan.

Untuk mengonfigurasi pgaudit, Anda dapat mengikuti instruksi berikut:

Menggunakan Portal Azure:

  1. Pilih instans Azure Database Anda untuk server fleksibel PostgreSQL.

  2. Dari menu sumber daya, di bawah Pengaturan, pilih Parameter server.

  3. Cari parameter pgaudit.

  4. Pilih parameter yang sesuai untuk diedit. Misalnya untuk mulai mencatat , INSERT, UPDATE, DELETETRUNCATE, dan COPY pernyataan, atur pgaudit.log ke WRITE.

  5. Pilih tombol Simpan untuk menyimpan perubahan.

Dokumentasi pgaudit resmi memberikan definisi setiap parameter. Uji parameter terlebih dahulu dan konfirmasikan bahwa Anda mendapatkan perilaku yang diharapkan.

Misalnya, mengatur pgaudit.log_client ke AKTIF tidak hanya menulis peristiwa audit ke log server, tetapi juga mengirimkannya ke proses klien (seperti psql). Pengaturan ini umumnya harus dibiarkan nonaktif.

pgaudit.log_level hanya diaktifkan ketika pgaudit.log_client aktif.

Di server fleksibel Azure Database for PostgreSQL, pgaudit.log tidak dapat diatur menggunakan pintasan tanda (minus) seperti yang - dijelaskan dalam pgaudit dokumentasi. Semua kelas pernyataan yang diperlukan (READ, WRITE, dll) harus ditentukan secara individual.

Jika Anda mengatur log_statement parameter ke DDL atau ALL dan menjalankan CREATE ROLE/USER ... WITH PASSWORD ... ; perintah atau ALTER ROLE/USER ... WITH PASSWORD ... ;, maka PostgreSQL membuat entri di log PostgreSQL tempat kata sandi dicatat dalam teks yang jelas, yang dapat menyebabkan potensi risiko keamanan. Ini adalah perilaku yang diharapkan per desain mesin PostgreSQL.

Namun, Anda dapat menggunakan pgaudit ekstensi dan mengatur pgaudit.log ke DDL, yang tidak merekam pernyataan apa pun CREATE/ALTER ROLE di log server Postgres, tidak seperti saat Anda mengatur log_statement ke DDL. Jika Anda perlu mencatat pernyataan ini, Anda juga dapat mengatur pgaudit.logke ROLE, yang meredaksi kata sandi dari log saat pengelogan CREATE/ALTER ROLE.

Format log audit

Setiap entri audit dimulai dengan AUDIT:. Format sisa entri dirinci dalam dokumentasi pgaudit.

Memulai

Untuk memulai dengan cepat, atur pgaudit.log ke ALL, dan buka log server Anda untuk meninjau output.

Melihat log audit

Cara mengakses log tergantung pada titik akhir yang Anda pilih. Lihat artikel akun penyimpanan log untuk Azure Storage. Lihat artikel streaming log Azure untuk Azure Event Hubs.

Untuk Log Azure Monitor, log dikirim ke ruang kerja yang Anda pilih. Log Postgres menggunakan mode pengumpulan AzureDiagnostics, sehingga dapat dikueri dari tabel AzureDiagnostics. Pelajari selengkapnya tentang kueri dan pemberitahuan dalam ringkasan Kueri Log Azure Monitor.

Anda dapat menggunakan kueri ini untuk memulai. Anda dapat mengonfigurasi peringatan berdasarkan kueri.

Cari semua pgaudit entri di log Postgres untuk server tertentu pada hari terakhir

AzureDiagnostics
| where Resource =~ "<flexible-server-name>"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"