Filtrar todos os eventos de dados utilizando seletores de eventos avançados - AWS CloudTrail

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

Esta seção descreve como você pode usar seletores de eventos avançados para criar seletores refinados para registrar eventos de dados, o que pode ajudá-lo a controlar custos registrando somente os eventos de dados específicos de interesse.

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 para filtrar eventos de dados. Para ver uma lista dos campos compatíveis para cada tipo de CloudTrail evento, consulte AdvancedEventSelectora Referência da AWS CloudTrail API.

Campo Obrigatório Operadores válidos Descrição

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 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 fontes de eventos específicas. Normalmente, eventSource é uma forma abreviada do nome do serviço sem mais espaços.amazonaws.com. Por exemplo, você pode configurar eventSource Equals ec2.amazonaws.com para registrar somente eventos de EC2 dados da Amazon.

eventType

Não

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

O EventType a ser incluído ou excluído. Por exemplo, você pode definir esse campo NotEquals AwsServiceEvent para excluir AWS service (Serviço da AWS) eventos.

sessionCredentialFromConsole

Não

Equals

NotEquals

Inclua ou exclua eventos originados de uma AWS Management Console sessão. Esse campo pode ser definido como Equals ou NotEquals com um valor detrue.

userIdentity.arn

Não

EndsWith

Equals

NotEndsWith

NotEquals

NotStartsWith

StartsWith

Inclua ou exclua eventos para ações realizadas por identidades específicas do IAM. Para obter mais informações, consulte Elemento userIdentity do CloudTrail .

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 mostra os tipos de recursos possíveis que você pode escolher no CloudTrail console.

Seleção do tipo de recurso de tópico do SNS no console.

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 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.

É 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 suportam o uso de curingas, como. * Para combinar vários valores com uma única condição, você pode usarStartsWith,, EndsWithNotStartsWith, ou NotEndsWith para corresponder explicitamente ao início ou ao fim do campo do evento.

Como CloudTrail avalia várias condições para um campo

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

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

  2. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Esta seção fornece AWS CLI exemplos que mostram como filtrar eventos de dados em campos diferentes. Para obter AWS CLI exemplos adicionais, consulte Registre eventos de dados para trilhas usando seletores de eventos avançados Registrando eventos de dados para armazenamentos de dados de eventos com o AWS CLI e.

Para obter informações sobre como registrar eventos de dados usando o console, consulteRegistrando eventos de dados com o AWS Management Console.

Exemplo 1: Filtragem no eventName campo

No primeiro exemplo, o --advanced-event-selectors for a trail está configurado para registrar somente oGetObject,PutObject, e as chamadas de DeleteObject API 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 update-event-data-storecomando 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 nos campos resources.ARN e userIdentity.arn

O exemplo a seguir mostra como incluir todos os eventos de dados de todos os objetos do Amazon S3 em um bucket S3 de uso geral específico, mas excluir eventos gerados pelo. bucket-scanner-role userIdentity 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 um pouco diferentes, você deve adicionar o operador para. StartsWith 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"]} ] } ]'