

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

# Mengaudit acara Amazon DocumentDB
<a name="event-auditing"></a>

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 Language (DDL), Data Manipulation Language (DML), otentikasi, otorisasi, dan peristiwa manajemen pengguna ke Amazon Logs. CloudWatch Saat audit diaktifkan, Amazon DocumentDB mengekspor catatan audit cluster Anda (dokumen JSON) ke Amazon CloudWatch Logs. Anda dapat menggunakan Amazon CloudWatch Logs untuk menganalisis, memantau, dan mengarsipkan acara audit Amazon DocumentDB Anda.

Meskipun Amazon DocumentDB tidak membebankan biaya tambahan untuk mengaktifkan audit, Anda akan dikenakan tarif standar untuk penggunaan CloudWatch Log. Untuk informasi tentang harga CloudWatch Log, lihat [ CloudWatch Harga Amazon](https://aws.amazon.com/cloudwatch/pricing/).

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 Konsol Manajemen AWS pada sumber daya seperti cluster, instance, grup parameter, dan snapshot. Audit sumber daya dengan CloudTrail aktif 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.

**Topics**
+ [Acara yang didukung](#auditing-events)
+ [Mengaktifkan audit](#event-auditing-enabling-auditing)
+ [Menonaktifkan audit](#event-auditing-disabling-auditing)
+ [Mengakses acara audit Anda](#event-auditing-accessing)
+ [Memfilter peristiwa audit DML](#filtering-dml-events)

## Acara yang didukung
<a name="auditing-events"></a>

Audit Amazon DocumentDB mendukung kategori acara berikut:
+ **Data Definition Language (DDL) ** - termasuk operasi manajemen basis data, koneksi, manajemen pengguna, dan otorisasi. 
+ **Peristiwa baca Bahasa Manipulasi Data (pembacaan DML) ** - termasuk `find()` dan berbagai operator agregasi, operator aritmatika, operator boolean, dan operator kueri baca lainnya. 
+ **Peristiwa menulis bahasa Manipulasi Data (menulis DML) ** - termasuk `insert(), update(), delete(),` dan operator `bulkWrite()` 

Jenis peristiwanya adalah sebagai berikut.



- **`authCheck`**
  - **Kategori:** Otorisasi
  - **Deskripsi:**
    - Kode hasil 0: Sukses
    - Kode hasil 13: Upaya yang tidak sah untuk melakukan operasi.

- **`authenticate`**
  - **Kategori:** Koneksi
  - **Deskripsi:** Upaya autentikasi yang berhasil atau gagal pada koneksi baru.

- **`auditConfigure`**
  - **Kategori:** DDL
  - **Deskripsi:** Konfigurasi filter audit.

- **`createDatabase`**
  - **Kategori:** DDL
  - **Deskripsi:** Pembuatan basis data baru.

- **`createCollection`**
  - **Kategori:** DDL
  - **Deskripsi:** Pembuatan koleksi baru dalam basis data.

- **`createIndex`**
  - **Kategori:** DDL
  - **Deskripsi:** Pembuatan indeks baru dalam koleksi.

- **`dropCollection`**
  - **Kategori:** DDL
  - **Deskripsi:** Menghapus koleksi dalam basis data.

- **`dropDatabase`**
  - **Kategori:** DDL
  - **Deskripsi:** Menghapus basis data.

- **`dropIndex`**
  - **Kategori:** DDL
  - **Deskripsi:** Menghapus indeks dalam koleksi.

- **`modifyChangeStreams`**
  - **Kategori:** DDL
  - **Deskripsi:** Aliran perubahan telah dibuat.

- **`renameCollection`**
  - **Kategori:** DDL
  - **Deskripsi:** Mengganti nama koleksi dalam database.

- **`createRole`**
  - **Kategori:** Manajemen Peran
  - **Deskripsi:** Menciptakan peran.

- **`dropAllRolesFromDatabase`**
  - **Kategori:** Manajemen Peran
  - **Deskripsi:** Menghapus semua peran dalam database.

- **`dropRole`**
  - **Kategori:** Manajemen Peran
  - **Deskripsi:** Menjatuhkan peran.

- **`grantPrivilegesToRole`**
  - **Kategori:** Manajemen Peran
  - **Deskripsi:** Memberikan hak istimewa untuk peran.

- **`grantRolesToRole`**
  - **Kategori:** Manajemen Peran
  - **Deskripsi:** Memberikan peran ke peran yang ditentukan pengguna.

- **`revokePrivilegesFromRole`**
  - **Kategori:** Manajemen Peran
  - **Deskripsi:** Mencabut hak istimewa dari peran.

- **`revokeRolesFromRole`**
  - **Kategori:** Manajemen Peran
  - **Deskripsi:** Mencabut peran dari peran yang ditentukan pengguna.

- **`updateRole`**
  - **Kategori:** Manajemen Peran
  - **Deskripsi:** Memperbarui peran.

- **`createUser`**
  - **Kategori:** Manajemen pengguna
  - **Deskripsi:** Pembuatan pengguna baru.

- **`dropAllUsersFromDatabase`**
  - **Kategori:** Manajemen pengguna
  - **Deskripsi:** Menghapus semua pengguna dalam basis data.

- **`dropUser`**
  - **Kategori:** Manajemen pengguna
  - **Deskripsi:** Menghapus pengguna yang ada.

- **`grantRolesToUser`**
  - **Kategori:** Manajemen pengguna
  - **Deskripsi:** Memberikan peran kepada pengguna.

- **`revokeRolesFromUser`**
  - **Kategori:** Manajemen pengguna
  - **Deskripsi:** Mencabut peran dari pengguna.

- **`updateUser`**
  - **Kategori:** UserManagement
  - **Deskripsi:** Memperbarui pengguna yang sudah ada.

- **`insert`**
  - **Kategori:** Menulis DML
  - **Deskripsi:** Menyisipkan dokumen atau dokumen ke dalam koleksi.

- **`delete`**
  - **Kategori:** Menulis DML
  - **Deskripsi:** Menghapus dokumen atau dokumen dari koleksi.

- **`update`**
  - **Kategori:** Menulis DML
  - **Deskripsi:** Memodifikasi dokumen atau dokumen yang ada dalam koleksi.

- **`bulkWrite`**
  - **Kategori:** Menulis DML
  - **Deskripsi:** Melakukan beberapa operasi tulis dengan kontrol untuk urutan eksekusi.

- **`setAuditConfig`**
  - **Kategori:** Menulis DML
  - **Deskripsi:** Tetapkan filter baru untuk audit DML.

- **`count`**
  - **Kategori:** DML dibaca
  - **Deskripsi:** Mengembalikan jumlah dokumen yang akan cocok dengan kueri find () untuk koleksi atau tampilan.

- **`countDocuments`**
  - **Kategori:** DML dibaca
  - **Deskripsi:** Mengembalikan jumlah dokumen yang cocok dengan kueri untuk koleksi atau tampilan.

- **`find`**
  - **Kategori:** DML dibaca
  - **Deskripsi:** Memilih dokumen dalam koleksi atau tampilan dan mengembalikan kursor ke dokumen yang dipilih.

- **`getAuditConfig`**
  - **Kategori:** DML dibaca
  - **Deskripsi:** Ambil filter saat ini untuk audit DML.

- **`findAndModify`**
  - **Kategori:** Membaca DML dan menulis DML
  - **Deskripsi:** Memodifikasi dan mengembalikan satu dokumen.

- **`findOneAndDelete`**
  - **Kategori:** Membaca DML dan menulis DML
  - **Deskripsi:** Menghapus satu dokumen berdasarkan kriteria filter dan pengurutan, mengembalikan dokumen yang dihapus.

- **`findOneAndReplace`**
  - **Kategori:** Membaca DML dan menulis DML
  - **Deskripsi:** Mengganti dokumen tunggal berdasarkan filter yang ditentukan.

- **`findOneAndUpdate`**
  - **Kategori:** Membaca DML dan menulis DML
  - **Deskripsi:** Memperbarui satu dokumen berdasarkan kriteria filter dan pengurutan.

- **`aggregate`**
  - **Kategori:** Membaca DML dan menulis DML
  - **Deskripsi:** Mendukung API dalam pipeline agregasi.

- **`distinct`**
  - **Kategori:** DML dibaca
  - **Deskripsi:** Menemukan nilai berbeda untuk bidang tertentu di satu koleksi atau tampilan dan mengembalikan hasilnya dalam array.



**catatan**  
Nilai dalam bidang parameter dokumen peristiwa DML memiliki batas ukuran 1KB. Amazon DocumentDB memotong nilai jika melebihi 1KB.

**catatan**  
Peristiwa penghapusan TTL tidak diaudit saat ini.

## Mengaktifkan audit
<a name="event-auditing-enabling-auditing"></a>

Mengaktifkan audit pada klaster adalah proses dua langkah. Pastikan kedua langkah selesai, atau log audit tidak akan dikirim ke CloudWatch Log.

### Langkah 1. Aktifkan parameter cluster audit\_logs
<a name="event-auditing-enable-audit_logs"></a>

Untuk mengaktifkan audit, Anda perlu memodifikasi `audit_logs` parameter dalam grup parameter. `audit_logs`adalah daftar peristiwa yang dipisahkan koma untuk dicatat. Peristiwa harus ditentukan dalam huruf kecil dan seharusnya tidak ada spasi putih di antara elemen daftar. 

Anda dapat mengatur nilai-nilai berikut untuk grup parameter:


| Nilai | Deskripsi | 
| --- | --- | 
| ddl | Menyetel ini akan mengaktifkan audit untuk peristiwa DDL seperti createDatabase, DropDatabase, createCollection, DropCollection, CreateIndex, DropIndex, DropIndex, AuthCheck, otentikasi, createUser, dropUser, grant, revoke, updateUser, dan drop RolesToUser RolesFromUser AllUsersFromDatabase | 
| dml\_read | Menyetel ini akan mengaktifkan audit untuk peristiwa baca DML seperti find, sort count, distinct, group, projecta, unwind, GeoNear, GeoIntersects, GeoWithin, dan operator kueri baca MongoDB lainnya. | 
| dml\_write | Menyetel ini akan mengaktifkan audit untuk peristiwa tulis DML seperti insert (), update (), delete (), dan bulkWrite () | 
| all | Menyetel ini akan mengaktifkan audit untuk peristiwa database Anda, seperti kueri baca, kueri tulis, tindakan database, dan tindakan administrator. | 
| none | Mengatur ini akan menonaktifkan audit | 
| enabled(warisan) | Ini adalah pengaturan parameter lama yang setara dengan 'ddl'. Menyetel ini akan mengaktifkan audit untuk peristiwa DDL seperti createDatabase, DropDatabase, createCollection, DropCollection, CreateIndex, DropIndex, DropIndex, AuthCheck, otentikasi, createUser, dropUser, grant, revoke, updateUser, dan drop. RolesToUser RolesFromUser AllUsersFromDatabase Kami tidak menyarankan menggunakan pengaturan ini karena ini adalah pengaturan lama. | 
| disabled (warisan) | Ini adalah pengaturan parameter lama yang setara dengan 'none'. 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-nilai yang disebutkan di atas dalam kombinasi. 


| Nilai | Deskripsi | 
| --- | --- | 
| ddl, dml\_read | Menyetel ini akan mengaktifkan audit untuk peristiwa DDL dan peristiwa baca DML. | 
| ddl, dml\_write | Menyetel ini akan mengaktifkan audit untuk peristiwa DDL dan penulisan DML | 
| dml\_read, dml\_write | Menyetel ini akan mengaktifkan audit untuk semua peristiwa DML | 

**catatan**  
Anda tidak dapat memodifikasi grup parameter default.

Untuk informasi selengkapnya, lihat berikut ini:
+ [Membuat grup parameter cluster Amazon DocumentDB](cluster_parameter_groups-create.md)

  Setelah membuat grup parameter khusus, ubah dengan mengganti nilai parameter `audit_logs` menjadi `all`.
+ [Memodifikasi grup parameter cluster Amazon DocumentDB](cluster_parameter_groups-modify.md)

  

### Langkah 2. Aktifkan ekspor Amazon CloudWatch Logs
<a name="event-auditing-enable-export"></a>

Jika nilai parameter `audit_logs` cluster adalah`enabled`,,, 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 cluster, melakukan point-in-time-restore, atau memulihkan snapshot, Anda dapat mengaktifkan CloudWatch Log dengan mengikuti langkah-langkah ini.

------
#### [ Using the Konsol Manajemen AWS ]

Untuk mengaktifkan Amazon DocumentDB mengekspor log CloudWatch menggunakan konsol, lihat topik berikut:
+ **Saat membuat klaster** — Di [Membuat cluster dan instance primer menggunakan Konsol Manajemen AWS](db-cluster-create.md#db-cluster-create-con), lihat **Membuat Klaster: Konfigurasi Tambahan** (langkah 5, **Ekspor log**)
+ **Saat memodifikasi cluster yang ada ** - [Memodifikasi cluster Amazon DocumentDB](db-cluster-modify.md)
+ **Saat melakukan pemulihan snapshot cluster ** - [Memulihkan dari snapshot cluster](backup_restore-restore_from_snapshot.md)
+ **Saat melakukan pemulihan point-in-time — ** [Memulihkan ke suatu titik waktu](backup_restore-point_in_time_recovery.md)

------
#### [ Using the AWS CLI ]

**Untuk mengaktifkan log audit saat membuat klaster baru**  
Kode berikut membuat cluster `sample-cluster` dan mengaktifkan log CloudWatch audit.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws docdb create-db-cluster \
    --db-cluster-identifier {{sample-cluster}} \
    --port 27017 \
    --engine docdb \
    --master-username {{master-username}} \
    --master-user-password {{password}} \
    --db-subnet-group-name {{default}} \
    --enable-cloudwatch-logs-exports audit
```
Untuk Windows:  

```
aws docdb create-db-cluster ^
    --db-cluster-identifier {{sample-cluster}} ^
    --port 27017 ^
    --engine docdb ^
    --master-username {{master-username}} ^
    --master-user-password {{password}} ^
    --db-subnet-group-name {{default}} ^
    --enable-cloudwatch-logs-exports audit
```

**Untuk mengaktifkan log audit ketika memodifikasi klaster yang ada**  
Kode berikut memodifikasi cluster `sample-cluster` dan mengaktifkan log CloudWatch audit.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws docdb modify-db-cluster \
   --db-cluster-identifier {{sample-cluster}} \
   --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit"]}'
```
Untuk Windows:  

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier {{sample-cluster}} ^
   --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit"]}'
```
Ouput dari operasi ini terlihat seperti berikut ini (format JSON).  

```
{
    "DBCluster": {
        "HostedZoneId": "ZNKXH85TT8WVW",
        "StorageEncrypted": false,
        "DBClusterParameterGroup": "default.docdb4.0",
        "MasterUsername": "<user-name>",
        "BackupRetentionPeriod": 1,
        "Port": 27017,
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "sg-77186e0d"
            }
        ],
        "DBClusterArn": "arn:aws:rds:us-east-1:900083794985:cluster:sample-cluster",
        "Status": "creating",
        "Engine": "docdb",
        "EngineVersion": "4.0.0",
        "MultiAZ": false,
        "AvailabilityZones": [
            "us-east-1a",
            "us-east-1c",
            "us-east-1f"
        ],
        "DBSubnetGroup": "default",
        "DBClusterMembers": [],
        "ReaderEndpoint": "sample-cluster.cluster-ro-corcjozrlsfc.us-east-1.docdb.amazonaws.com",
        "EnabledCloudwatchLogsExports": [
            "audit"
        ],
        "PreferredMaintenanceWindow": "wed:03:08-wed:03:38",
        "AssociatedRoles": [],
        "ClusterCreateTime": "2019-02-13T16:35:04.756Z",
        "DbClusterResourceId": "cluster-YOS52CUXGDTNKDQ7DH72I4LED4",
        "Endpoint": "sample-cluster.cluster-corcjozrlsfc.us-east-1.docdb.amazonaws.com",
        "PreferredBackupWindow": "07:16-07:46",
        "DBClusterIdentifier": "sample-cluster"
    }
}
```

------

## Menonaktifkan audit
<a name="event-auditing-disabling-auditing"></a>

Anda dapat menonaktifkan audit dengan menonaktifkan ekspor CloudWatch Log dan menonaktifkan `audit_logs` parameter.

### Menonaktifkan ekspor CloudWatch Log
<a name="event-auditing-disabling-logs-export"></a>

Anda dapat menonaktifkan mengekspor log audit menggunakan Konsol Manajemen AWS atau AWS CLI.

------
#### [ Using the Konsol Manajemen AWS ]

Prosedur berikut menggunakan Konsol Manajemen AWS untuk menonaktifkan Amazon DocumentDB mengekspor log ke CloudWatch.

**Untuk menonaktifkan log audit**

1. Masuk ke Konsol Manajemen AWS, dan buka konsol Amazon DocumentDB di [ https://console.aws.amazon.com/docdb](https://console.aws.amazon.com/docdb).

1. Di panel navigasi, pilih **Klaster**. Lalu, pilih tombol di sebelah kiri nama klaster yang log ekspornya ingin Anda nonaktifkan.

1. Pilih **Tindakan**, lalu pilih **Modifikasi**.

1. Gulir ke bawah ke bagian **Ekspor log** dan pilih **Nonaktif**.

1. Pilih **Lanjutkan**.

1. Tinjau perubahan Anda, lalu pilih kapan Anda ingin perubahan ini diterapkan ke klaster Anda.
   + **Terapkan selama jendela pemeliharaan terjadwal berikutnya **
   + **Terapkan segera **

1. Pilih **Ubah klaster**.

------
#### [ Using the AWS CLI ]

Kode berikut memodifikasi cluster `sample-cluster` dan menonaktifkan log CloudWatch audit.

**Example**  
Untuk Linux, macOS, atau Unix:  

```
aws docdb modify-db-cluster \
   --db-cluster-identifier {{sample-cluster}} \
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit"]}'
```
Untuk Windows:  

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier {{sample-cluster}} ^
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit"]}'
```
Output dari operasi ini terlihat seperti berikut (format JSON).  

```
{
    "DBCluster": {
        "DBClusterParameterGroup": "default.docdb4.0",
        "HostedZoneId": "ZNKXH85TT8WVW",
        "MasterUsername": "<user-name>",
        "Status": "available",
        "Engine": "docdb",
        "Port": 27017,
        "AvailabilityZones": [
            "us-east-1a",
            "us-east-1c",
            "us-east-1f"
        ],
        "EarliestRestorableTime": "2019-02-13T16:35:50.387Z",
        "DBSubnetGroup": "default",
        "LatestRestorableTime": "2019-02-13T16:35:50.387Z",
        "DBClusterArn": "arn:aws:rds:us-east-1:900083794985:cluster:sample-cluster2",
        "Endpoint": "sample-cluster2.cluster-corcjozrlsfc.us-east-1.docdb.amazonaws.com",
        "ReaderEndpoint": "sample-cluster2.cluster-ro-corcjozrlsfc.us-east-1.docdb.amazonaws.com",
        "BackupRetentionPeriod": 1,
        "EngineVersion": "4.0.0",
        "MultiAZ": false,
        "ClusterCreateTime": "2019-02-13T16:35:04.756Z",
        "DBClusterIdentifier": "sample-cluster2",
        "AssociatedRoles": [],
        "PreferredBackupWindow": "07:16-07:46",
        "DbClusterResourceId": "cluster-YOS52CUXGDTNKDQ7DH72I4LED4",
        "StorageEncrypted": false,
        "PreferredMaintenanceWindow": "wed:03:08-wed:03:38",
        "DBClusterMembers": [],
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "sg-77186e0d"
            }
        ]
    }
}
```

------

### Menonaktifkan parameter audit\_logs
<a name="event-auditing-disabling-audit-parameter"></a>

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:
+ [Memodifikasi cluster Amazon DocumentDB](db-cluster-modify.md)
+ [Memodifikasi grup parameter cluster Amazon DocumentDB](cluster_parameter_groups-modify.md)

## Mengakses acara audit Anda
<a name="event-auditing-accessing"></a>

Gunakan langkah-langkah berikut untuk mengakses acara audit Anda di Amazon CloudWatch.

1. Buka CloudWatch konsol di [ https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Pastikan Anda berada di Wilayah yang sama dengan klaster Amazon DocumentDB Anda.

1. Pilih **Log** di panel navigasi.

1. Untuk menemukan log audit pada klaster Anda, dari daftar yang tersedia, cari dan pilih **/aws/docdb/{{yourClusterName}}/audit**.

   Peristiwa audit untuk setiap instans Anda tersedia di bawah setiap nama instans masing-masing.

## Memfilter peristiwa audit DML
<a name="filtering-dml-events"></a>

### Memulai dengan pemfilteran audit DML
<a name="w2aac39c57c21b3"></a>

Peristiwa audit DML dapat disaring sebelum ditulis ke Amazon CloudWatch. Untuk memanfaatkan fitur ini, log audit dan pencatatan DML harus diaktifkan. Amazon DocumentDB mendukung pemfilteran pada`atype`,`command`,`user`,`namespace`, dan`auditAuthorizationSuccess`.

**catatan**  
Peristiwa DDL tidak difilter.

Anda dapat mengaktifkan pemfilteran audit kapan saja dengan menentukan filter audit menggunakan `setAuditConfig``filter`,, dan `auditAuthorizationSuccess` parameter dalam `db.adminCommand( { command } )` operasi:

```
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 database users/roles dengan tindakan istimewa yang `auditConfigure` dapat menjalankan perintah di atas `admindb` saat menyetel atau mencantumkan filter audit DML. 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 `auditConfigure` hak 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
<a name="filtering-use-cases"></a>

**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: memfilter oleh `atype` **

```
db.admin.runCommand(
   {
      setAuditConfig: 1,
      filter: {atype: "authCheck"},
      auditAuthorizationSuccess: true
   })
```

**catatan**  
Semua log DML memiliki `authCheck` as`atype`. Hanya DDL yang berbeda`atype`. Jika Anda memasukkan nilai selain `authCheck` di`filter`, itu tidak akan menghasilkan log in CloudWatch DML.

**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 peristiwa berdasarkan `auditAuthorizationSuccess` **

Dalam filter ini, semua perintah yang telah berhasil melewati otorisasi tidak akan dicatat:

```
db.admin.runCommand(
   {
      setAuditConfig: 1,
      filter: {},
      auditAuthorizationSuccess: false
   }
)
```

**Contoh: memfilter dengan `$in` dan `$nin` kondisi **

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: memfilter 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 audit DML akan dicatat. Untuk mengatur ulang pemfilteran ke nilai default, jalankan perintah berikut:

```
db.admin.runCommand(
   {
      setAuditConfig: 1,
      filter: {},
      auditAuthorizationSuccess: true
   }
)
```