Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengaudit acara Amazon DocumentDB
Dengan Amazon DocumentDB (dengan kompatibilitas MongoDB), Anda dapat mengaudit peristiwa yang dilakukan di klaster Anda. Contoh log acara termasuk upaya autentikasi yang berhasil dan gagal, membuang koleksi dalam basis data, atau membuat indeks. Secara default, pengauditan dinonaktifkan di Amazon DocumentDB dan mengharuskan Anda untuk menggunakan fitur ini.
Saat audit diaktifkan, Amazon DocumentDB mencatat Data Definition DDL Language (), Data Manipulation DML Language (), otentikasi, otorisasi, dan peristiwa manajemen pengguna ke Amazon Logs. CloudWatch Saat audit diaktifkan, Amazon DocumentDB mengekspor catatan audit JSON (dokumen) klaster Anda ke Amazon Logs. CloudWatch Anda dapat menggunakan CloudWatch Log Amazon untuk menganalisis, memantau, dan mengarsipkan peristiwa audit Amazon DocumentDB Anda.
Meskipun Amazon DocumentDB tidak membebankan biaya tambahan untuk mengaktifkan audit, Anda dikenakan tarif standar untuk penggunaan Log. CloudWatch Untuk informasi tentang harga CloudWatch Log, lihat CloudWatch harga Amazon
Fitur audit Amazon DocumentDB jelas berbeda dari penggunaan sumber daya layanan yang dipantau. AWS CloudTrail CloudTrail merekam operasi yang dilakukan dengan AWS Command Line Interface (AWS CLI) atau AWS Management Console pada sumber daya seperti cluster, instance, grup parameter, dan snapshot. Audit sumber daya aktif CloudTrail secara default dan tidak dapat dinonaktifkan. Fitur audit Amazon DocumentDB adalah fitur keikutsertaan. Ini mencatat operasi yang terjadi dalam klaster Anda pada objek, seperti basis data, koleksi, indeks, dan pengguna.
Topik
Acara yang didukung
Audit Amazon DocumentDB mendukung kategori acara berikut:
-
Data Definition Language (DDL) - termasuk operasi manajemen database, koneksi, manajemen pengguna, dan otorisasi.
-
Data Manipulation Language read events (DMLread) - termasuk
find()
dan berbagai operator agregasi, operator aritmatika, operator boolean, dan operator kueri baca lainnya. -
Manipulasi Data Bahasa menulis peristiwa (DMLmenulis) - termasuk
insert(), update(), delete(),
danbulkWrite()
operator
Jenis peristiwanya adalah sebagai berikut.
Jenis Acara | Kategori | Deskripsi |
---|---|---|
authCheck |
Otorisasi | Kode hasil 0: Sukses |
Kode hasil 13: Upaya tidak sah untuk melakukan operasi. | ||
authenticate |
Koneksi | Upaya autentikasi yang berhasil atau gagal pada koneksi baru. |
auditConfigure |
DDL | Konfigurasi filter audit. |
createDatabase |
DDL | Pembuatan basis data baru. |
createCollection |
DDL | Pembuatan koleksi baru dalam basis data. |
createIndex |
DDL | Pembuatan indeks baru dalam koleksi. |
dropCollection |
DDL | Menghapus koleksi dalam basis data. |
dropDatabase |
DDL | Menghapus basis data. |
dropIndex |
DDL | Menghapus indeks dalam koleksi. |
modifyChangeStreams |
DDL | Ubah aliran telah dibuat. |
renameCollection |
DDL | Mengganti nama koleksi dalam database. |
createRole |
Manajemen Peran | Menciptakan peran. |
dropAllRolesFromDatabase |
Manajemen Peran | Menjatuhkan semua peran dalam database. |
dropRole |
Manajemen Peran | Menjatuhkan peran. |
grantPrivilegesToRole |
Manajemen Peran | Memberikan hak istimewa untuk suatu peran. |
grantRolesToRole |
Manajemen Peran | Memberikan peran ke peran yang ditentukan pengguna. |
revokePrivilegesFromRole |
Manajemen Peran | Mencabut hak istimewa dari suatu peran. |
revokeRolesFromRole |
Manajemen Peran | Mencabut peran dari peran yang ditentukan pengguna. |
updateRole |
Manajemen Peran | Memperbarui peran. |
createUser |
Manajemen pengguna | Pembuatan pengguna baru. |
dropAllUsersFromDatabase |
Manajemen pengguna | Menghapus semua pengguna dalam basis data. |
dropUser |
Manajemen pengguna | Menghapus pengguna yang ada. |
grantRolesToUser |
Manajemen pengguna | Memberikan peran kepada pengguna. |
revokeRolesFromUser |
Manajemen pengguna | Mencabut peran dari pengguna. |
updateUser |
UserManagement | Memperbarui pengguna yang sudah ada. |
insert |
DMLmenulis | Menyisipkan dokumen atau dokumen ke dalam koleksi. |
delete |
DMLmenulis | Menghapus dokumen atau dokumen dari koleksi. |
update |
DMLmenulis | Memodifikasi dokumen atau dokumen yang ada dalam koleksi. |
bulkWrite |
DMLmenulis | Melakukan beberapa operasi tulis dengan kontrol untuk urutan eksekusi. |
setAuditConfig |
DMLmenulis | Tetapkan filter baru untuk DML audit. |
count |
DMLmembaca | Mengembalikan jumlah dokumen yang akan cocok dengan query find () untuk koleksi atau tampilan. |
countDocuments |
DMLmembaca | Mengembalikan jumlah dokumen yang cocok dengan query untuk koleksi atau tampilan. |
find |
DMLmembaca | Memilih dokumen dalam koleksi atau tampilan dan mengembalikan kursor ke dokumen yang dipilih. |
getAuditConfig |
DMLmembaca | Ambil filter saat ini untuk DML audit. |
findAndModify |
DMLmembaca dan DML menulis | Memodifikasi dan mengembalikan satu dokumen. |
findOneAndDelete |
DMLmembaca dan DML menulis | Menghapus satu dokumen berdasarkan filter dan kriteria pengurutan, mengembalikan dokumen yang dihapus. |
findOneAndReplace |
DMLmembaca dan DML menulis | Menggantikan satu dokumen berdasarkan filter yang ditentukan. |
findOneAndUpdate |
DMLmembaca dan DML menulis | Memperbarui satu dokumen berdasarkan filter dan kriteria pengurutan. |
aggregate |
DMLmembaca dan DML menulis | Mendukung APIs dalam pipa agregasi. |
distinct |
DMLmembaca | Menemukan nilai yang berbeda untuk bidang tertentu di satu koleksi atau tampilan dan mengembalikan hasilnya dalam array. |
catatan
Nilai di bidang parameter dokumen DML peristiwa memiliki batas ukuran 1KB. Amazon DocumentDB memotong nilainya jika melebihi 1KB.
catatan
TTLHapus peristiwa tidak diaudit saat ini.
Mengaktifkan audit
Mengaktifkan audit pada klaster adalah proses dua langkah. Pastikan bahwa kedua langkah selesai, atau log audit tidak akan dikirim ke CloudWatch Log.
Langkah 1. Aktifkan parameter klaster audit_logs
Untuk mengaktifkan audit, Anda perlu memodifikasi audit_logs
parameter dalam grup parameter. audit_logs
adalah daftar peristiwa yang dibatasi koma untuk dicatat. Peristiwa harus ditentukan dalam huruf kecil dan seharusnya tidak ada spasi putih di antara elemen daftar.
Anda dapat mengatur nilai berikut untuk grup parameter:
Nilai | Deskripsi |
---|---|
ddl |
Pengaturan ini akan memungkinkan audit untuk DDL acara seperticreateDatabase,,, dropDatabasecreateCollection,dropCollection, createIndexdropIndex, otentikasiauthCheck,,createUser, grantRolesTo PenggunadropUser, revokeRolesFrom Pengguna, updateUser dan dropAllUsers FromDatabase |
dml_read |
Menyetel ini akan memungkinkan audit untuk peristiwa DML baca seperti find, sort count, distinct, group, projecta, unwind,,geoNear, geoIntersects dan operator kueri baca geoWithin MongoDB lainnya. |
dml_write |
Pengaturan ini akan memungkinkan audit untuk acara DML tulis seperti insert (), update (), delete (), dan bulkWrite () |
all |
Pengaturan ini akan memungkinkan audit untuk peristiwa database Anda, seperti kueri baca, kueri tulis, tindakan database, dan tindakan administrator. |
none |
Pengaturan ini akan menonaktifkan audit |
enabled (warisan) |
Ini adalah pengaturan parameter lama yang setara dengan 'ddl'. Pengaturan ini akan memungkinkan audit untuk DDL acara seperticreateDatabase,,,dropDatabase, createCollectiondropCollection, createIndexdropIndex, otentikasiauthCheck,,createUser, grantRolesTo PenggunadropUser, revokeRolesFrom PenggunaupdateUser, dan. dropAllUsers FromDatabase Kami tidak menyarankan menggunakan pengaturan ini karena ini adalah pengaturan lama. |
disabled (warisan) |
Ini adalah pengaturan parameter lama yang setara dengan 'tidak ada'. Kami tidak menyarankan menggunakan pengaturan ini karena ini adalah pengaturan lama. |
catatan
Nilai default untuk parameter cluster audit_logs adalah none
(legacy "“disabled
).
Anda juga dapat menggunakan nilai yang disebutkan di atas dalam kombinasi.
Nilai | Deskripsi |
---|---|
ddl, dml_read |
Pengaturan ini akan memungkinkan audit untuk DDL acara dan DML membaca acara. |
ddl, dml_write |
Pengaturan ini akan memungkinkan audit untuk DDL acara dan menulis DML |
dml_read, dml_write |
Menyetel ini akan memungkinkan audit untuk semua acara DML |
catatan
Anda tidak dapat memodifikasi grup parameter default.
Untuk informasi selengkapnya, lihat berikut ini:
-
Membuat grup parameter cluster Amazon DocumentDB
Setelah membuat grup parameter khusus, ubah dengan mengganti nilai parameter
audit_logs
menjadiall
.
Langkah 2. Aktifkan ekspor CloudWatch Log Amazon
Ketika nilai parameter audit_logs
cluster adalahenabled
,,, atau ddl
dml_read
dml_write
, Anda juga harus mengaktifkan Amazon DocumentDB untuk mengekspor log ke Amazon. CloudWatch Jika Anda menghilangkan salah satu dari langkah-langkah ini, log audit tidak akan dikirim ke CloudWatch.
Saat membuat klaster, melakukan point-in-time-restore, atau memulihkan snapshot, Anda dapat mengaktifkan CloudWatch Log dengan mengikuti langkah-langkah berikut.
Menonaktifkan audit
Anda dapat menonaktifkan audit dengan menonaktifkan ekspor CloudWatch Log dan menonaktifkan parameter. audit_logs
Menonaktifkan ekspor Log CloudWatch
Anda dapat menonaktifkan mengekspor log audit menggunakan file AWS Management Console atau file. AWS CLI
Menonaktifkan parameter audit_logs
Untuk menonaktifkan parameter audit_logs
pada klaster, Anda dapat memodifikasi klaster agar menggunakan grup parameter ketika nilai parameter audit_logs
adalah disabled
. Atau Anda dapat mengubah nilai parameter audit_logs
di grup parameter klaster sehingga menjadi disabled
.
Untuk informasi selengkapnya, lihat topik berikut.
Mengakses acara audit Anda
Gunakan langkah-langkah berikut untuk mengakses peristiwa audit Anda di Amazon CloudWatch.
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Pastikan Anda berada di Wilayah yang sama dengan klaster Amazon DocumentDB Anda.
-
Pilih Log di panel navigasi.
-
Untuk menemukan log audit pada klaster Anda, dari daftar yang tersedia, cari dan pilih
/aws/docdb/
.yourClusterName
/auditPeristiwa audit untuk setiap instans Anda tersedia di bawah setiap nama instans masing-masing.
Memfilter acara DML audit
Memulai dengan penyaringan DML audit
DMLperistiwa audit dapat difilter sebelum ditulis ke Amazon CloudWatch. Untuk memanfaatkan fitur ini, log audit dan DML logging harus diaktifkan. Amazon DocumentDB mendukung pemfilteran atype
padacommand
,,,, user
dan. namespace
auditAuthorizationSuccess
catatan
DDLperistiwa tidak disaring.
Anda dapat mengaktifkan pemfilteran audit kapan saja dengan menentukan filter audit menggunakansetAuditConfig
,filter
, dan auditAuthorizationSuccess
parameter dalam operasi: db.adminCommand( { command } )
db.admin.runCommand( { setAuditConfig: 1, filter: { //filter conditions }, auditAuthorizationSuccess: true | false } )
Anda juga dapat mengambil pengaturan filter audit dengan menjalankan perintah berikut:
db.admin.runCommand( { getAuditConfig: 1})
Persyaratan keamanan
Hanya pengguna/peran database dengan tindakan istimewa yang auditConfigure
dapat menjalankan perintah di atas admindb
saat menyetel atau mencantumkan DML filter audit. Anda dapat menggunakan salah satu peran bawaan dari [clusterAdmin
,hostManager
,root
] atau membuat peran khusus yang memiliki auditConfigure
hak istimewa. Berikut ini adalah contoh penggunaan peran yang ada dengan hak auditConfigure
istimewa dan contoh dengan peran khusus.
Pengguna dengan peran bawaan:
use admin db.createUser( { user: "myClusterAdmin", pwd: "password123", roles: [ { role: "clusterAdmin", db: "admin" } ] } )
Pengguna dengan peran khusus:
use admin db.createRole( { role: "myRole", privileges: [ { resource: { cluster: true }, actions: [ "auditConfigure" ] } ], roles: [] } ) db.createUser( { user: "myUser", pwd: "myPassword", roles: [ { role: "myRole", db: "admin" } ] } )
Memfilter kasus penggunaan
Contoh: memfilter acara dengan perintah
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.command": { $in: [ "find","count", "insert", "delete", "update", "findandmodify" ] } } ] }, auditAuthorizationSuccess: true } )
Contoh: memfilter acara berdasarkan nama pengguna
Dalam contoh ini, hanya pengguna "myUser" yang akan dicatat:
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.user": { $in: [ "myUser" ] } } ]}, auditAuthorizationSuccess: true})
Contoh: penyaringan oleh atype
db.admin.runCommand( { setAuditConfig: 1, filter: {atype: "authCheck"}, auditAuthorizationSuccess: true })
catatan
Semua DML log memiliki authCheck
sebagaiatype
. Hanya DDL memiliki yang berbedaatype
. Jika Anda menempatkan nilai selain authCheck
difilter
, itu tidak akan menghasilkan DML log in CloudWatch.
Contoh: memfilter dengan menggunakan beberapa filter yang digabungkan oleh operator
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.command": { $in: [ "find","count", "insert", "delete", "update", "findandmodify" ] } } ], "$nor": [ { "param.command": { $in: ["count", "insert", "delete", "update", "findandmodify" ] } }] }, auditAuthorizationSuccess: true})
catatan
Di tingkat atas, hanya$and
,$or
, dan $nor
didukung. Operator lain tidak didukung dan akan menyebabkan kesalahan.
Contoh: memfilter berdasarkan acara berdasarkan auditAuthorizationSuccess
Dalam filter ini, semua perintah yang telah berhasil melewati otorisasi tidak akan dicatat:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: false } )
Contoh: penyaringan dengan $in
dan kondisi $nin
Saat menggunakan keduanya di $in
dan$nin
, perintah tidak akan dicatat karena akan ada “dan” implisit di antara kondisi. Dalam contoh ini, regex akan memblokir find
perintah sehingga tidak ada yang akan dicatat:
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { atype: "authCheck", "param.command": { $in: [ "find", "insert", "delete", "update", "findandmodify" ], $nin: ["count", "insert", "delete", "update", "findandmodify" ], $not: /^^find.*/ } }, ], "$or": [ { "param.command": { $nin: ["count", "insert", "delete", "update", "findandmodify" ] } }] }, auditAuthorizationSuccess: true})
Contoh: penyaringan oleh namespace
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.ns": { $in: [ "test.foo" ] } } ]}, auditAuthorizationSuccess: true})
Contoh: mengatur ulang ke filter default
Menyetel ulang ke nilai default berarti bahwa setiap peristiwa DML audit akan dicatat. Untuk mengatur ulang pemfilteran ke nilai default, jalankan perintah berikut:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: true } )