Halaman ini menjelaskan pengauditan database di Cloud SQL menggunakan fungsi Audit SQL Server.
Ringkasan
Pada Cloud SQL, kemampuan Audit Server SQL meliputi hal berikut:
- Membuat spesifikasi audit server
- Melacak dan mencatat peristiwa tingkat server dan database ke dalam log
Untuk mengetahui informasi tambahan tentang kemampuan Audit SQL Server, lihat Audit SQL Server (Database Engine).
Sebelum memulai
Sebelum mengaktifkan audit database, tinjau prasyarat pada bagian ini.
Bucket Cloud Storage untuk file audit
File audit (log audit) diupload ke lokasi bucket Cloud Storage. Dengan demikian, Anda mungkin perlu membuat bucket yang dimiliki oleh akun Google Cloud Anda.
Atau, Anda dapat menggunakan lokasi bucket yang dimiliki oleh akun lain. Saat
mengaktifkan audit, jika Anda memiliki izin yang diperlukan,
makaroles/storage.objectAdmin
peran
diberikan secara otomatis untuk mengupload audit ke lokasi bucket
akun layanan yang diberikan. Jika
tidak memiliki izin yang diperlukan, Anda harus memberikannya untuk
akun layanan nanti.
Pengguna yang valid untuk mengaktifkan audit
Untuk mengaktifkan dan membuat spesifikasi audit penggunasqlserver
default harus tersedia. Saat Anda membuat instance Cloud SQL untuk SQL
Server, pengguna sqlserver
default telah dibuat untuk Anda.
Mengaktifkan audit
Saat Anda mengaktifkan audit, diperlukan lokasi Cloud Storage. Hal berikut bersifat opsional:
- Periode retensi log pada instance
- Interval upload (frekuensi upload)
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview klik nama instance.
- Klik Edit.
- Pada bagian Customize your instance, klik Flags and parameter.
- Centang kotak di samping Aktifkan audit SQL Server.
- Tentukan bucket Cloud Storage sebagai lokasi upload file audit.
- Klik Advanced Options.
- Atau, tentukan jumlah hari untuk retensi log (1 hingga 7 hari; 7 hari adalah defaultnya).
- Atau, tentukan frekuensi upload log (file audit), dalam menit (1-720 menit; default-nya adalah 10 menit).
- Klik Simpan untuk menerapkan perubahan.
gcloud
Berikut perintah mengaktifkan audit:
gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=gs://my-bucket --audit-retention-interval=24h --audit-upload-interval=10m
Tabel berikut meringkas parameter
gcloud
operasi ini:
Parameter | Deskripsi | Nilai yang diizinkan | Nilai default |
--audit-bucket-path |
Wajib. Lokasi file audit diupload yakni bucket Cloud Storage. | Kosong jika audit dinonaktifkan. Jika tidak, jalur bucket yang dimulai dengan: gs:// |
Kosong, karena secara default audit dinonaktifkan. |
--audit-retention-interval |
Opsional. Jumlah hari untuk retensi log audit pada disk. | 1 sampai 7 hari. Hanya hari yang diizinkan. | 7 hari. |
--audit-upload-interval |
Opsional. Seberapa sering mengupload log audit (file audit). | 1-720 menit. | 10 menit. |
REST v1
Dengan menggunakan REST API, Anda dapat mengaktifkan pengauditan untuk instance. Seperti yang ditunjukkan pada prototipe permintaan berikut, Anda dapat menentukan bucket Cloud Storage, jumlah hari untuk retensi file audit dan, frekuensi upload file audit. Hanya lokasi bucket yang diperlukan. Untuk informasi selengkapnya, lihat SqlServerAuditConfig:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ "bucket":"gs://mybucket", "retentionInterval":"24h", "uploadInterval":"10m" } } }
REST v1beta4
Dengan menggunakan REST API, Anda dapat mengaktifkan pengauditan untuk instance. Seperti yang ditunjukkan pada prototipe permintaan berikut, Anda dapat menentukan bucket Cloud Storage, jumlah hari untuk retensi file audit dan, frekuensi upload file audit. Hanya lokasi bucket yang diperlukan. Untuk informasi selengkapnya, lihat SqlServerAuditConfig:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ "bucket":"gs://mybucket", "retentionInterval":"24h", "uploadInterval":"10m" } } }
Menonaktifkan audit
Bagian ini berisi opsi untuk menonaktifkan audit. Jika Anda menonaktifkan audit, semua file audit, termasuk yang belum diupload, akan dihapus dari instance. Selain itu, semua audit server dinonaktifkan dan harus diaktifkan kembali jika audit ingin dilanjutkan. Log audit yang diupload ke bucket Cloud Storage mungkin masih ada, tergantung pada setelan retensi Anda untuk bucket.
Berikut adalah opsi untuk menonaktifkan audit.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Overview klik nama instance.
- Klik Edit.
- Pada bagian Customize your instance, klik Flags and parameter.
- Hapus centang pada kotak di samping Enable SQL Server audit.
- Klik Simpan untuk menerapkan perubahan.
gcloud
Perintah yang menghilangkan nilai untuk parameter berikut
--audit-bucket-path
akan, menonaktifkan audit:
gcloud sql instances patch INSTANCE_NAME --audit-bucket-path=
REST v1
Hal yang menghilangkan kolom objek
sqlServerAuditConfig
berikut merupakan prototipe permintaan untuk menonaktifkan
audit:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ } } }
REST v1beta4
Hal yang menghilangkan kolom objek
sqlServerAuditConfig
berikut merupakan prototipe permintaan untuk menonaktifkan
audit:
{ "databaseVersion":"database-version", "name":"instance-id", "region":"region", "rootPassword":"password", "settings":{ "tier":"machine-type", "sqlServerAuditConfig":{ } } }
Mengupload otomatis file audit
Setelah Anda mengaktifkan audit, file audit yang dihasilkan akan diupload secara otomatis ke bucket Cloud Storage yang telah Anda tentukan.
File audit yang dihasilkan juga akan disimpan pada instance tersebut hingga periode retensi data yang dikonfigurasi (interval) berakhir. Setelah periode tersebut, file audit akan dihapus secara permanen, bahkan file yang tidak dapat diupload.
Membuat audit server
Setelah Anda mengaktifkan audit, pengguna sqlserver
default memiliki izin untuk
membuat, mengubah, dan menghapus audit server.
Gunakan perintah BUAT SERVER AUDIT untuk menentukan audit server baru. Anda juga dapat menggunakan antarmuka pengguna SQL Server Management Studio (SSMS) untuk membuat audit server.
Kategori parameter berikut diterapkan untuk semua audit server:
Kategori parameter | Nilai yang diizinkan |
Saat log audit gagal | Lanjutkan atau gagal |
Tujuan audit | File |
Jalur | /var/opt/mssql/audit
|
Ukuran file maksimal | 2-50 MB |
File rollover maksimum | Harus: tidak dikonfigurasi |
Jumlah file maksimum | Harus: tidak dikonfigurasi |
Mencadangkan kapasitas disk | Nonaktif |
Membaca audit
Membaca audit dari instance
Untuk mengambil data dari file audit yang dibuat oleh audit server, Anda dapat menggunakan
the following stored procedure: msdb.dbo.gcloudsql_fn_get_audit_file
. Prosedur
msdb.dbo.gcloudsql_fn_get_audit_file
menerima parameter yang sama
dengan sys.fn_get_audit_file
fungsi.
Oleh karena itu, untuk mengetahui informasi tentang penggunaan prosedur tersimpan tersebut, lihat
sys.fn_get_audit_file
.
Berikut adalah contoh penggunaan msdb.dbo.gcloudsql_fn_get_audit_file
prosedur untuk
mengambil data audit:
SELECT event_time, statement FROM msdb.dbo.gcloudsql_fn_get_audit_file('/var/opt/mssql/audit/*', NULL, NULL) WHERE statement LIKE '%INSERT%'
Membaca audit dari bucket
Untuk membaca audit melalui bucket Cloud Storage, Anda dapat mendownload file dari bucket ke instance SQL Server. Instance SQL Server tersebut dapat berupa:
- Instance Compute Engine Windows
- Instance Compute Engine Linux
- Jenis instance lain yang menjalankan SQL Server
File audit dari bucket harus ditransfer ke lokasi yang dapat diakses oleh
instance tersebut, seperti disk lokalnya. Kemudian, untuk menampilkan informasi dari
file audit, jalankan
sys.fn_get_audit_file
fungsi menggunakan peran anggota server admin tetap. Misalnya, dari
instance Windows, jika Anda mentransfer file audit ke D:\Audit
, Anda
dapat menggunakan perintah yang mirip dengan berikut ini:
SELECT event_time, statement FROM sys.fn_get_audit_file('D:\Audit\*.*', NULL, NULL) WHERE statement LIKE '%INSERT%'
Metrik pemantauan
Anda dapat memantau operasi terkait audit sebagai bagian dari Metrik Cloud SQLyang tersedia melalui Metrics Explorer:
- database/sqlserver/audits_upload_count. Metrik ini menunjukkan total upaya upload file audit, baik yang berhasil maupun yang gagal. Periksa metrik ini untuk memantau apakah upload telah berhasil.
- database/sqlserver/audits_size. Metrik ini menunjukkan jumlah ruang disk yang digunakan oleh file audit yang disimpan di instance pada saat pengukuran. Metrik ini memberikan ukuran total file audit pada instance dalam satuan bytes.
Praktik terbaik
- Untuk menghindari transfer file berukuran besar di berbagai region, pertimbangkan:
- Membuat bucket Cloud Storage multi-regional, atau
- Menyiapkan bucket Cloud Storage tujuan di region yang sama dengan instance
- Sebelum menggunakan fungsi Audit SQL Server, pertimbangkan untuk mengaktifkan peningkatan penyimpanan otomatis. Audit file bergantung pada ukuran total dan interval retensina. Hal tersebut mungkin memerlukan ruang disk yang signifikan.
- Setelah mengaktifkan audit, pastikan instance Anda dapat mengupload file audit ke bucket Cloud Storage. Jika pemohon yang menyiapkan audit tidak memiliki izin yang diperlukan untuk mengupload file ke bucket Cloud Storage, izin tidak akan diberikan secara otomatis.
- Menyiapkan kebijakan pemberitahuan berbasis metrik untuk memberi tahu Anda tentang upaya upload yang gagal dan penggunaan disk yang berlebihan.
- Agar tidak menyimpan terlalu banyak file audit dalam waktu yang terlalu lama, siapkan kebijakan retensi data untuk bucket Cloud Storage Anda.