

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.

# Filtrado de los eventos de datos mediante selectores de eventos avanzados
<a name="filtering-data-events"></a>

En esta sección se describe cómo puede usar los selectores de eventos avanzados para crear selectores detallados para registrar los eventos de datos que pueden ayudar a controlar los costos al registrar solo los eventos de datos específicos que le interesen.

Por ejemplo:
+ Puede incluir o excluir llamadas a la API específicas si agrega un filtro en el campo `eventName`.
+ Puede incluir o excluir el registro de recursos específicos si agrega un filtro en el campo `resources.ARN`. Por ejemplo, si estuviera registrando eventos de datos de S3, podría excluir el registro del bucket de S3 de su registro de seguimiento.
+ Puede optar por registrar únicamente los eventos de solo escritura o los eventos de solo lectura si agrega un filtro en el campo `readOnly`.

En la siguiente tabla se describen los campos admitidos para filtrar los eventos de datos. Para obtener una lista de los campos admitidos para cada tipo de CloudTrail evento, consulte [AdvancedEventSelector](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedEventSelector.html)la *referencia de la AWS CloudTrail API*.


| Campo | Obligatorio | Operadores válidos | Description (Descripción) | 
| --- | --- | --- | --- | 
|  **`eventCategory` **  |  Sí  |  `Equals`  |  Este campo está configurado en `Data` para registrar eventos de datos.  | 
|  **`resources.type`**  |  Sí  |  `Equals`  |  Este campo se usa para seleccionar el tipo de recurso cuyos eventos de datos quiere registrar. La tabla [Eventos de datos](logging-data-events-with-cloudtrail.md#logging-data-events) muestra los valores posibles.  | 
|  **`readOnly`**  |  No  |  `Equals`  |  Se trata de un campo opcional que se utiliza para incluir o excluir eventos de datos en función del valor `readOnly`. Un valor de `true` registra eventos de solo lectura. Un valor de `false` registra eventos de solo escritura. Si no agregas este campo, CloudTrail registra los eventos de lectura y escritura.   | 
|  **`eventName`**  |  No  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  Se trata de un campo opcional que se utiliza para filtrar o filtrar cualquier evento de datos registrado CloudTrail, como o. `PutBucket` `GetSnapshotBlock` Si utiliza el AWS CLI, puede especificar varios valores separando cada valor con una coma. Si utiliza la consola, puede especificar varios valores creando una condición para cada `eventName` que quiera usar para filtrar.  | 
|  **`resources.ARN`**  |  No  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  Se trata de un campo opcional que se utiliza para excluir o incluir eventos de datos de un recurso específico proporcionando el `resources.ARN`. Puede utilizar cualquier operador con `resources.ARN`, pero si utiliza `Equals` o `NotEquals`, el valor debe coincidir exactamente con el ARN de un recurso válido del `resources.type` especificado. Para registrar todos los eventos de datos de todos los objetos en un bucket de S3 específico, utilice el operador `StartsWith` e incluya solo el ARN del bucket como valor coincidente. Si utilizas el AWS CLI, puedes especificar varios valores separando cada valor con una coma. Si utiliza la consola, puede especificar varios valores creando una condición para cada `resources.ARN` que quiera usar para filtrar.  | 
|  **`eventSource`**  |  No  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  Puede usarlo para incluir o excluir orígenes de eventos específicos. El `eventSource` suele ser una forma abreviada del nombre del servicio sin espacios más `.amazonaws.com`. Por ejemplo, puede establecer el `eventSource` `Equals` en `ec2.amazonaws.com` para registrar solo los eventos de datos de Amazon EC2.  | 
|  **`eventType`**  |  No  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  El [eventType](cloudtrail-event-reference-record-contents.md#ct-event-type) que se va a incluir o excluir. Por ejemplo, puede establecer este campo en `NotEquals` `AwsServiceEvent` para excluir [eventos de Servicio de AWS](non-api-aws-service-events.md).  | 
|  **`sessionCredentialFromConsole`**  |  No  |  `Equals` `NotEquals`  |  Incluya o excluya los eventos que se originan en una Consola de administración de AWS sesión. Este campo se puede establecer como `Equals` o `NotEquals` con un valor de `true`.  | 
|  **`userIdentity.arn`**  |  No  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  Incluya o excluya eventos para las acciones realizadas por identidades de IAM específicas. Para obtener más información, consulte [Elemento userIdentity de CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).  | 

Para registrar eventos de datos mediante la CloudTrail consola, elija la opción **Eventos de datos** y, a continuación, seleccione el **tipo de recurso** de interés al crear o actualizar un almacén de datos de senderos o eventos. La tabla de [eventos de datos](logging-data-events-with-cloudtrail.md#logging-data-events) muestra los posibles tipos de recursos que puede elegir en la CloudTrail consola.

![\[Selección del tipo de recurso del tema de SNS en la consola.\]](http://docs.aws.amazon.com/es_es/awscloudtrail/latest/userguide/images/cloudtrail-data-event-type.png)


Para registrar eventos de datos con el AWS CLI, configure el `--advanced-event-selector` parámetro para establecer un valor `eventCategory` igual `Data` y un `resources.type` valor igual al valor del tipo de recurso para el que desea registrar los eventos de datos. La tabla [Eventos de datos](logging-data-events-with-cloudtrail.md#logging-data-events) muestra los tipos de recursos disponibles.

Por ejemplo, si quiere registrar los eventos de datos de todos los grupos de identidades de Cognito, debe configurar el parámetro `--advanced-event-selectors` como se muestra a continuación:

```
--advanced-event-selectors '[
    {
       "Name": "Log Cognito data events on Identity pools",
       "FieldSelectors": [
         { "Field": "eventCategory", "Equals": ["Data"] },
         { "Field": "resources.type", "Equals": ["AWS::Cognito::IdentityPool"] }
       ]
     }
]'
```

El ejemplo anterior registra todos los eventos de datos de Cognito en los grupos de identidades. Puede refinar aún más los selectores de eventos avanzados para filtrar por los campos `eventName`, `readOnly` y `resources.ARN` y registrar eventos específicos que le interesen o excluir los que no le interesen.

Puede configurar los selectores de eventos avanzados para filtrar eventos de datos en función de varios campos. Por ejemplo, puede configurar selectores de eventos avanzados para registrar todas las llamadas a las API `PutObject` y `DeleteObject` de Amazon S3, pero excluir el registro de eventos de un bucket de S3 específico, como se muestra en el siguiente ejemplo. Reemplace *amzn-s3-demo-bucket* con el nombre de su bucket.

```
--advanced-event-selectors
'[
  {
    "Name": "Log PutObject and DeleteObject events for all but one bucket",
    "FieldSelectors": [
      { "Field": "eventCategory", "Equals": ["Data"] },
      { "Field": "resources.type", "Equals": ["AWS::S3::Object"] },
      { "Field": "eventName", "Equals": ["PutObject","DeleteObject"] },
      { "Field": "resources.ARN", "NotStartsWith": ["arn:aws:s3:::amzn-s3-demo-bucket/"] }
    ]
  }
]'
```

También puede incluir varias condiciones para un campo. Para obtener información sobre cómo se evalúan varias condiciones, consulte [¿Cómo CloudTrail se evalúan las condiciones múltiples de un campo](#filtering-data-events-conditions).

Puede utilizar los selectores de eventos avanzados para registrar tanto eventos de administración como de datos. Para registrar los eventos de datos para varios tipos de recursos, agregue una instrucción del selector de campos para cada tipo de recurso cuyos eventos de datos quiera registrar.

**nota**  
Los registros de seguimiento pueden usar selectores de eventos avanzados básicos, pero no ambos. Si aplica selectores de eventos avanzados a un registro de seguimiento, se sobrescriben todos los selectores de eventos básicos existentes.  
Los selectores no admiten el uso de caracteres comodín como `*`. Para hacer coincidir varios valores con una sola condición, puede usar `StartsWith`, `EndsWith`, `NotStartsWith` o `NotEndsWith` a fin de hacer coincidir de manera explícita el principio o el final del campo de evento.

**Topics**
+ [¿Cómo CloudTrail se evalúan las condiciones múltiples de un campo](#filtering-data-events-conditions)
+ [AWS CLI ejemplos de filtrado de eventos de datos](#filtering-data-events-examples)

## ¿Cómo CloudTrail se evalúan las condiciones múltiples de un campo
<a name="filtering-data-events-conditions"></a>

En el caso de los selectores de eventos avanzados, CloudTrail evalúa varias condiciones de un campo de la siguiente manera:
+ Los operadores DESELECT se agrupan con AND. Si se cumple alguna de las condiciones del operador DESELECT, el evento no se entrega. Estos son los operadores DESELECT válidos para los selectores de eventos avanzados:
  + `NotEndsWith`
  + `NotEquals`
  + `NotStartsWith`
+ Los operadores SELECT se agrupan con OR. Estos son los operadores SELECT válidos para los selectores de eventos avanzados:
  + `EndsWith`
  + `Equals`
  + `StartsWith`
+ Las combinaciones de operadores SELECT y DESELECT siguen las reglas anteriores y ambos grupos combinan con AND.

### Ejemplo que muestra varias condiciones para el campo `resources.ARN`
<a name="filtering-data-events-conditions-ex"></a>

En el siguiente ejemplo, la instrucción del selector de eventos recopila eventos de datos para el tipo de recurso `AWS::S3::Object` y aplica varias condiciones en el campo `resources.ARN`.

```
{
    "Name": "S3Select",
    "FieldSelectors": [
      {
        "Field": "eventCategory",
        "Equals": [
          "Data"
        ]
      },
      {
        "Field": "resources.type",
        "Equals": [
          "AWS::S3::Object"
        ]
      },
      {
        "Field": "resources.ARN",
        "Equals": [
          "arn:aws:s3:::amzn-s3-demo-bucket/object1"
        ],
        "StartsWith": [
          "arn:aws:s3:::amzn-s3-demo-bucket/"
        ],
        "EndsWith": [
          "object3"
        ],
        "NotStartsWith": [
          "arn:aws:s3:::amzn-s3-demo-bucket/deselect"
        ],
        "NotEndsWith": [
          "object5"
        ],
        "NotEquals": [
          "arn:aws:s3:::amzn-s3-demo-bucket/object6"
        ]
      }
    ]
  }
```

En el ejemplo anterior, los eventos de datos de Amazon S3 para el recurso `AWS::S3::Object` se entregarán si: 

1. No se cumple ninguna de estas condiciones del operador DESELECT:
   + el campo `resources.ARN` `NotStartsWith` el valor `arn:aws:s3:::amzn-s3-demo-bucket/deselect`
   + el campo `resources.ARN` `NotEndsWith` el valor `object5`
   + el campo `resources.ARN` `NotEquals` el valor `arn:aws:s3:::amzn-s3-demo-bucket/object6`

1. Se cumple al menos una de estas condiciones del operador SELECT: 
   + el campo `resources.ARN` `Equals` el valor `arn:aws:s3:::amzn-s3-demo-bucket/object1`
   + el campo `resources.ARN` `StartsWith` el valor `arn:aws:s3:::amzn-s3-demo-bucket/`
   + el campo `resources.ARN` `EndsWith` el valor `object3`

Según la lógica de evaluación:

1. Los eventos de datos de `amzn-s3-demo-bucket/object1` se entregarán porque coincide con el valor del operador `Equals` y no coincide con ninguno de los valores de los operadores `NotStartsWith`, `NotEndsWith` y `NotEquals`.

1. El evento de datos de `amzn-s3-demo-bucket/object2` se entregará porque coincide con el valor del operador `StartsWith` y no coincide con ninguno de los valores de los operadores `NotStartsWith`, `NotEndsWith` y `NotEquals`.

1. Los eventos de datos de `amzn-s3-demo-bucket1/object3` se entregarán porque coincide con el operador `EndsWith` y no coincide con ninguno de los valores de los operadores `NotStartsWith`, `NotEndsWith` y `NotEquals`.

1. Los eventos de datos de `arn:aws:s3:::amzn-s3-demo-bucket/deselectObject4` no se entregarán porque coincide con la condición de `NotStartsWith`, aunque coincida con la condición del operador `StartsWith`.

1. Los eventos de datos de `arn:aws:s3:::amzn-s3-demo-bucket/object5` no se entregarán porque coincide con la condición de `NotEndsWith`, aunque coincida con la condición del operador `StartsWith`.

1. Los eventos de datos de `arn:aws:s3:::amzn-s3-demo-bucket/object6` no se entregarán porque coincide con la condición del operador `NotEquals`, aunque coincida con la condición del operador `StartsWith`.

## AWS CLI ejemplos de filtrado de eventos de datos
<a name="filtering-data-events-examples"></a>

En esta sección se proporcionan AWS CLI ejemplos que muestran cómo filtrar los eventos de datos en distintos campos. Para ver AWS CLI ejemplos adicionales, consulte [Registrar los eventos de datos de los registros de seguimiento mediante selectores de eventos avanzados](logging-data-events-with-cloudtrail.md#creating-data-event-selectors-advanced) y[Registrar los eventos de datos para los almacenes de datos de eventos con el AWS CLI](logging-data-events-with-cloudtrail.md#logging-data-events-CLI-eds-examples).

Para obtener información acerca de cómo registrar eventos de datos mediante la consola, consulte [Registrar eventos de datos con Consola de administración de AWS](logging-data-events-with-cloudtrail.md#logging-data-events-console).

**Topics**
+ [Ejemplo 1: filtrar en el campo `eventName`](#filtering-data-events-eventname)
+ [Ejemplo 2: filtrar en los campos `resources.ARN` y `userIdentity.arn`](#filtering-data-events-useridentityarn)
+ [Ejemplo 3: Filtrar los `eventName` campos `resources.type` y para excluir objetos individuales eliminados por un DeleteObjects evento de Amazon S3](#filtering-data-events-deleteobjects)

### Ejemplo 1: filtrar en el campo `eventName`
<a name="filtering-data-events-eventname"></a>

En el primer ejemplo, los `--advanced-event-selectors` para los registros de seguimiento están configurados para registrar solo las llamadas a la API de `GetObject`, `PutObject` y `DeleteObject` para los objetos de Amazon S3 en buckets de uso general.

```
aws cloudtrail put-event-selectors \
--trail-name trailName \
--advanced-event-selectors '[
  {
    "Name": "Log GetObject, PutObject and DeleteObject S3 data events",
    "FieldSelectors": [
      { "Field": "eventCategory", "Equals": ["Data"] },
      { "Field": "resources.type", "Equals": ["AWS::S3::Object"] },
      { "Field": "eventName", "Equals": ["GetObject","PutObject","DeleteObject"] }
    ]
  }
]'
```

El siguiente ejemplo crea un nuevo almacén de datos de eventos que registra los eventos de datos para EBS Direct, APIs pero excluye las llamadas a la `ListChangedBlocks` API. Puede utilizar el comando [https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/update-event-data-store.html](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/update-event-data-store.html) para actualizar un almacén de datos de eventos existente.

```
aws cloudtrail create-event-data-store \
--name "eventDataStoreName"
--advanced-event-selectors '[
    {
        "Name": "Log all EBS Direct API data events except ListChangedBlocks",
        "FieldSelectors": [
            { "Field": "eventCategory", "Equals": ["Data"] },
            { "Field": "resources.type", "Equals": ["AWS::EC2::Snapshot"] },
            { "Field": "eventName", "NotEquals": ["ListChangedBlocks"] }
         ]
    }
]'
```

### Ejemplo 2: filtrar en los campos `resources.ARN` y `userIdentity.arn`
<a name="filtering-data-events-useridentityarn"></a>

En el ejemplo siguiente, se muestra cómo incluir todos los eventos de datos de todos los objetos de Amazon S3 en un bucket de S3 específico de uso general, pero excluir los eventos que genera `bucket-scanner-role` `userIdentity`. El valor de los eventos de S3 para el campo `resources.type` es `AWS::S3::Object`. Debido a que los valores de ARN para los objetos de S3 y los buckets de S3 son ligeramente diferentes, debe agregar el operador `StartsWith` para `resources.ARN`.

```
aws cloudtrail put-event-selectors \
--trail-name trailName \
--advanced-event-selectors \
'[
    {
        "Name": "S3EventSelector",
        "FieldSelectors": [
            { "Field": "eventCategory", "Equals": ["Data"] },
            { "Field": "resources.type", "Equals": ["AWS::S3::Object"] },
            { "Field": "resources.ARN", "StartsWith": ["arn:partition:s3:::amzn-s3-demo-bucket/"] },
            { "Field": "userIdentity.arn", "NotStartsWith": ["arn:aws:sts::123456789012:assumed-role/bucket-scanner-role"]}
        ]
    }
]'
```

### Ejemplo 3: Filtrar los `eventName` campos `resources.type` y para excluir objetos individuales eliminados por un DeleteObjects evento de Amazon S3
<a name="filtering-data-events-deleteobjects"></a>

En el ejemplo siguiente, se muestra cómo incluir todos los eventos de datos de todos los objetos de Amazon S3 en un bucket de Amazon S3 específico de uso general, pero excluir los objetos individuales por la operación `DeleteObject`. El valor de los eventos de S3 para el campo `resources.type` es `AWS::S3::Object`. El valor para el nombre del evento es `DeleteObject`. 

```
aws cloudtrail put-event-selectors \
--trail-name trailName \
--advanced-event-selectors \

{
    "Name": "Exclude Events for DeleteObject operation",
    "FieldSelectors": [
      {
        "Field": "eventCategory",
        "Equals": [
          "Data"
        ]
      },
      {
        "Field": "resources.type",
        "Equals": [
          "AWS::S3::Object"
        ]
      },
      {
        "Field": "eventName",
        "NotEquals": [
          "DeleteObject"
        ]
      }
    ]
  },
  {
    "Name": "Exclude DeleteObject Events for individual objects deleted by DeleteObjects Operation",
    "FieldSelectors": [
      {
        "Field": "eventCategory",
        "Equals": [
          "Data"
        ]
      },
      {
        "Field": "resources.type",
        "Equals": [
          "AWS::S3::Object"
        ]
      },
      {
        "Field": "eventName",
        "Equals": [
          "DeleteObject"
        ]
      },
      {
        "Field": "eventType",
        "NotEquals": [
          "AwsServiceEvent"
        ]
      }
    ]
  }
] (edited)
```