Visualizar eventos do CloudTrail Insights para trilhas com a AWS CLI - AWS CloudTrail

Visualizar eventos do CloudTrail Insights para trilhas com a AWS CLI

É possível pesquisar eventos do CloudTrail Insights dos últimos 90 dias executando o comando aws cloudtrail lookup-events. O comando lookup-events apresenta as seguintes opções:

  • --end-time

  • --event-category

  • --max-results

  • --start-time

  • --lookup-attributes

  • --next-token

  • --generate-cli-skeleton

  • --cli-input-json

Para obter informações gerais sobre o AWS Command Line Interface, consulte o Guia do usuário do AWS Command Line Interface.

Pré-requisitos

  • Para executar comandos AWS CLI, é necessário instalar AWS CLI. Para obter mais informações, consulte Conceitos básicos do AWS CLI.

  • Certifique-se de que a sua versão AWS CLI seja posterior à 1.6.6. Para verificar a versão da CLI, execute aws --version na linha de comando.

  • Para definir a conta, a região e o formato de saída padrão de uma sessão da AWS CLI, use o comando aws configure. Para obter mais informações, consulte Configurar a interface de linha de comando da AWS.

  • Para registrar em log eventos do Insights sobre o volume de chamadas à API, a trilha deve registrar em log os eventos de gerenciamento de write. Para registrar em log eventos do Insights sobre a taxa de erros da API, a trilha deve registrar em log os eventos de gerenciamento de read ou write.

nota

Os comandos AWS CLI do CloudTrail diferenciam maiúsculas e minúsculas.

Receber ajuda da linha de comando

Para ver a ajuda da linha de comando para lookup-events, digite o comando a seguir.

aws cloudtrail lookup-events help

Pesquisar eventos do Insights

Para ver os dez eventos do Insights mais recentes, digite o comando a seguir.

aws cloudtrail lookup-events --event-category insight

Um evento retornado tem aparência semelhante ao seguinte exemplo:

{ "NextToken": "kbOt5LlZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juEXAMPLE=", "Events": [ { "eventVersion": "1.07", "eventTime": "2019-10-15T21:13:00Z", "awsRegion": "us-east-1", "eventID": "EXAMPLE-9b6f-45f8-bc6b-9b41c052ebc7", "eventType": "AwsCloudTrailInsight", "recipientAccountId": "123456789012", "sharedEventID": "EXAMPLE8-02b2-4e93-9aab-08ed47ea5fd3", "insightDetails": { "state": "Start", "eventSource": "autoscaling.amazonaws.com", "eventName": "CompleteLifecycleAction", "insightType": "ApiCallRateInsight", "insightContext": { "statistics": { "baseline": { "average": 0.0000882145 }, "insight": { "average": 0.6 }, "insightDuration": 5, "baselineDuration": 11336 }, "attributions": [ { "attribute": "userIdentityArn", "insight": [ { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole1", "average": 0.2 }, { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole2", "average": 0.2 }, { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole3", "average": 0.2 } ], "baseline": [ { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole1", "average": 0.0000882145 } ] }, { "attribute": "userAgent", "insight": [ { "value": "codedeploy.amazonaws.com", "average": 0.6 } ], "baseline": [ { "value": "codedeploy.amazonaws.com", "average": 0.0000882145 } ] }, { "attribute": "errorCode", "insight": [ { "value": "null", "average": 0.6 } ], "baseline": [ { "value": "null", "average": 0.0000882145 } ] } ] } }, "eventCategory": "Insight" }, { "eventVersion": "1.07", "eventTime": "2019-10-15T21:14:00Z", "awsRegion": "us-east-1", "eventID": "EXAMPLEc-9eac-4af6-8e07-26a5ae8786a5", "eventType": "AwsCloudTrailInsight", "recipientAccountId": "123456789012", "sharedEventID": "EXAMPLE8-02b2-4e93-9aab-08ed47ea5fd3", "insightDetails": { "state": "End", "eventSource": "autoscaling.amazonaws.com", "eventName": "CompleteLifecycleAction", "insightType": "ApiCallRateInsight", "insightContext": { "statistics": { "baseline": { "average": 0.0000882145 }, "insight": { "average": 0.6 }, "insightDuration": 5, "baselineDuration": 11336 }, "attributions": [ { "attribute": "userIdentityArn", "insight": [ { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole1", "average": 0.2 }, { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole2", "average": 0.2 }, { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole3", "average": 0.2 } ], "baseline": [ { "value": "arn:aws:sts::012345678901:assumed-role/CodeDeployRole1", "average": 0.0000882145 } ] }, { "attribute": "userAgent", "insight": [ { "value": "codedeploy.amazonaws.com", "average": 0.6 } ], "baseline": [ { "value": "codedeploy.amazonaws.com", "average": 0.0000882145 } ] }, { "attribute": "errorCode", "insight": [ { "value": "null", "average": 0.6 } ], "baseline": [ { "value": "null", "average": 0.0000882145 } ] } ] } }, "eventCategory": "Insight" } ] }

Para ver uma explicação dos campos relacionados à pesquisa nos resultados, consulte Pesquisar campos de resultados neste tópico. Para ver uma explicação sobre os eventos do Insights, consulte Conteúdo do registro do CloudTrail.

Especificar o número de eventos do Insights que devem ser retornados

Para especificar o número de eventos que devem ser retornados, digite o comando a seguir.

aws cloudtrail lookup-events --event-category insight --max-results <integer>

O valor padrão para <integer>, se ele não for especificado, será 10. Os valores possíveis são de 1 a 50. O exemplo a seguir retorna um resultado.

aws cloudtrail lookup-events --event-category insight --max-results 1

Pesquisar eventos do Insights por intervalo de tempo

Os eventos do Insights dos últimos 90 dias estão disponíveis para pesquisa. Para especificar um intervalo de tempo, digite o comando a seguir.

aws cloudtrail lookup-events --event-category insight --start-time <timestamp> --end-time <timestamp>

--start-time <timestamp> especifica, em UTC, que apenas os eventos do Insights ocorridos no horário especificado ou depois dele são retornados. Se o horário de início especificado for posterior ao de término, um erro será retornado.

--end-time <timestamp> especifica, em UTC, que apenas os eventos do Insights ocorridos no horário especificado ou antes dele são retornados. Se o horário de término especificado for anterior ao de início, um erro será retornado.

O horário de início padrão é a primeira data em que os dados foram disponibilizados nos últimos 90 dias. O horário de término padrão é o horário de ocorrência de evento mais próximo do momento.

Todos os carimbos de data/hora são exibidos em UTC.

Pesquisar eventos do Insights por atributo

Para filtrar por um atributo, digite o comando a seguir.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=<attribute>,AttributeValue=<string>

É possível especificar somente um par de chave-valor do atributo para cada comando lookup-events. Veja a seguir os valores de evento do Insights válidos para AttributeKey. Os nomes dos valores diferenciam maiúsculas de minúsculas.

  • EventId

  • EventName

  • EventSource

O tamanho máximo para AttributeValue é de 2.000 caracteres. Os seguintes caracteres ("_", " ", ",", "\\n") contam como dois caracteres até o limite de 2.000 caracteres.

Exemplos de consulta de atributo

O exemplo de comando a seguir retorna os eventos do Insights nos quais o valor de EventName é PutRule.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventName, AttributeValue=PutRule

O exemplo de comando a seguir retorna os eventos do Insights nos quais o valor de EventId é b5cc8c40-12ba-4d08-a8d9-2bceb9a3e002.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventId, AttributeValue=b5cc8c40-12ba-4d08-a8d9-2bceb9a3e002

O exemplo de comando a seguir retorna os eventos do Insights nos quais o valor de EventSource é iam.amazonaws.com.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventSource, AttributeValue=iam.amazonaws.com

Especificar a próxima página de resultados

Para obter a próxima página de resultados de um comando lookup-events, digite o comando a seguir.

aws cloudtrail lookup-events --event-category insight <same parameters as previous command> --next-token=<token>

Neste comando, o valor de <token> é obtido do primeiro campo da saída do comando anterior.

Quando você usa --next-token em um comando, precisa usar os mesmos parâmetros do comando anterior. Por exemplo, suponha que você tenha executado o comando a seguir.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventName, AttributeValue=PutRule

Para obter a próxima página de resultados, seu próximo comando pareceria com o indicado a seguir.

aws cloudtrail lookup-events --event-category insight --lookup-attributes AttributeKey=EventName,AttributeValue=PutRule --next-token=EXAMPLEZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juEXAMPLE=

Obter entrada JSON de um arquivo

A AWS CLI para alguns serviços da AWS tem dois parâmetros, --generate-cli-skeleton e --cli-input-json, que podem ser usados para gerar um modelo JSON, o qual pode ser modificado e usado como entrada para o parâmetro --cli-input-json. Esta seção descreve como usar esses parâmetros com aws cloudtrail lookup-events. Para obter mais informações, consulte Esqueletos e arquivos de entrada da AWS CLI.

Para pesquisar os eventos do Insights obtendo a entrada JSON de um arquivo
  1. Crie um modelo de entrada para uso com lookup-events redirecionando os resultados --generate-cli-skeleton para um arquivo, como no exemplo a seguir.

    aws cloudtrail lookup-events --event-category insight --generate-cli-skeleton > LookupEvents.txt

    O arquivo de modelo gerado (neste caso, LookupEvents.txt) parece com o indicado a seguir.

    { "LookupAttributes": [ { "AttributeKey": "", "AttributeValue": "" } ], "StartTime": null, "EndTime": null, "MaxResults": 0, "NextToken": "" }
  2. Use um editor de texto para modificar o JSON conforme necessário. A entrada do JSON precisa conter apenas os valores especificados.

    Importante

    Todos os valores nulos ou vazios precisam ser removidos do modelo antes que ele seja usado.

    O exemplo a seguir especifica um período e o número máximo de resultados a serem retornados.

    { "StartTime": "2023-11-01", "EndTime": "2023-12-12", "MaxResults": 10 }
  3. Para usar o arquivo editado como entrada, use a sintaxe --cli-input-json file://<filename>, como no exemplo a seguir.

    aws cloudtrail lookup-events --event-category insight --cli-input-json file://LookupEvents.txt
nota

É possível usar outros argumentos na mesma linha de comando como --cli-input-json.

Pesquisar campos de resultados

Eventos

Uma lista de eventos de pesquisa com base no atributo de pesquisa e no período que foram especificados. A lista de eventos é classificada por tempo, com o último evento listado primeiro. Cada entrada contém informações sobre a solicitação de pesquisa e inclui uma representação de string do evento do CloudTrail que foi recuperado.

As seguintes entradas descrevem os campos de cada evento de pesquisa.

CloudTrailEvent

Uma string JSON que contém uma representação do objeto do evento retornado. Para obter informações sobre cada um dos elementos retornados, consulte Conteúdo do corpo do registro.

EventId

Uma string que contém a GUID do evento retornado.

EventName

Uma string que contém o nome do evento retornado.

EventSource

O serviço AWS para o qual a solicitação foi feita.

EventTime

A data e a hora, em formato de horário do UNIX, do evento.

Recursos

Uma lista de recursos referenciados pelo evento que foi retornado. Cada entrada de recurso especifica um tipo e um nome do recurso.

ResourceName

Uma string que contém o nome do recurso referenciado pelo evento.

ResourceType

Uma string que contém o tipo de um recurso referenciado pelo evento. Quando o tipo de recurso não pode ser determinado, null é retornado.

Username

Uma string que contém o nome do usuário da conta do evento retornado.

NextToken

Uma string para obter a próxima página de resultados de um comando lookup-events anterior. Para usar o token, os parâmetros precisam ser os mesmos do comando original. Se nenhuma entrada NextToken aparecer nos resultados, significa que não há mais resultados a serem retornados.

Para obter mais informações sobre eventos do CloudTrail Insights, consulte Registrar eventos do Insights neste guia.