

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Controllo degli eventi di Amazon DocumentDB
<a name="event-auditing"></a>

Con Amazon DocumentDB (con compatibilità con MongoDB), puoi controllare gli eventi che sono stati eseguiti nel tuo cluster. Sono esempi di eventi registrati i tentativi di autenticazione riusciti e non riusciti, l'eliminazione di una raccolta in un database o la creazione di un indice. Per impostazione predefinita, il controllo è disabilitato su Amazon DocumentDB e richiede che tu scelga di utilizzare questa funzionalità.

Quando il controllo è abilitato, Amazon DocumentDB registra gli eventi di Data Definition Language (DDL), Data Manipulation Language (DML), autenticazione, autorizzazione e gestione degli utenti su Amazon Logs. CloudWatch Quando il controllo è abilitato, Amazon DocumentDB esporta i record di controllo del cluster (documenti JSON) in Amazon Logs. CloudWatch Puoi utilizzare Amazon CloudWatch Logs per analizzare, monitorare e archiviare gli eventi di audit di Amazon DocumentDB.

Sebbene Amazon DocumentDB non addebiti costi aggiuntivi per abilitare l'auditing, ti vengono addebitate tariffe standard per l'utilizzo dei log. CloudWatch Per informazioni sui prezzi di CloudWatch Logs, consulta i [ CloudWatch prezzi di Amazon](https://aws.amazon.com/cloudwatch/pricing/).

La funzionalità di controllo di Amazon DocumentDB è nettamente diversa dall'utilizzo delle risorse di servizio con cui viene monitorato. AWS CloudTrail CloudTrail registra le operazioni eseguite con AWS Command Line Interface (AWS CLI) o Console di gestione AWS su risorse come cluster, istanze, gruppi di parametri e istantanee. Il controllo delle risorse con CloudTrail è attivo per impostazione predefinita e non può essere disabilitato. La funzionalità di auditing di Amazon DocumentDB è una funzionalità opzionale. Registra le operazioni eseguite all'interno del cluster sugli oggetti, ad esempio database, raccolte, indici e utenti.

**Topics**
+ [Eventi supportati](#auditing-events)
+ [Abilitazione del controllo](#event-auditing-enabling-auditing)
+ [Disabilitazione del controllo](#event-auditing-disabling-auditing)
+ [Accesso agli eventi di controllo](#event-auditing-accessing)
+ [Filtraggio degli eventi di controllo DML](#filtering-dml-events)

## Eventi supportati
<a name="auditing-events"></a>

L'auditing di Amazon DocumentDB supporta le seguenti categorie di eventi:
+ **Data Definition Language (DDL)**: include operazioni di gestione del database, connessioni, gestione degli utenti e autorizzazione. 
+ **Data Manipulation Language read events (letture DML): include i** vari operatori di aggregazione, operatori aritmetici, operatori booleani `find()` e altri operatori di query di lettura. 
+ **Eventi di scrittura del Data Manipulation Language** (scritture DML): include e operatori `insert(), update(), delete(),` `bulkWrite()` 

I tipi di evento sono i seguenti:

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

**Nota**  
I valori nel campo dei parametri del documento di evento DML hanno un limite di dimensione di 1 KB. Amazon DocumentDB tronca il valore se supera 1 KB.

**Nota**  
Gli eventi di eliminazione TTL non vengono controllati in questo momento.

## Abilitazione del controllo
<a name="event-auditing-enabling-auditing"></a>

La procedura per abilitare l'audit in un cluster prevede due fasi: Assicurati che entrambi i passaggi siano stati completati, altrimenti i log di controllo non verranno inviati a CloudWatch Logs.

### Passaggio 1. Abilita il parametro del cluster audit\$1logs
<a name="event-auditing-enable-audit_logs"></a>

Per abilitare il controllo, è necessario modificare il `audit_logs` parametro nel gruppo di parametri. `audit_logs`è un elenco di eventi delimitato da virgole da registrare. Gli eventi devono essere specificati in lettere minuscole e non devono esserci spazi bianchi tra gli elementi dell'elenco. 

È possibile impostare i seguenti valori per il gruppo di parametri:


| Valore | Description | 
| --- | --- | 
| ddl | Questa impostazione abiliterà il controllo per eventi DDL come CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, createUser, DropUser, User, User, User, updateUser e grantRolesTo revokeRolesFrom dropAllUsers FromDatabase | 
| dml\$1read | L'impostazione di questa impostazione abiliterà il controllo per gli eventi di lettura DML come find, sort count, distinct, group, projecta, unwind, GeoEar, GeoIntersects, GeoWithin e altri operatori di query di lettura MongoDB. | 
| dml\$1write | L'impostazione di questa impostazione abiliterà il controllo per gli eventi di scrittura DML come insert (), update (), delete () e bulkWrite () | 
| all | Questa impostazione consentirà il controllo degli eventi del database, come le query di lettura, le query di scrittura, le azioni del database e le azioni dell'amministratore. | 
| none | L'impostazione di questa impostazione disabiliterà il controllo | 
| enabled(legacy) | Questa è un'impostazione dei parametri legacy equivalente a 'ddl'. L'impostazione di questa impostazione abiliterà il controllo per eventi DDL come CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, createUser, DropUser, User, User, UpdateUser e. grantRolesTo revokeRolesFrom dropAllUsers FromDatabase Non è consigliabile utilizzare questa impostazione perché si tratta di un'impostazione precedente. | 
| disabled (eredità) | Questa è un'impostazione dei parametri legacy equivalente a «nessuna». Non è consigliabile utilizzare questa impostazione perché si tratta di un'impostazione precedente.  | 

**Nota**  
Il valore predefinito per il parametro del cluster audit\$1logs è `none` (legacy "«`disabled`).

È inoltre possibile utilizzare i valori sopra menzionati in combinazioni. 


| Valore | Description | 
| --- | --- | 
| ddl, dml\$1read | L'impostazione di questa impostazione abiliterà il controllo degli eventi DDL e degli eventi di lettura DML. | 
| ddl, dml\$1write | L'impostazione di questa impostazione abiliterà il controllo degli eventi DDL e della scrittura DML | 
| dml\$1read, dml\$1write | L'impostazione di questa impostazione abiliterà il controllo per tutti gli eventi DML | 

**Nota**  
Non è consentito modificare un gruppo di parametri predefinito.

Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [Creazione di gruppi di parametri del cluster Amazon DocumentDB](cluster_parameter_groups-create.md)

  Dopo la creazione di un gruppo personalizzato di parametri, modificarlo impostando il valore del parametro `audit_logs` su `all`.
+ [Modifica dei gruppi di parametri del cluster Amazon DocumentDB](cluster_parameter_groups-modify.md)

  

### Passaggio 2. Abilita l'esportazione di Amazon CloudWatch Logs
<a name="event-auditing-enable-export"></a>

Quando il valore del parametro `audit_logs` cluster è`enabled`,, o `ddl` `dml_read``dml_write`, devi anche abilitare Amazon DocumentDB per esportare i log in Amazon. CloudWatch Se ometti uno di questi passaggi, i log di controllo non verranno inviati a. CloudWatch

Quando si crea un cluster, si esegue o si ripristina un'istantanea, è possibile abilitare CloudWatch i log seguendo questi passaggi. point-in-time-restore

------
#### [ Using the Console di gestione AWS ]

Per abilitare l'esportazione dei log da parte di Amazon DocumentDB per l' CloudWatch utilizzo della console, consulta i seguenti argomenti:
+ **Quando si crea un cluster [Creazione di un cluster e di un'istanza primaria utilizzando Console di gestione AWS](db-cluster-create.md#db-cluster-create-con)****, in, consulta **Creare un cluster: configurazioni aggiuntive** (fase 5, esportazioni di log)**
+ **Quando si modifica un cluster esistente**: [Modifica di un cluster Amazon DocumentDB](db-cluster-modify.md)
+ **Quando si esegue il ripristino di un'istantanea del cluster**: [Ripristino da un'istantanea del cluster](backup_restore-restore_from_snapshot.md)
+ **Quando si esegue un point-in-time ripristino**: [Ripristino in un determinato momento](backup_restore-point_in_time_recovery.md)

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

**Per abilitare i log di audit durante la creazione di un nuovo cluster**  
Il codice seguente crea il cluster `sample-cluster` e abilita i log di CloudWatch controllo.

**Example**  
Per Linux, macOS o 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
```
Per 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
```

**Per abilitare i log di audit durante la modifica di un cluster esistente**  
Il codice seguente modifica il cluster `sample-cluster` e abilita i log di CloudWatch controllo.

**Example**  
Per Linux, macOS o Unix:  

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

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier sample-cluster ^
   --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit"]}'
```
L'aspetto dell'output di queste operazioni è simile al seguente (formato 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"
    }
}
```

------

## Disabilitazione del controllo
<a name="event-auditing-disabling-auditing"></a>

È possibile disabilitare il controllo disabilitando l'esportazione dei CloudWatch registri e disabilitando il parametro. `audit_logs`

### Disabilitazione dell'esportazione dei log CloudWatch
<a name="event-auditing-disabling-logs-export"></a>

È possibile disabilitare l'esportazione dei registri di controllo utilizzando o. Console di gestione AWS AWS CLI

------
#### [ Using the Console di gestione AWS ]

La procedura seguente utilizza Console di gestione AWS per disabilitare l'esportazione dei log in Amazon DocumentDB in. CloudWatch

**Per disabilitare i log di audit**

1. [Accedi a e apri Console di gestione AWS la console Amazon DocumentDB all'indirizzo https://console.aws.amazon.com /docdb.](https://console.aws.amazon.com/docdb)

1. Nel pannello di navigazione scegliere **Cluster**. Quindi, scegliere il pulsante a sinistra del nome del cluster per il quale si desidera disabilitare l'esportazione dei log.

1. Scegli **Actions (Operazioni)**, quindi **Modify (Modifica)**.

1. Scorrere verso il basso fino alla sezione **Log exports (Esportazioni log)** e scegliere **Disabled (Disabilitato)**.

1. Scegli **Continua**.

1. Esaminare le modifiche, quindi scegliere quando applicare la modifica al cluster.
   + **Apply during the next scheduled maintenance window (Applica durante la prossima finestra di manutenzione pianificata)**
   + **Apply immediately (Applica immediatamente)**

1. Scegliere **Modify cluster (Modifica cluster)**.

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

Il codice seguente modifica il cluster `sample-cluster` e disabilita i log di controllo. CloudWatch 

**Example**  
Per Linux, macOS o Unix:  

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

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier sample-cluster ^
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit"]}'
```
L'aspetto dell'output di questa operazione è simile al seguente (formato 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"
            }
        ]
    }
}
```

------

### Disabilitazione del parametro audit\$1logs
<a name="event-auditing-disabling-audit-parameter"></a>

Per disabilitare il parametro `audit_logs` per il cluster, puoi modificarlo in modo che venga utilizzato un gruppo di parametri in cui il parametro `audit_logs` ha il valore `disabled`. In alternativa, puoi modificare il valore del parametro `audit_logs` nel gruppo di parametri del cluster in modo che sia `disabled`.

Per ulteriori informazioni, consulta i seguenti argomenti:
+ [Modifica di un cluster Amazon DocumentDB](db-cluster-modify.md)
+ [Modifica dei gruppi di parametri del cluster Amazon DocumentDB](cluster_parameter_groups-modify.md)

## Accesso agli eventi di controllo
<a name="event-auditing-accessing"></a>

Utilizza i seguenti passaggi per accedere ai tuoi eventi di controllo su Amazon CloudWatch.

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Assicurati di trovarti nella stessa regione del cluster Amazon DocumentDB.

1. Nel riquadro di navigazione scegli **Logs (Log)**.

1. Per trovare i log di audit del cluster, dall'elenco individuare e scegliere **/aws/docdb/*yourClusterName*/audit**.

   Gli eventi di audit per ogni istanza sono disponibili nei rispettivi nomi di istanza.

## Filtraggio degli eventi di controllo DML
<a name="filtering-dml-events"></a>

### Guida introduttiva al filtraggio di controllo DML
<a name="w2aac31c49c21b3"></a>

Gli eventi di controllo DML possono essere filtrati prima di essere scritti su Amazon. CloudWatch Per utilizzare questa funzionalità, è necessario abilitare il registro di controllo e la registrazione DML. Amazon DocumentDB supporta il filtraggio su`atype`,, `command``user`, `namespace` e. `auditAuthorizationSuccess`

**Nota**  
Gli eventi DDL non vengono filtrati.

È possibile abilitare il filtro di controllo in qualsiasi momento specificando il filtro di controllo utilizzando i parametri `setAuditConfig``filter`, e `auditAuthorizationSuccess` nell'operazione: `db.adminCommand( { command } )`

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

È inoltre possibile recuperare le impostazioni del filtro di controllo eseguendo il comando seguente:

```
db.admin.runCommand( { getAuditConfig: 1})
```

**Requisiti di sicurezza**

Solo i database users/roles con azioni privilegiate `auditConfigure` possono eseguire i comandi precedenti `admindb` quando si impostano o elencano i filtri di controllo DML. È possibile utilizzare uno dei ruoli incorporati di [`clusterAdmin`,`hostManager`,`root`] o creare ruoli personalizzati con privilegi. `auditConfigure` Di seguito è riportato un esempio di utilizzo di ruoli esistenti con il `auditConfigure` privilegio e un esempio di utilizzo di ruoli personalizzati.

Utente con ruolo integrato:

```
use admin
db.createUser(
  {
    user: "myClusterAdmin",
    pwd: "password123",
    roles: [ { role: "clusterAdmin", db: "admin" } ]
  }
)
```

Utente con ruoli personalizzati:

```
use admin
db.createRole(
   {
     role: "myRole",
     privileges: [
       { resource: { cluster: true }, actions: [ "auditConfigure" ] }
     ],
     roles: []
   }
)
db.createUser(
  {
    user: "myUser",
    pwd: "myPassword",
    roles: [ { role: "myRole", db: "admin" } ]
  }
)
```

#### Casi d'uso del filtraggio
<a name="filtering-use-cases"></a>

**Esempio: filtraggio degli eventi in base ai comandi**

```
db.admin.runCommand(
   {
      setAuditConfig: 1,
      filter: {
        "$and": [
         {
            "param.command":
               {
                  $in: [ "find","count", "insert", "delete", "update", "findandmodify" ]
               }
         }
         ]
      },
      auditAuthorizationSuccess: true
   }
)
```

**Esempio: filtraggio degli eventi in base al nome utente**

In questo esempio, verrà registrato solo l'utente «myUser»:

```
db.admin.runCommand(
   {
      setAuditConfig: 1,
      filter: {
      "$and": [
         {
            "param.user":
               {
                  $in: [ "myUser" ]
               }
         }
         ]},
      auditAuthorizationSuccess: true})
```

**Esempio: filtraggio per `atype`**

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

**Nota**  
Tutti i log DML hanno un. `authCheck` `atype` Solo DDL ne ha uno diverso. `atype` Se si inserisce un valore diverso da `authCheck` in`filter`, non verrà generato un accesso DML. CloudWatch

**Esempio: filtraggio utilizzando più filtri uniti da operatori**

```
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})
```

**Nota**  
Al livello superiore `$and``$or`, solo e `$nor` sono supportati. Tutti gli altri operatori non sono supportati e causeranno un errore.

**Esempio: filtraggio per eventi per `auditAuthorizationSuccess`**

In questo filtro, tutti i comandi che hanno superato con successo l'autorizzazione non verranno registrati:

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

**Esempio: filtraggio con condizioni e `$in` `$nin`**

Quando si utilizzano `$in` sia in che`$nin`, il comando non verrà registrato poiché tra le condizioni sarà presente un «e» implicito. In questo esempio, regex bloccherà il `find` comando in modo che non venga registrato nulla:

```
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})
```

**Esempio: filtraggio per `namespace`**

```
db.admin.runCommand(
   {
      setAuditConfig: 1,
      filter: {
      "$and": [
         {
            "param.ns":
               {
                  $in: [ "test.foo" ]
               }
         }
         ]},
      auditAuthorizationSuccess: true})
```

**Esempio: ripristino del filtro predefinito**

Il ripristino del valore predefinito significa che ogni evento di controllo DML verrà registrato. Per ripristinare il filtro al valore predefinito, esegui il seguente comando:

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