SQLAudit Server - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

SQLAudit Server

Di AmazonRDS, Anda dapat mengaudit database Microsoft SQL Server dengan menggunakan mekanisme audit SQL Server bawaan. Anda dapat membuat audit dan spesifikasi audit dengan cara yang sama seperti Anda membuatnya untuk server basis data on-premise.

RDSmengunggah log audit yang telah selesai ke bucket S3 Anda, menggunakan IAM peran yang Anda berikan. Jika Anda mengaktifkan retensi, RDS simpan log audit Anda pada instans DB Anda selama periode waktu yang dikonfigurasi.

Untuk informasi selengkapnya, lihat Audit SQL Server (mesin database) di dokumentasi Microsoft SQL Server.

SQLAudit Server dengan Aliran Aktivitas Database

Anda dapat menggunakan Database Activity Streams RDS untuk mengintegrasikan peristiwa Audit SQL Server dengan alat pemantauan aktivitas database dari Imperva, McAfee, dan. IBM Untuk informasi selengkapnya tentang audit dengan Aliran Aktivitas Database untuk RDS SQL Server, lihat Audit di Microsoft Server SQL

Support untuk SQL Server Audit

Di AmazonRDS, dimulai dengan SQL Server 2016, semua edisi SQL Server mendukung audit tingkat server, dan edisi Enterprise juga mendukung audit tingkat database. Dimulai dengan SQL Server 2016 (13.x)SP1, semua edisi mendukung audit tingkat server dan tingkat database. Untuk informasi selengkapnya, lihat Audit SQL Server (mesin database) dalam dokumentasi SQL Server.

RDSmendukung konfigurasi pengaturan opsi berikut untuk SQL Server Audit.

Pengaturan opsi Nilai valid Deskripsi
IAM_ROLE_ARN Nama Sumber Daya Amazon (ARN) yang valid dalam formatarn:aws:iam::account-id:role/role-name. ARNIAMPeran yang memberikan akses ke bucket S3 tempat Anda ingin menyimpan log audit Anda. Untuk informasi selengkapnya, lihat Amazon Resource Names (ARNs) di Referensi Umum AWS.
S3_BUCKET_ARN Valid ARN dalam format arn:aws:s3:::amzn-s3-demo-bucket atau arn:aws:s3:::amzn-s3-demo-bucket/key-prefix Bucket ARN untuk S3 tempat Anda ingin menyimpan log audit Anda.
ENABLE_COMPRESSION true atau false Mengontrol kompresi log audit. Secara default, kompresi diaktifkan (ditetapkan ke true).
RETENTION_TIME 0 untuk 840 Waktu retensi (dalam jam) bahwa catatan audit SQL Server disimpan pada RDS instans Anda. Secara default, retensi dinonaktifkan.

Menambahkan Audit SQL Server ke opsi instans DB

Mengaktifkan Audit SQL Server memerlukan dua langkah: mengaktifkan opsi pada instans DB, dan mengaktifkan fitur di dalam Server. SQL Proses untuk menambahkan opsi SQL Server Audit ke instans DB adalah sebagai berikut:

  1. Buat grup opsi baru, atau salin atau ubah grup opsi yang ada.

  2. Tambahkan dan konfigurasikan semua opsi yang diperlukan.

  3. Kaitkan grup opsi tersebut dengan instans DB.

Setelah Anda menambahkan opsi Audit SQL Server, Anda tidak perlu me-restart instans DB Anda. Begitu grup opsi aktif, Anda dapat membuat audit dan menyimpan log audit di bucket S3.

Untuk menambah dan mengkonfigurasi SQL Server Audit pada grup opsi instans DB
  1. Pilih salah satu cara berikut:

    • Gunakan grup opsi yang sudah ada.

    • Buat grup opsi DB kustom dan gunakan grup opsi tersebut. Untuk informasi selengkapnya, lihat Membuat grup opsi.

  2. Tambahkan AUDIT opsi SQLSERVER_ ke grup opsi, dan konfigurasikan pengaturan opsi. Untuk informasi selengkapnya tentang cara menambahkan opsi, lihat Menambahkan opsi ke grup opsi.

    • Untuk IAMperan, jika Anda sudah memiliki IAM peran dengan kebijakan yang diperlukan, Anda dapat memilih peran tersebut. Untuk membuat IAM peran baru, pilih Buat Peran Baru. Untuk informasi tentang kebijakan yang diperlukan, lihat Membuat IAM peran secara manual untuk SQL Server Audit.

    • Untuk Pilih tujuan S3, pilih opsi ini jika Anda sudah memiliki bucket S3 yang ingin Anda gunakan. Untuk membuat bucket S3, pilih Buat Bucket S3 Baru.

    • Untuk Mengaktifkan Kompresi, biarkan opsi ini dipilih untuk mengompresi file audit. Kompresi diaktifkan secara default. Untuk menonaktifkan kompresi, hapus Aktifkan Kompresi.

    • Untuk Retensi log audit, pilih opsi ini untuk menyimpan catatan audit di instans DB. Tentukan waktu retensi dalam jam. Waktu retensi maksimum adalah 35 hari.

  3. Terapkan grup opsi ke instans DB baru atau yang sudah ada. Pilih salah satu cara berikut:

    • Jika Anda membuat instans DB baru, terapkan grup opsi ketika Anda meluncurkan instans.

    • Di instans DB yang sudah ada, terapkan grup opsi dengan mengubah instans lalu memberikan grup opsi baru. Untuk informasi selengkapnya, lihat Memodifikasi instans DB Amazon RDS.

Memodifikasi opsi Audit SQL Server

Setelah Anda mengaktifkan opsi Audit SQL Server, Anda dapat mengubah pengaturan. Untuk informasi cara mengubah pengaturan opsi, lihat Memodifikasi pengaturan opsi.

Menghapus Audit SQL Server dari opsi instans DB

Anda dapat mematikan fitur Audit SQL Server dengan menonaktifkan audit dan kemudian menghapus opsi.

Untuk menghapus audit
  1. Nonaktifkan semua pengaturan audit di dalam SQL Server. Untuk mempelajari di mana audit berjalan, kueri tampilan katalog keamanan SQL Server. Untuk informasi selengkapnya, lihat Tampilan katalog keamanan di dokumentasi Microsoft SQL Server.

  2. Hapus opsi Audit SQL Server dari instans DB. Pilih salah satu cara berikut:

    • Hapus opsi Audit SQL Server dari grup opsi yang digunakan instans DB. Perubahan ini akan memengaruhi semua instans DB yang menggunakan kelompok opsi yang sama. Untuk informasi selengkapnya, lihat Menghapus opsi dari grup opsi.

    • Ubah instans DB, lalu pilih grup opsi tanpa opsi SQL Server Audit. Perubahan ini hanya memengaruhi instans DB yang Anda ubah. Anda dapat menentukan grup opsi default (kosong) atau grup opsi kustom lain. Untuk informasi selengkapnya, lihat Memodifikasi instans DB Amazon RDS.

  3. Setelah Anda menghapus opsi Audit SQL Server dari instans DB, Anda tidak perlu memulai ulang instance. Hapus file audit yang tidak diperlukan dari bucket S3 Anda.

Menggunakan Audit SQL Server

Anda dapat mengendalikan audit server, spesifikasi audit server, dan spesifikasi audit basis data dengan cara yang sama seperti Anda mengontrolnya untuk server basis data on-premise.

Membuat audit

Anda membuat audit server dengan cara yang sama seperti Anda membuatnya untuk server basis data on-premise. Untuk informasi tentang cara membuat audit server, lihat CREATESERVERAUDITdi dokumentasi Microsoft SQL Server.

Untuk menghindari kesalahan, patuhi batasan berikut:

  • Jangan melebihi jumlah maksimum audit server yang didukung per instans, yaitu 50.

  • Instruksikan SQL Server untuk menulis data ke file biner.

  • Jangan gunakan RDS_ sebagai awalan dalam nama audit server.

  • Untuk FILEPATH, tentukan D:\rdsdbdata\SQLAudit.

  • Untuk MAXSIZE, tentukan ukuran antara 2 MB dan 50 MB.

  • Jangan mengonfigurasi MAX_ROLLOVER_FILES atau MAX_FILES.

  • Jangan mengkonfigurasi SQL Server untuk mematikan instans DB jika gagal menulis catatan audit.

Membuat spesifikasi audit

Anda membuat spesifikasi audit server dan spesifikasi audit basis data dengan cara yang sama seperti Anda membuatnya untuk server basis data on-premise. Untuk informasi tentang membuat spesifikasi audit, lihat CREATESERVERAUDITSPECIFICATIONdan CREATEDATABASEAUDITSPECIFICATIONdi dokumentasi Microsoft SQL Server.

Untuk menghindari kesalahan, jangan gunakan RDS_ sebagai awalan dalam nama spesifikasi audit basis data atau spesifikasi audit server.

Melihat log audit

Log audit Anda disimpan di D:\rdsdbdata\SQLAudit.

Setelah SQL Server selesai menulis ke file log audit—saat file mencapai batas ukurannya—Amazon RDS mengunggah file ke bucket S3 Anda. Jika retensi diaktifkan, Amazon RDS memindahkan file ke folder retensi:D:\rdsdbdata\SQLAudit\transmitted.

Untuk informasi cara mengonfigurasi retensi, lihat Menambahkan Audit SQL Server ke opsi instans DB.

Catatan audit disimpan di instans DB hingga file log audit diunggah. Anda dapat melihat catatan audit dengan menjalankan perintah berikut.

SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\*.sqlaudit' , default , default )

Anda dapat menggunakan perintah yang sama untuk melihat catatan audit di folder penyimpanan Anda dengan mengubah filter ke D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit.

SELECT * FROM msdb.dbo.rds_fn_get_audit_file ('D:\rdsdbdata\SQLAudit\transmitted\*.sqlaudit' , default , default )

Menggunakan Audit SQL Server dengan instans Multi-AZ

Untuk instans Multi-AZ, proses mengirim file log audit ke Amazon S3 serupa dengan proses untuk instans AZ Tunggal. Namun, ada beberapa perbedaan penting:

  • Objek spesifikasi audit basis data direplikasi ke semua simpul.

  • Audit server dan spesifikasi audit server tidak direplikasi ke simpul sekunder. Sebaliknya, Anda harus membuat atau memodifikasinya secara manual.

Untuk mencatat audit server atau spesifikasi audit server dari kedua simpul:

  1. Buat audit server atau spesifikasi audit server di simpul primer.

  2. Gagal ke node sekunder dan buat audit server atau spesifikasi audit server dengan nama yang sama dan GUID pada node sekunder. Gunakan AUDIT_GUID parameter untuk menentukanGUID.

Mengonfigurasi bucket S3

file log audit secara otomatis diunggah dari instans DB ke bucket S3 Anda. Pembatasan berikut berlaku untuk bucket S3 yang Anda gunakan sebagai target untuk file audit:

  • Itu harus di AWS Wilayah yang sama dengan instans DB.

  • Bucket S3 tidak boleh dibuka untuk umum.

  • Pemilik ember juga harus menjadi pemilik IAM peran.

  • IAMPeran Anda harus memiliki izin untuk KMS kunci yang dikelola pelanggan yang terkait dengan enkripsi sisi server bucket S3.

Kunci target yang digunakan untuk menyimpan data mematuhi skema penamaan ini: amzn-s3-demo-bucket/key-prefix/instance-name/audit-name/node_file-name.ext

catatan

Anda menetapkan nama bucket dan nilai awalan kunci dengan setelan opsi (S3_BUCKET_ARN).

Skema tersebut terdiri atas elemen-elemen berikut:

  • amzn-s3-demo-bucket – Nama bucket S3 Anda.

  • key-prefix – Awalan kunci kustom yang ingin Anda gunakan untuk log audit.

  • instance-name— Nama RDS instans Amazon Anda.

  • audit-name – Nama audit.

  • node – Pengidentifikasi simpul yang merupakan sumber log audit (node1 atau node2). Ada satu simpul untuk instans AZ Tunggal dan dua simpul replikasi untuk instans Multi-AZ. Ini bukan simpul primer dan sekunder karena peran primer dan sekunder berubah seiring waktu. Sebaliknya, pengidentifikasi simpul merupakan label sederhana.

    • node1 – simpul replikasi pertama (AZ Tunggal hanya memiliki satu simpul).

    • node2 – simpul replikasi kedua (Multi-AZ memiliki dua simpul).

  • file-name – Nama file target. Nama file diambil apa adanya dari SQL Server.

  • ext – Ekstensi file (zip atau sqlaudit):

    • zip – Jika kompresi diaktifkan (default).

    • sqlaudit – Jika kompresi dinonaktifkan.

Membuat IAM peran secara manual untuk SQL Server Audit

Biasanya, ketika Anda membuat opsi baru, AWS Management Console menciptakan IAM peran dan kebijakan IAM kepercayaan untuk Anda. Namun, Anda dapat secara manual membuat IAM peran baru untuk digunakan dengan Audit SQL Server, sehingga Anda dapat menyesuaikannya dengan persyaratan tambahan apa pun yang mungkin Anda miliki. Untuk melakukan ini, Anda membuat IAM peran dan mendelegasikan izin sehingga RDS layanan Amazon dapat menggunakan bucket Amazon S3 Anda. Saat membuat IAM peran ini, Anda melampirkan kebijakan kepercayaan dan izin. Kebijakan kepercayaan memungkinkan Amazon RDS untuk mengambil peran ini. Kebijakan izin menentukan tindakan yang dapat dilakukan peran ini. Untuk informasi selengkapnya, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan Pengguna AWS Identity and Access Management.

Anda dapat menggunakan contoh di bagian ini untuk membuat kebijakan hubungan kepercayaan dan izin yang Anda butuhkan.

Contoh berikut menunjukkan hubungan kepercayaan untuk SQL Server Audit. Ini menggunakan prinsip layanan rds.amazonaws.com untuk memungkinkan menulis RDS ke ember S3. Pengguna utama layanan adalah pengidentifikasi yang digunakan untuk memberikan izin layanan. Kapan pun Anda mengizinkan akses dengan rds.amazonaws.com cara ini, Anda mengizinkan RDS untuk melakukan tindakan atas nama Anda. Untuk informasi selengkapnya tentang prinsip layanan, lihat elemen AWS JSON kebijakan: Principal.

contoh hubungan kepercayaan untuk SQL Server Audit
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Sebaiknya gunakan kunci konteks kondisi global aws:SourceArn dan aws:SourceAccount dalam hubungan kepercayaan berbasis sumber daya untuk membatasi izin layanan ke sumber daya tertentu. Ini adalah cara yang paling efektif untuk melindungi dari masalah confused deputy.

Anda dapat menggunakan kedua kunci konteks kondisi global tersebut dan nilai aws:SourceArn berisi ID akun. Dalam hal ini, nilai aws:SourceAccount dan akun dalam nilai aws:SourceArn harus menggunakan ID akun yang sama saat digunakan dalam pernyataan yang sama.

  • Gunakan aws:SourceArn jika Anda menginginkan akses lintas layanan untuk satu sumber daya.

  • Gunakan aws:SourceAccount jika Anda ingin mengizinkan sumber daya apa pun di akun tersebut dikaitkan dengan penggunaan lintas layanan.

Dalam hubungan kepercayaan, pastikan untuk menggunakan kunci konteks kondisi aws:SourceArn global dengan Nama Sumber Daya Amazon (ARN) lengkap dari sumber daya yang mengakses peran. Untuk Audit SQL Server, pastikan untuk menyertakan grup opsi DB dan instance DB, seperti yang ditunjukkan pada contoh berikut.

contoh hubungan kepercayaan dengan kunci konteks kondisi global untuk SQL Server Audit
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceArn": [ "arn:aws:rds:Region:my_account_ID:db:db_instance_identifier", "arn:aws:rds:Region:my_account_ID:og:option_group_name" ] } } } ] }

Dalam contoh berikut kebijakan izin untuk SQL Server Audit, kami menentukan bucket Amazon S3 ARN untuk Amazon S3. Anda dapat menggunakan ARNs untuk mengidentifikasi akun, pengguna, atau peran tertentu yang ingin Anda berikan akses. Untuk informasi selengkapnya tentang penggunaanARNs, lihat nama sumber daya Amazon (ARNs).

contoh kebijakan izin untuk SQL Server Audit
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/key_prefix/*" } ] }
catatan

s3:ListAllMyBucketsTindakan ini diperlukan untuk memverifikasi bahwa AWS akun yang sama memiliki bucket S3 dan instance SQL Server DB. Tindakan tersebut mencantumkan nama bucket di akun.

Namespace bucket S3 bersifat global. Jika Anda tidak sengaja menghapus bucket, pengguna lain dapat membuat bucket dengan nama yang sama di akun lain. Kemudian data Audit SQL Server ditulis ke bucket baru.