Pengelogan audit di server fleksibel Azure Database for PostgreSQL

Anda dapat mengaudit aktivitas database di Azure Database for PostgreSQL dengan menggunakan pgaudit ekstensi. pgaudit menyediakan pencatatan log audit yang terperinci untuk sesi dan objek.

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

Pertimbangan penggunaan

Secara bawaan, pgaudit mencatat pernyataan log, dan fasilitas pencatatan log standar Postgres menghasilkan pernyataan log biasa Anda. Di Azure Database for PostgreSQL, Anda dapat mengonfigurasi semua log yang akan dikirim ke penyimpanan log Azure Monitor untuk analisis nanti di Log Analytics. Jika Anda mengaktifkan pengelogan sumber daya Azure Monitor, log Anda secara otomatis dikirim (dalam format JSON) ke log Azure Storage, Azure Event Hubs, dan 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

Untuk menggunakan ekstensi pgaudit, izinkan, muat, dan buat ekstensi tersebut di database tempat Anda akan menggunakannya.

Mengonfigurasi pengaturan ekstensi

pgaudit memungkinkan Anda mengonfigurasi pengelogan audit sesi atau objek. Pencatatan audit sesi mengeluarkan log terperinci dari pernyataan yang dieksekusi. Pencatatan audit objek adalah audit yang dibatasi pada hubungan tertentu. Anda dapat memilih untuk menyiapkan satu atau kedua jenis pengelogan.

Setelah Anda mengaktifkan pgaudit, konfigurasikan parameternya untuk mulai pengelogan.

Untuk mengonfigurasi pgaudit, ikuti instruksi berikut:

Gunakan portal Azure:

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

  2. Di menu sumber daya, di bawah bagian Pengaturan , pilih Parameter.

  3. Cari parameter pgaudit.

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

  5. Pilih Simpan untuk menyimpan perubahan Anda.

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

Misalnya, mengatur pgaudit.log_client ke ON tidak hanya menulis peristiwa audit ke log server, tetapi juga mengirimkannya ke proses klien (seperti psql). Umumnya, biarkan pengaturan ini dinonaktifkan.

pgaudit.log_level hanya diaktifkan ketika pgaudit.log_client aktif.

Dalam server fleksibel Azure Database untuk PostgreSQL, Anda tidak dapat mengatur pgaudit.log dengan menggunakan pintasan tanda - (minus) sebagaimana dijelaskan dalam dokumentasi pgaudit. Tentukan semua kelas pernyataan yang diperlukan (READ, WRITE, dan sebagainya) 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 ... ; , PostgreSQL membuat entri di log PostgreSQL tempat kata sandi dicatat dalam teks yang jelas, yang dapat menyebabkan potensi risiko keamanan. Perilaku ini diharapkan sesuai 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 ke log, Anda juga dapat mengatur pgaudit.log ke ROLE, yang menyamarkan kata sandi dari log sambil mencatat CREATE/ALTER ROLE.

Format log audit

Setiap entri audit dimulai dengan AUDIT:. Format bagian entri lainnya dijelaskan secara rinci dalam dokumentasipgaudit.

Memulai Langkah Pertama

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

Melihat log audit

Metode untuk mengakses log tergantung pada titik akhir mana yang Anda pilih. Untuk Azure Storage, lihat artikel akun penyimpanan log. Untuk Azure Event Hubs, lihat artikel mengalirkan log Azure.

Untuk log Azure Monitor, Anda mengirim log ke ruang kerja yang Anda pilih. Log Postgres menggunakan mode pengumpulan AzureDiagnostics , sehingga Anda dapat mengkuerinya dari tabel AzureDiagnostics. Untuk mempelajari selengkapnya tentang kueri dan pemberitahuan, lihat gambaran umum 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 di hari terakhir.

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

Peningkatan versi utama dengan ekstensi pgaudit terinstal

Selama peningkatan versi utama, proses secara otomatis menghilangkan ekstensi pgaudit dan kemudian membuatnya kembali setelah peningkatan selesai. Saat proses memulihkan ekstensi, ekstensi tidak secara otomatis mempertahankan konfigurasi kustom apa pun yang diatur di pgaudit.log atau parameter terkait lainnya.