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 ekstensi Audit PostgreSQL: pgAudit. 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, pernyataan log pgAudit dikeluarkan bersama dengan pernyataan log reguler Anda 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 analitik selanjutnya di Analitik Log. Jika Anda mengaktifkan pengelogan sumber daya Azure Monitor, log Anda akan dikirim secara otomatis (dalam format JSON) ke Azure Storage, Azure Event Hubs, dan/atau log Azure Monitor, bergantung pada 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.

Memasang pgAudit

Sebelum Anda dapat menginstal ekstensi pgAudit di server fleksibel Azure Database for PostgreSQL, Anda perlu mengizinkan-daftar ekstensi pgAudit untuk digunakan.

Menggunakan Portal Azure:

  1. Pilih instans server fleksibel Azure Database for PostgreSQL Anda.
  2. Di bar samping, pilih Parameter Server.
  3. Cari parameter azure.extensions.
  4. Pilih pgAudit sebagai ekstensi yang ingin Anda izinkan daftarnya. Screenshot showing Azure Database for PostgreSQL - allow-listing extensions for installation.

Menggunakan Azure CLI:

Anda dapat menambahkan ekstensi ke daftar yang diizinkan melalui perintah set parameter CLI.

az postgres flexible-server parameter set --resource-group <your resource group>  --server-name <your server name> --subscription <your subscription id> --name azure.extensions --value pgAudit

Untuk memasang pgAudit, Anda perlu memasukkannya ke dalam pustaka bersama server yang dimuat sebelumnya. Perubahan pada parameter shared_preload_libraries Postgres mengharuskan hidupkan ulang server berlaku. Anda dapat mengubah parameter menggunakan Portal Azure, Azure CLI, atau REST API.

Menggunakan Portal Azure:

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

  2. Di bar samping, pilih Parameter Server.

  3. Cari parameter shared_preload_libraries.

  4. Pilih pgaudit. Screenshot showing Azure Database for PostgreSQL flexible server enabling shared_preload_libraries for pgaudit.

  5. Anda dapat memeriksa apakah pgaudit dimuat dalam shared_preload_libraries dengan menjalankan kueri berikut di psql:

    show shared_preload_libraries;
    

    Anda akan melihat pgaudit dalam hasil kueri yang akan mengembalikan shared_preload_libraries.

  6. Koneksi ke server Anda menggunakan klien (seperti psql) dan aktifkan ekstensi pgAudit.

    CREATE EXTENSION pgaudit;
    

Tip

Jika Anda melihat kesalahan, konfirmasikan bahwa Anda menghidupkan ulang server setelah menyimpan shared_preload_libraries.

Pengaturan pgAudit

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 Anda mengaktifkan pgAudit, Anda dapat mengonfigurasi parameternya untuk memulai pencatatan. Untuk mengonfigurasikan pgAudit, Anda dapat mengikuti petunjuk di bawah ini. Menggunakan Portal Azure:

  1. Pilih server Azure Database for PostgreSQL Anda.
  2. Di bar samping, pilih Parameter Server.
  3. Cari parameter pgaudit.
  4. Pilih parameter pengaturan yang sesuai untuk diedit. Misalnya untuk mulai mengatur pengelogan pgaudit.log ke WRITEScreenshot showing Azure Database for PostgreSQL - configuring logging with pgaudit
  5. Klik tombol Simpan untuk menyimpan perubahan

Dokumentasi pgAudit memberikan definisi masing-masing parameter. Uji parameter terlebih dahulu dan konfirmasikan bahwa Anda mendapatkan perilaku yang diharapkan.

Catatan

Mengatur pgaudit.log_client ke ON akan mengalihkan log ke proses klien (seperti psql) alih-alih ditulis ke file. Pengaturan ini umumnya harus dibiarkan nonaktif.

pgaudit.log_level hanya diaktifkan ketika pgaudit.log_client aktif.

Catatan

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

Catatan

Jika Anda mengatur parameter log_statement ke DDL atau ALL, dan menjalankan perintah CREATE ROLE/USER ... WITH PASSWORD ... ; atau ALTER ROLE/USER ... WITH PASSWORD ... ;, maka PostgreSQL membuat entri di log PostgreSQL, tempat kata sandi dicatat dalam format teks yang jelas, yang dapat menyebabkan potensi risiko keamanan. Ini adalah perilaku yang diharapkan sesuai dengan desain mesin PostgreSQL. Namun, Anda dapat menggunakan ekstensi PGAudit dan mengatur parameter pgaudit.log='DDL' di halaman parameter server, yang tidak merekam pernyataan CREATE/ALTER ROLE apa pun di Log Postgres, tidak seperti pengaturan log_statement='DDL' Postgres. Jika Anda perlu mencatat pernyataan ini, Anda dapat menambahkan pgaudit.log ='ROLE', yang mana saat pengelogan 'CREATE/ALTER ROLE' akan mengedit kata sandi dari log.

Format log audit

Setiap entri audit ditunjukkan oleh AUDIT: di dekat awal baris log. Format sisa entri dirinci dalam dokumentasi pgAudit.

Memulai

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

Melihat log audit

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

Untuk Log Azure Monitor, log dikirim ke ruang kerja yang Anda pilih. Log Postgres menggunakan mode pengumpulan AzureDiagnostics, sehingga dapat dikueri dari tabel AzureDiagnostics. Bidang dalam tabel dijelaskan di bawah ini. 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 entri pgAudit di log Postgres untuk server tertentu di hari terakhir

AzureDiagnostics
| where Resource =~ "myservername"
| where Category == "PostgreSQLLogs"
| where TimeGenerated > ago(1d)
| where Message contains "AUDIT:"

Langkah berikutnya