

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Auditoría de eventos de Amazon DocumentDB
<a name="event-auditing"></a>

Con Amazon DocumentDB (compatible con MongoDB), puede auditar eventos que se realizaron en su clúster. Los intentos de autenticación correctos e incorrectos, la eliminación de una colección en una base de datos o la creación de un índice son algunos ejemplos de eventos registrados. De forma predeterminada, la auditoría está deshabilitada en Amazon DocumentDB y, para utilizar esta característica, es necesario suscribirse.

Cuando la auditoría está habilitada, Amazon DocumentDB registra los eventos de lenguaje de definición de datos (DDL), lenguaje de manipulación de datos (DML), autenticación, autorización y administración de usuarios en Amazon Logs. CloudWatch Cuando la auditoría está habilitada, Amazon DocumentDB exporta los registros de auditoría del clúster (documentos JSON) a Amazon CloudWatch Logs. Puede utilizar Amazon CloudWatch Logs para analizar, supervisar y archivar sus eventos de auditoría de Amazon DocumentDB.

Aunque Amazon DocumentDB no cobra ningún coste adicional por habilitar la auditoría, se le cobran tarifas estándar por el uso de CloudWatch Logs. Para obtener información sobre CloudWatch los precios de Logs, consulta [ CloudWatch los precios de Amazon](https://aws.amazon.com/cloudwatch/pricing/).

La función de auditoría de Amazon DocumentDB es claramente diferente del uso de los recursos de servicio con el que se supervisa. AWS CloudTrail CloudTrail registra las operaciones que se realizan con AWS Command Line Interface (AWS CLI) o Consola de administración de AWS en recursos como clústeres, instancias, grupos de parámetros e instantáneas. La auditoría de los recursos CloudTrail está activada de forma predeterminada y no se puede deshabilitar. La característica de auditoría de Amazon DocumentDB es opcional. Registra las operaciones que tienen lugar dentro del clúster en los distintos objetos, como, por ejemplo, bases de datos, colecciones, índices y usuarios.

**Topics**
+ [Eventos admitidos](#auditing-events)
+ [Habilitación de auditorías](#event-auditing-enabling-auditing)
+ [Deshabilitación de auditorías](#event-auditing-disabling-auditing)
+ [Acceso a los eventos de auditoría](#event-auditing-accessing)
+ [Filtrado de eventos de auditoría de DML](#filtering-dml-events)

## Eventos admitidos
<a name="auditing-events"></a>

La auditoría de Amazon DocumentDB admite las siguientes categorías de eventos:
+ **Lenguaje de definición de datos (DDL)**: incluye las operaciones de administración de bases de datos, las conexiones, la administración de usuarios y la autorización. 
+ **Eventos de lectura del lenguaje de manipulación de datos (lecturas DML)**: incluye `find()` y los distintos operadores de agregación, operadores aritméticos, operadores booleanos y otros operadores de consulta de lectura. 
+ **Eventos de escritura del lenguaje de manipulación de datos (escrituras en DML)**: incluye operadores `insert(), update(), delete(),` y `bulkWrite()` 

Los tipos de eventos son los siguientes.



- **`authCheck`**
  - **Categoría:** Autorización
  - **Description (Descripción):**
    - Código de resultado 0: éxito
    - Código de resultado 13: intentos no autorizados de realizar una operación.

- **`authenticate`**
  - **Categoría:** Connection
  - **Description (Descripción):** Intentos de autenticación correctos e incorrectos en una nueva conexión.

- **`auditConfigure`**
  - **Categoría:** DDL
  - **Description (Descripción):** Auditoría de la configuración de filtrado.

- **`createDatabase`**
  - **Categoría:** DDL
  - **Description (Descripción):** Creación de una nueva base de datos.

- **`createCollection`**
  - **Categoría:** DDL
  - **Description (Descripción):** Creación de una nueva colección en una base de datos.

- **`createIndex`**
  - **Categoría:** DDL
  - **Description (Descripción):** Creación de un nuevo índice en una colección.

- **`dropCollection`**
  - **Categoría:** DDL
  - **Description (Descripción):** Eliminación de una nueva colección en una base de datos.

- **`dropDatabase`**
  - **Categoría:** DDL
  - **Description (Descripción):** Eliminación de una base de datos.

- **`dropIndex`**
  - **Categoría:** DDL
  - **Description (Descripción):** Eliminación de un índice en una colección.

- **`modifyChangeStreams`**
  - **Categoría:** DDL
  - **Description (Descripción):** Se creó el flujo de cambios.

- **`renameCollection`**
  - **Categoría:** DDL
  - **Description (Descripción):** Renombrar una nueva colección en una base de datos.

- **`createRole`**
  - **Categoría:** Administración de roles
  - **Description (Descripción):** Creación de un rol.

- **`dropAllRolesFromDatabase`**
  - **Categoría:** Administración de roles
  - **Description (Descripción):** Eliminación de todos los roles en una base de datos.

- **`dropRole`**
  - **Categoría:** Administración de roles
  - **Description (Descripción):** Descartando un rol.

- **`grantPrivilegesToRole`**
  - **Categoría:** Administración de roles
  - **Description (Descripción):** Concediendo privilegios a un rol.

- **`grantRolesToRole`**
  - **Categoría:** Administración de roles
  - **Description (Descripción):** Concediendo roles a un rol definido por el usuario.

- **`revokePrivilegesFromRole`**
  - **Categoría:** Administración de roles
  - **Description (Descripción):** Revocando los privilegios de un rol.

- **`revokeRolesFromRole`**
  - **Categoría:** Administración de roles
  - **Description (Descripción):** Revocando roles de un rol definido por el usuario.

- **`updateRole`**
  - **Categoría:** Administración de roles
  - **Description (Descripción):** Actualización de un rol.

- **`createUser`**
  - **Categoría:** Administración de usuarios
  - **Description (Descripción):** Creación de un nuevo usuario.

- **`dropAllUsersFromDatabase`**
  - **Categoría:** Administración de usuarios
  - **Description (Descripción):** Eliminación de todos los usuarios en una base de datos.

- **`dropUser`**
  - **Categoría:** Administración de usuarios
  - **Description (Descripción):** Eliminación de un usuario existente.

- **`grantRolesToUser`**
  - **Categoría:** Administración de usuarios
  - **Description (Descripción):** Concesión de roles a un usuario.

- **`revokeRolesFromUser`**
  - **Categoría:** Administración de usuarios
  - **Description (Descripción):** Revocando roles de un usuario.

- **`updateUser`**
  - **Categoría:** UserManagement
  - **Description (Descripción):** Actualización de un usuario existente.

- **`insert`**
  - **Categoría:** Escritura DML
  - **Description (Descripción):** Inserta uno o varios documentos en una colección.

- **`delete`**
  - **Categoría:** Escritura DML
  - **Description (Descripción):** Elimina uno o varios documentos de una colección.

- **`update`**
  - **Categoría:** Escritura DML
  - **Description (Descripción):** Modifica uno o varios documentos existentes en una colección.

- **`bulkWrite`**
  - **Categoría:** Escritura DML
  - **Description (Descripción):** Realiza múltiples operaciones de escritura con controles para determinar el orden de ejecución.

- **`setAuditConfig`**
  - **Categoría:** Escritura DML
  - **Description (Descripción):** Establezca un filtro nuevo para la auditoría de DML.

- **`count`**
  - **Categoría:** Lectura de DML
  - **Description (Descripción):** Devuelve el recuento de documentos que coincidirían con una consulta find() de la colección o vista.

- **`countDocuments`**
  - **Categoría:** Lectura de DML
  - **Description (Descripción):** Devuelve el recuento de documentos que coinciden con una consulta para una colección o vista.

- **`find`**
  - **Categoría:** Lectura de DML
  - **Description (Descripción):** Selecciona los documentos de una colección o vista y devuelve el cursor a los documentos seleccionados.

- **`getAuditConfig`**
  - **Categoría:** Lectura de DML
  - **Description (Descripción):** Recupere el filtro actual para la auditoría de DML.

- **`findAndModify`**
  - **Categoría:** Lectura de DML y escritura de DML
  - **Description (Descripción):** Modifica y devuelve un único documento.

- **`findOneAndDelete`**
  - **Categoría:** Lectura de DML y escritura de DML
  - **Description (Descripción):** Elimina un solo documento en función de los criterios de filtro y clasificación y devuelve el documento eliminado.

- **`findOneAndReplace`**
  - **Categoría:** Lectura de DML y escritura de DML
  - **Description (Descripción):** Sustituye un único documento en función del filtro especificado.

- **`findOneAndUpdate`**
  - **Categoría:** Lectura de DML y escritura de DML
  - **Description (Descripción):** Actualiza un único documento en función de los criterios de filtrado y clasificación.

- **`aggregate`**
  - **Categoría:** Lectura de DML y escritura de DML
  - **Description (Descripción):** Es compatible con APIs la canalización de agregación.

- **`distinct`**
  - **Categoría:** Lectura de DML
  - **Description (Descripción):** Busca los valores distintos de un campo especificado en una sola colección o vista y devuelve los resultados en una matriz.



**nota**  
Los valores del campo de parámetros del documento de eventos de DML tienen un límite de tamaño de 1 KB. Amazon DocumentDB trunca el valor si supera 1 KB.

**nota**  
Los eventos de eliminación de TTL no se auditan en este momento.

## Habilitación de auditorías
<a name="event-auditing-enabling-auditing"></a>

Para habilitar la auditoría en un clúster, hay que seguir un proceso de dos pasos. Asegúrese de completar ambos pasos o los registros de auditoría no se enviarán a CloudWatch Logs.

### Paso 1. Habilitación del parámetro de clúster audit\_logs
<a name="event-auditing-enable-audit_logs"></a>

Para habilitar la auditoría, debe modificar el parámetro `audit_logs` en el grupo de parámetros. `audit_logs` es una lista delimitada por comas de los eventos que se deben registrar. Los eventos se deben especificar en minúsculas y no debe haber espacios en blanco entre los elementos de la lista. 

Puede especificar los siguientes valores para el grupo de parámetro:


| Valor | Description (Descripción) | 
| --- | --- | 
| ddl | Al configurarlo, se habilitará la auditoría de eventos DDL como CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, CreateUser, DropUser, User, User, UpdateUser y grantRolesTo revokeRolesFrom dropAllUsers FromDatabase | 
| dml\_read | Cuando configura esto, se habilita la auditoría de eventos de lectura de DML como find, sort count, distinct, group, projecta, unwind, geoNear, geoIntersects, geoWithin y otros operadores de consulta de lectura de MongoDB. | 
| dml\_write | Al configurarlo, se habilitará la auditoría de eventos de escritura de DML como insert(), update(), delete() y bulkWrite() | 
| all | Al configurarlo, se habilitará la auditoría de los eventos de la base de datos, como las consultas de lectura y escritura, las acciones de la base de datos y las acciones del administrador. | 
| none | Si lo configura, se deshabilitará la auditoría | 
| enabled (heredado) | Se trata de una configuración de parámetros antigua que equivale a “ddl”. Al configurarlo, se habilitará la auditoría de eventos DDL como CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, CreateUser, DropUser, User, User, UpdateUser y. grantRolesTo revokeRolesFrom dropAllUsers FromDatabase No se recomienda utilizar este ajuste porque se trata de un ajuste heredado. | 
| disabled  (heredado) | Se trata de una configuración de parámetros antigua que equivale a “none”. No se recomienda utilizar este ajuste porque se trata de un ajuste heredado.  | 

**nota**  
El valor predeterminado del parámetro de clúster audit\_logs es `none` (“`disabled`” heredado).

También puede utilizar los valores mencionados anteriormente en combinaciones. 


| Valor | Description (Descripción) | 
| --- | --- | 
| ddl, dml\_read | Si lo configura, se habilitará la audición de los eventos DDL y los eventos de lectura de DML. | 
| ddl, dml\_write | Si lo configura, se habilitará la audición de los eventos DDL y la lectura de DML. | 
| dml\_read, dml\_write | Si lo configura, se habilitará la audición de los eventos DDL | 

**nota**  
No es posible modificar un grupo de parámetros predeterminado.

Para obtener más información, consulte los siguientes temas:
+ [Creación de grupos de parámetros de clúster de Amazon DocumentDB](cluster_parameter_groups-create.md)

  Después de crear un grupo de parámetros, para modificarlo, debe cambiar el valor del parámetro `audit_logs` a `all`.
+ [Modificación de grupos de parámetros de clúster de Amazon DocumentDB](cluster_parameter_groups-modify.md)

  

### Paso 2. Habilitar la exportación CloudWatch de Amazon Logs
<a name="event-auditing-enable-export"></a>

Si el valor del parámetro de `audit_logs` clúster es`enabled`,`ddl`, o `dml_read``dml_write`, también debe habilitar Amazon DocumentDB para exportar los registros a Amazon. CloudWatch Si omite alguno de estos pasos, no se enviarán los registros de auditoría a. CloudWatch

Al crear un clúster, realizar una point-in-time-restore instantánea o restaurar una instantánea, puede habilitar CloudWatch los registros siguiendo estos pasos.

------
#### [ Using the Consola de administración de AWS ]

Para permitir que Amazon DocumentDB exporte registros CloudWatch mediante la consola, consulte los siguientes temas:
+ **Al crear un clúster**: en [Crear un clúster y una instancia principal mediante el Consola de administración de AWS](db-cluster-create.md#db-cluster-create-con), consulte **Creación de un clúster: configuraciones adicionales** (paso 5, **Exportaciones de registros**)
+ **Al modificar un clúster existente** — [Modificación de un clúster de Amazon DocumentDB](db-cluster-modify.md)
+ **Al realizar una restauración de una instantánea de un clúster** — [Restauración de una instantánea del clúster](backup_restore-restore_from_snapshot.md)
+ **Al realizar una point-in-time restauración**: [Restauración a un momento dado](backup_restore-point_in_time_recovery.md)

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

**Para habilitar los registros de auditoría al crear un nuevo clúster**  
El siguiente código crea el clúster `sample-cluster` y habilita los registros CloudWatch de auditoría.

**Example**  
Para 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
```
Para 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
```

**Para habilitar los registros de auditoría al modificar un clúster existente**  
El siguiente código modifica el clúster `sample-cluster` y habilita los registros de CloudWatch auditoría.

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

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

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier {{sample-cluster}} ^
   --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit"]}'
```
El resultado de estas operaciones será similar al que se indica a continuación (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"
    }
}
```

------

## Deshabilitación de auditorías
<a name="event-auditing-disabling-auditing"></a>

Puede deshabilitar la auditoría deshabilitando la exportación de CloudWatch registros y deshabilitando el parámetro. `audit_logs`

### Desactivar CloudWatch la exportación de registros
<a name="event-auditing-disabling-logs-export"></a>

Puede deshabilitar la exportación de registros de auditoría mediante el Consola de administración de AWS o el AWS CLI.

------
#### [ Using the Consola de administración de AWS ]

El siguiente procedimiento utiliza el Consola de administración de AWS para deshabilitar la exportación de registros a Amazon DocumentDB. CloudWatch

**Para deshabilitar los registros de auditoría**

1. [Inicie sesión en y abra la Consola de administración de AWS consola de Amazon DocumentDB en https://console.aws.amazon.com /docdb.](https://console.aws.amazon.com/docdb)

1. En el panel de navegación, seleccione **Clusters (Clústeres)**. A continuación, elija el botón situado a la izquierda del nombre del clúster para el que desea deshabilitar la exportación de registros.

1. Elija **Actions (Acciones)** y después **Modify (Modificar)**.

1. Desplácese hacia abajo hasta la sección **Log exports (Exportaciones de registros)** y, a continuación, elija **Disabled (Deshabilitado)**.

1. Elija **Continuar**.

1. Revise los cambios y, a continuación, elija cuándo desea que se aplique este cambio en su clúster.
   + **Apply during the next scheduled maintenance window (Aplicar durante el siguiente periodo de mantenimiento programado)**
   + **Apply immediately (Aplicar inmediatamente)**

1. Elija **Modificar clúster**.

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

El siguiente código modifica el clúster `sample-cluster` e inhabilita los registros de auditoría. CloudWatch 

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

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

```
aws docdb modify-db-cluster ^
   --db-cluster-identifier {{sample-cluster}} ^
   --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit"]}'
```
La salida de esta operación será similar a lo que se indica a continuación (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"
            }
        ]
    }
}
```

------

### Deshabilitación del parámetro audit\_logs
<a name="event-auditing-disabling-audit-parameter"></a>

Para deshabilitar el parámetro `audit_logs` del clúster, puede modificar el clúster para que utilice un grupo de parámetros donde el valor del parámetro `audit_logs` esté `disabled`. O bien, puede modificar el valor del parámetro `audit_logs` en el grupo de parámetros del clúster para que esté `disabled`.

Para obtener más información, consulte los temas siguientes:
+ [Modificación de un clúster de Amazon DocumentDB](db-cluster-modify.md)
+ [Modificación de grupos de parámetros de clúster de Amazon DocumentDB](cluster_parameter_groups-modify.md)

## Acceso a los eventos de auditoría
<a name="event-auditing-accessing"></a>

Sigue los siguientes pasos para acceder a tus eventos de auditoría en Amazon CloudWatch.

1. Abre la CloudWatch consola en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Asegúrese de que se encuentra en la misma región que el clúster de Amazon DocumentDB.

1. En el panel de navegación, elija **Logs (Registros)**.

1. Para buscar los registros de auditoría del clúster, busque y elija en la lista **/aws/docdb/{{yourClusterName}}/audit**.

   Los eventos de auditoría de cada una de las instancias están disponibles debajo del nombre de instancia correspondiente.

## Filtrado de eventos de auditoría de DML
<a name="filtering-dml-events"></a>

### Introducción al filtrado de auditoría de DML
<a name="w2aac31c49c21b3"></a>

Los eventos de auditoría de DML se pueden filtrar antes de escribirlos en Amazon CloudWatch. Para utilizar esta característica, el registro de auditoría y el registro de DML deben estar habilitados. Amazon DocumentDB admite el filtrado en `atype`, `command`, `user`, `namespace` y `auditAuthorizationSuccess`.

**nota**  
Los eventos DDL no se filtran.

Para habilitar el filtrado de auditoría en cualquier momento, especifique el filtro de auditoría mediante los parámetros `setAuditConfig`, `filter` y `auditAuthorizationSuccess` de la operación `db.adminCommand( { command } )`:

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

También puede recuperar la configuración del filtro de auditoría mediante la ejecución del siguiente comando:

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

**Requisitos de seguridad**

Solo las bases de datos users/roles con una acción privilegiada `auditConfigure` pueden ejecutar los comandos anteriores `admindb` al configurar o enumerar los filtros de auditoría de DML. Puede utilizar uno de los roles integrados de [`clusterAdmin`, `hostManager`, `root`] o crear roles personalizados con privilegios de `auditConfigure`. A continuación, se muestra un ejemplo del uso de los roles existentes con el privilegio de `auditConfigure` y un ejemplo con los roles personalizados.

Usuario con rol integrado:

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

Usuario con roles personalizados:

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

#### Filtrado de casos de uso
<a name="filtering-use-cases"></a>

**Ejemplo: filtrado de eventos por comandos**

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

**Ejemplo: filtrado de eventos por nombre de usuario**

En este ejemplo, solo se registrará el usuario “myUser”:

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

**Ejemplo: filtrado mediante `atype`**

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

**nota**  
Todos los registros de DML tienen `authCheck` como `atype`. Solo DDL tiene un `atype` diferente. Si coloca un valor que no sea el `authCheck` de`filter`, no se generará un inicio de sesión en DML. CloudWatch

**Ejemplo: filtrado mediante varios filtros unidos por operadores**

```
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**  
En el nivel superior, solo se admiten `$and`, `$or` y `$nor`. Los demás operadores no se admiten y provocarán un error.

**Ejemplo: filtrado mediante eventos por `auditAuthorizationSuccess`**

En este filtro, no se registrarán todos los comandos que hayan pasado la autorización correctamente:

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

**Ejemplo: filtrado con condiciones `$in` y `$nin`**

Si se utiliza `$in` y `$nin`, el comando no se registrará, ya que habrá un “y” implícito entre las condiciones. En este ejemplo, regex bloqueará el comando `find` para que no se registre nada:

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

**Ejemplo: filtrado mediante `namespace`**

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

**Ejemplo: restablecimiento del filtro predeterminado**

Si se restablece el valor predeterminado, se registrarán todos los eventos de auditoría de DML. Para restablecer el filtrado al valor predeterminado, ejecute el siguiente comando:

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