

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 (DHTML), otentikasi, otorisasi, dan peristiwa manajemen pengguna ke Amazon Logs. CloudWatch Saat audit diaktifkan, Amazon DocumentDB mengekspor catatan audit klaster Anda (dokumen JSON) 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](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 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.

**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 acara audit DHTML](#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 database, koneksi, manajemen pengguna, dan otorisasi. 
+ **Data Manipulation Language read events (pembacaan DHTML)** - termasuk `find()` dan berbagai operator agregasi, operator aritmatika, operator boolean, dan operator kueri baca lainnya. 
+ **Manipulasi Data Bahasa menulis peristiwa (DHTML menulis)** - termasuk `insert(), update(), delete(),` dan operator `bulkWrite()` 

Jenis peristiwanya adalah sebagai berikut.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/documentdb/latest/developerguide/event-auditing.html)

**catatan**  
Nilai dalam bidang parameter dokumen peristiwa DMLmemiliki batas ukuran 1KB. Amazon DocumentDB memotong nilainya jika melebihi 1KB.

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

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

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\$1logs
<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 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 acara DDL seperti createDatabase, DropDatabase, createCollection, DropCollection, createIndex, DropIndex, AuthCheck, otentikasi, createUser, Dropuser, User, User, UpdateUser, dan grantRolesTo revokeRolesFrom dropAllUsers FromDatabase | 
| dml\$1read | Menyetel ini akan memungkinkan audit untuk acara baca DMLseperti find, sort count, different, group, projecta, unwind, GeoNear, GeoIntersects, GeoWithin dan operator kueri baca MongoDB lainnya. | 
| dml\$1write | Menyetel ini akan memungkinkan audit untuk acara penulisan DMLseperti 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 acara DDL seperti createDatabase, DropDatabase, createCollection, DropCollection, createIndex, DropIndex, AuthCheck, authenticate, createUser, Dropuser, User, User, UpdateUser, dan. grantRolesTo revokeRolesFrom 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\$1logs adalah `none` (legacy "“`disabled`).

Anda juga dapat menggunakan nilai yang disebutkan di atas dalam kombinasi. 


| Nilai | Deskripsi | 
| --- | --- | 
| ddl, dml\$1read | Menyetel ini akan memungkinkan audit untuk acara DDL dan acara baca DML. | 
| ddl, dml\$1write | Menyetel ini akan memungkinkan audit untuk acara DDL dan penulisan DML. | 
| dml\$1read, dml\$1write | Menyetel ini akan memungkinkan 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 CloudWatch Log Amazon
<a name="event-auditing-enable-export"></a>

Ketika 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 klaster, melakukan point-in-time-restore, atau memulihkan snapshot, Anda dapat mengaktifkan CloudWatch Log dengan mengikuti langkah-langkah berikut.

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

Untuk mengaktifkan Amazon DocumentDB mengekspor log CloudWatch untuk 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 point-in-time pemulihan** — [Memulihkan ke 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 memungkinkan 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 memungkinkan 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 parameter. `audit_logs`

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

Anda dapat menonaktifkan mengekspor log audit menggunakan file Konsol Manajemen AWS atau file. 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 /docdb. https://console.aws.amazon.com](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\$1logs
<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 peristiwa 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 acara audit DHTML
<a name="filtering-dml-events"></a>

### Memulai dengan penyaringan audit DML
<a name="w2aac29c49c21b3"></a>

Peristiwa audit DMLdapat difilter sebelum ditulis ke Amazon CloudWatch. Untuk memanfaatkan fitur ini, log audit dan logging DMLharus diaktifkan. Amazon DocumentDB mendukung pemfilteran `atype` pada`command`,,,, `user` dan. `namespace` `auditAuthorizationSuccess`

**catatan**  
Acara DDL tidak difilter.

Anda dapat mengaktifkan pemfilteran audit kapan saja dengan menentukan filter audit menggunakan`setAuditConfig`,`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 database users/roles dengan tindakan istimewa yang `auditConfigure` dapat menjalankan perintah di atas `admindb` saat menyetel atau mencantumkan filter audit DHTML. 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
<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: penyaringan oleh `atype`**

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

**catatan**  
Semua log DML memiliki `authCheck` sebagai`atype`. Hanya DDL yang berbeda`atype`. Jika Anda menempatkan nilai selain `authCheck` di`filter`, itu tidak akan menghasilkan log masuk 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 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 audit DMLakan dicatat. Untuk mengatur ulang pemfilteran ke nilai default, jalankan perintah berikut:

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