

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Filtrar todos os eventos de dados utilizando seletores de eventos avançados
<a name="filtering-data-events"></a>

Esta seção descreve como usar seletores de eventos avançados para criar seletores refinados para registro em do de eventos de dados, o que pode ajudar a controlar os custos registrando em log apenas os eventos de dados de interesse específicos.

Por exemplo:
+ Você pode incluir ou excluir chamadas de API específicas adicionando um filtro no campo `eventName`.
+ Você pode incluir ou excluir registros em log de recursos específicos adicionando um filtro no campo `resources.ARN`. Por exemplo, se você estivesse registrando em log eventos de dados do S3, poderia excluir o registro do bucket do S3 para sua trilha.
+ Você pode optar por registrar apenas eventos somente gravação ou eventos somente leitura adicionando um filtro no campo `readOnly`.

A tabela a seguir descreve os campos compatíveis com filtragem de eventos de dados. Para ver uma lista dos campos compatíveis para cada tipo de CloudTrail evento, consulte [AdvancedEventSelector](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_AdvancedEventSelector.html)a *Referência da AWS CloudTrail API*.


| Campo | Obrigatório | Operadores válidos | Description | 
| --- | --- | --- | --- | 
|  **`eventCategory` **  |  Sim  |  `Equals`  |  Esse campo é definido como `Data` para registrar eventos de dados.  | 
|  **`resources.type`**  |  Sim  |  `Equals`  |  Esse campo é usado para selecionar o tipo de recurso para o qual você deseja registrar eventos de dados. A tabela [Eventos de dados](logging-data-events-with-cloudtrail.md#logging-data-events) mostra os valores possíveis.  | 
|  **`readOnly`**  |  Não  |  `Equals`  |  Esse é um campo opcional usado para incluir ou excluir eventos de dados com base no valor de `readOnly`. Um valor de `true` registra eventos somente leitura. Um valor de `false` registra eventos somente gravação. Se você não adicionar esse campo, CloudTrail registrará os eventos de leitura e gravação.   | 
|  **`eventName`**  |  Não  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  Esse é um campo opcional usado para filtrar ou filtrar qualquer evento de dados registrado, como ou. CloudTrail `PutBucket` `GetSnapshotBlock` Se você estiver usando o AWS CLI, você pode especificar vários valores separando cada valor com uma vírgula. Se você estiver usando o console, poderá especificar vários valores criando uma condição para cada `eventName` que deseja filtrar.  | 
|  **`resources.ARN`**  |  Não  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  Esse é um campo opcional usado para excluir ou incluir eventos de dados para um recurso específico fornecendo o `resources.ARN`. É possível usar qualquer operador com `resources.ARN`, mas se você usar `Equals` ou `NotEquals`, o valor deverá corresponder exatamente ao ARN de um recurso válido do `resources.type` especificado. Para registrar todos os eventos de dados de todos os objetos do em um bucket do S3 específico, use a propriedade `StartsWith` e inclua apenas o ARN do bucket como o valor correspondente. Se você estiver usando o AWS CLI, você pode especificar vários valores separando cada valor com uma vírgula. Se você estiver usando o console, poderá especificar vários valores criando uma condição para cada `resources.ARN` que deseja filtrar.  | 
|  **`eventSource`**  |  Não  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  Você pode usá-lo para incluir ou excluir origens de eventos específicas. A `eventSource` normalmente é uma forma abreviada do nome do serviço sem espaços acrescida de `.amazonaws.com`. Por exemplo, você poderia definir `eventSource` `Equals` como `ec2.amazonaws.com` para registrar em log apenas eventos de dados do Amazon EC2.  | 
|  **`eventType`**  |  Não  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  O [eventType](cloudtrail-event-reference-record-contents.md#ct-event-type) a ser incluído ou excluído. Por exemplo, é possível definir esse campo como `NotEquals` `AwsServiceEvent` para excluir [eventos do AWS service (Serviço da AWS)](non-api-aws-service-events.md).  | 
|  **`sessionCredentialFromConsole`**  |  Não  |  `Equals` `NotEquals`  |  Inclua ou exclua eventos originados de uma Console de gerenciamento da AWS sessão. Esse campo pode ser definido como `Equals` ou `NotEquals` com um valor de `true`.  | 
|  **`userIdentity.arn`**  |  Não  |  `EndsWith` `Equals` `NotEndsWith` `NotEquals` `NotStartsWith` `StartsWith`  |  Inclua ou exclua eventos de ações realizadas por identidades do IAM específicas. Para obter mais informações, consulte [Elemento userIdentity do CloudTrail ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html).  | 

Para registrar eventos de dados usando o CloudTrail console, você escolhe a opção **Eventos de dados** e, em seguida, seleciona o **tipo de recurso** de interesse ao criar ou atualizar um armazenamento de dados de trilhas ou eventos. A tabela [de eventos de dados](logging-data-events-with-cloudtrail.md#logging-data-events) mostra os tipos de recursos possíveis que você pode escolher no CloudTrail console.

![\[Seleção do tipo de recurso do tópico do SNS no console.\]](http://docs.aws.amazon.com/pt_br/awscloudtrail/latest/userguide/images/cloudtrail-data-event-type.png)


Para registrar eventos de dados com o AWS CLI, configure o `--advanced-event-selector` parâmetro para definir o valor `eventCategory` igual `Data` e igual ao `resources.type` valor do tipo de recurso para o qual você deseja registrar eventos de dados. A tabela [Eventos de dados](logging-data-events-with-cloudtrail.md#logging-data-events) lista os tipos de recursos disponíveis.

Por exemplo, se você quisesse registrar eventos de dados para todos os bancos de identidades do Cognito, você configuraria o parâmetro `--advanced-event-selectors` para ter a seguinte aparência:

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

O exemplo anterior registra todos os eventos de dados do Cognito nos bancos de identidades. Você pode refinar ainda mais os seletores de eventos avançados para filtrar os campos `eventName`, `readOnly` e `resources.ARN` para registrarem ou excluírem eventos específicos de interesse ou não.

É possível configurar seletores de eventos avançados para filtrar eventos de dados com base em vários campos. Por exemplo, você pode configurar seletores de eventos avançados para registrar todos os `PutObject` do Amazon S3 e chamadas `DeleteObject` de API, mas excluir o registro em log de eventos de um bucket específico do S3, conforme mostrado no exemplo a seguir. Substitua *amzn-s3-demo-bucket* pelo nome do seu 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/"] }
    ]
  }
]'
```

Você também pode incluir várias condições para um campo. Para obter informações sobre como várias condições são avaliadas, consulte [Como CloudTrail avalia várias condições para um campo](#filtering-data-events-conditions).

É possível usar seletores de eventos avançados para registrar eventos de gerenciamento e de dados. Para registrar eventos de dados de vários tipos de recursos, adicione uma instrução no seletor de campo para cada tipo de recurso para o qual você deseja registrar eventos de dados.

**nota**  
As trilhas podem usar seletores de eventos avançados ou seletores de eventos básicos, mas não ambos. Se você aplicar seletores de eventos avançados a uma trilha, todos os seletores de eventos básicos existentes serão substituídos.  
Os seletores não são compatíveis com o uso de curingas, como `*`. Para combinar vários valores com uma única condição, é possível usar `StartsWith`, `EndsWith`, `NotStartsWith` ou `NotEndsWith` para corresponder explicitamente ao início ou ao fim do campo do evento.

**Topics**
+ [Como CloudTrail avalia várias condições para um campo](#filtering-data-events-conditions)
+ [AWS CLI exemplos para filtrar eventos de dados](#filtering-data-events-examples)

## Como CloudTrail avalia várias condições para um campo
<a name="filtering-data-events-conditions"></a>

Para seletores de eventos avançados, CloudTrail avalia várias condições para um campo da seguinte forma:
+ Os operadores DESELECT são AND'd (combinados). Se alguma das condições do operador DESELECT for atendida, o evento não será entregue. Os operadores DESELECT válidos para seletores de eventos avançados são os seguintes:
  + `NotEndsWith`
  + `NotEquals`
  + `NotStartsWith`
+ Os operadores SELECT são OR'd (exclusivos). Os operadores SELECT válidos para seletores de eventos avançados são os seguintes:
  + `EndsWith`
  + `Equals`
  + `StartsWith`
+ As combinações dos operadores SELECT e DESELECT seguem as regras acima e os dois grupos são combinados (AND'd).

### Exemplo mostrando várias condições para o campo `resources.ARN`
<a name="filtering-data-events-conditions-ex"></a>

O exemplo de instrução do seletor de eventos a seguir coleta eventos de dados do tipo de recurso `AWS::S3::Object` e aplica várias condições no 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"
        ]
      }
    ]
  }
```

No exemplo anterior, os eventos de dados do Amazon S3 para o recurso `AWS::S3::Object` serão entregues se: 

1. Nenhuma das seguintes condições do operador DESELECT for atendida:
   + o campo `resources.ARN` `NotStartsWith` com o valor `arn:aws:s3:::amzn-s3-demo-bucket/deselect`
   + o campo `resources.ARN` `NotEndsWith` com o valor `object5`
   + o campo `resources.ARN` `NotEquals` com o valor `arn:aws:s3:::amzn-s3-demo-bucket/object6`

1. Pelo menos uma das seguintes condições do operador SELECT for atendida: 
   + o campo `resources.ARN` `Equals` com o valor `arn:aws:s3:::amzn-s3-demo-bucket/object1`
   + o campo `resources.ARN` `StartsWith` com o valor `arn:aws:s3:::amzn-s3-demo-bucket/`
   + o campo `resources.ARN` `EndsWith` com o valor `object3`

Com base na lógica de avaliação:

1. Os eventos de dados do `amzn-s3-demo-bucket/object1` serão entregues porque correspondem ao valor do operador `Equals` e não correspondem a nenhum dos valores dos operadores `NotStartsWith`, `NotEndsWith` e `NotEquals`.

1. O evento de dados do `amzn-s3-demo-bucket/object2` será entregue porque corresponde ao valor do operador `StartsWith` e não corresponde a nenhum dos valores dos operadores `NotStartsWith`, `NotEndsWith` e `NotEquals`.

1. Os eventos de dados do `amzn-s3-demo-bucket1/object3` serão entregues porque correspondem ao operador `EndsWith` e não correspondem a nenhum dos valores dos operadores `NotStartsWith`, `NotEndsWith` e `NotEquals`.

1. Os eventos de dados do `arn:aws:s3:::amzn-s3-demo-bucket/deselectObject4` não serão entregues porque correspondem à condição `NotStartsWith`, embora correspondam à condição do operador `StartsWith`.

1. Os eventos de dados do `arn:aws:s3:::amzn-s3-demo-bucket/object5` não serão entregues porque correspondem à condição `NotEndsWith`, embora correspondam à condição do operador `StartsWith`.

1. Os eventos de dados do `arn:aws:s3:::amzn-s3-demo-bucket/object6` não serão entregues porque correspondem à condição do operador `NotEquals`, embora correspondam à condição do operador `StartsWith`.

## AWS CLI exemplos para filtrar eventos de dados
<a name="filtering-data-events-examples"></a>

Esta seção fornece AWS CLI exemplos que mostram como filtrar eventos de dados em campos diferentes. Para obter AWS CLI exemplos adicionais, consulte [Registrar em log eventos de dados para trilhas usando seletores de eventos avançados](logging-data-events-with-cloudtrail.md#creating-data-event-selectors-advanced) [Registrando eventos de dados para armazenamentos de dados de eventos com o AWS CLI](logging-data-events-with-cloudtrail.md#logging-data-events-CLI-eds-examples) e.

Para obter informações sobre como registrar em log eventos de dados usando o console, consulte [Registrando eventos de dados com o Console de gerenciamento da AWS](logging-data-events-with-cloudtrail.md#logging-data-events-console).

**Topics**
+ [Exemplo 1: filtragem com base no campo `eventName`](#filtering-data-events-eventname)
+ [Exemplo 2: filtragem com base nos campos `resources.ARN` e `userIdentity.arn`](#filtering-data-events-useridentityarn)
+ [Exemplo 3: Filtragem nos `eventName` campos `resources.type` e para excluir objetos individuais excluídos por um evento do Amazon DeleteObjects S3](#filtering-data-events-deleteobjects)

### Exemplo 1: filtragem com base no campo `eventName`
<a name="filtering-data-events-eventname"></a>

No primeiro exemplo, os `--advanced-event-selectors` para uma trilha estão configurados para registrar em log apenas o `GetObject`, o `PutObject` e as chamadas de API `DeleteObject` para objetos do Amazon S3 em buckets de uso geral.

```
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"] }
    ]
  }
]'
```

O próximo exemplo cria um novo armazenamento de dados de eventos que registra eventos de dados para o EBS Direct APIs , mas exclui as chamadas de `ListChangedBlocks` API. Você pode usar o 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 atualizar um armazenamento de dados 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"] }
         ]
    }
]'
```

### Exemplo 2: filtragem com base nos campos `resources.ARN` e `userIdentity.arn`
<a name="filtering-data-events-useridentityarn"></a>

O exemplo a seguir mostra como incluir todos os eventos de dados de todos os objetos do Amazon S3 em um determinado bucket do S3 de uso geral e excluir eventos gerados pela `userIdentity` `bucket-scanner-role`. O valor para eventos do S3 para o campo `resources.type` é `AWS::S3::Object`. Como os valores de ARN para objetos do S3 e buckets do S3 são ligeiramente diferentes, você deve adicionar o operador `StartsWith` para o `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"]}
        ]
    }
]'
```

### Exemplo 3: Filtragem nos `eventName` campos `resources.type` e para excluir objetos individuais excluídos por um evento do Amazon DeleteObjects S3
<a name="filtering-data-events-deleteobjects"></a>

O exemplo a seguir mostra como incluir todos os eventos de dados de todos os objetos do Amazon S3 em um determinado bucket do S3 de uso geral e excluir objetos individuais excluídos pela operação `DeleteObject`. O valor para eventos do S3 para o campo `resources.type` é `AWS::S3::Object`. O valor para o nome do evento é `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)
```