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:
Pilih instans Azure Database Anda untuk server fleksibel PostgreSQL.
Dari menu sumber daya, di bawah Pengaturan, pilih Parameter server.
Cari parameter
pgaudit
.Pilih parameter yang sesuai untuk diedit. Misalnya untuk mulai mencatat ,
INSERT
,UPDATE
,DELETE
TRUNCATE
, danCOPY
pernyataan, aturpgaudit.log
keWRITE
.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.log
ke 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:"