Resolução
Importante:
- A taxa de solicitações de pesquisa é limitada a uma solicitação por segundo para cada conta. Se você exceder esse limite, ocorrerá um erro de controle de utilização.
- Confirme se o registro em log do CloudTrail está ativado antes que um evento ocorra. Caso contrário, você não poderá pesquisar o evento durante o intervalo de tempo em que ele ocorreu.
- Os serviços da AWS podem continuar adicionando eventos. O CloudTrail registra os eventos no Histórico de eventos.
- Se você receber erros ao executar comandos da CLI da AWS, certifique-se de estar usando a versão mais recente da AWS CLI.
Os exemplos a seguir são executados a partir da AWS CLI. A maioria desses comandos usa o processador JSON de linha de comando, jq. Para obter mais informações sobre o jq, consulte o site do jq.
Para instalar o jq no Amazon Linux, use yum:
yum install jq
Observação: existem opções de instalação do jq para outras plataformas. Para obter informações sobre as opções de instalação do jq, consulte Baixar o jq no site do jq.
Relacione todos os nomes de eventos para um recurso específico
O exemplo a seguir usa um ID de volume do Amazon Elastic Block Store (Amazon EBS) para obter uma lista de eventos recentes para qualquer ação de API. Substitua o AttributeValue de vol-0f59a355c2example pelo ID do volume e us-east-1 pela sua região.
$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=vol-0f59a355c2example --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1
Observação: o CloudTrail pode levar mais tempo do que o esperado para preencher as chamadas recentes.
Você pode usar IDs de recursos diferentes, como um snapshot do EBS, para executar o mesmo exemplo. Substitua o AttributeValue de snap-0993c0d9a8example pelo ID do snapshot e us-east-1 pela sua região.
$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=snap-0993c0d9a8example --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1
Relacione eventos para uma ação de API específica para um determinado recurso
O exemplo a seguir mostra como obter uma lista de eventos recentes para a ação da API DeleteVolume para um volume do EBS. Substitua o AttributeValue de vol-0f59a355c2example pelo ID do volume.
$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=vol-0f59a355c2example --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output json --region us-east-1 | jq -r '.[] | select(.event == "DeleteVolume")'
Exemplo de saída:
{ "username": "jdoe",
"eventid": "e3ec4051-9999-4e87-9999-9cc72example",
"resource": "vol-0f59a355c2example",
"accesskey": "ASIAXUZVKEUACEXAMPLE",
"time": 1550191014,
"event": "DeleteVolume"
}
Relacione um nome de evento específico para todos os recursos
O exemplo a seguir usa o nome do evento DeleteVolume como filtro para listar volumes do EBS excluídos. Substitua us-east-1 pela sua região.
$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteVolume --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1
Relacione instâncias EC2 encerradas para todos os recursos
O exemplo a seguir lista as TerminateInstances recentes do EC2. Substitua -region us-east-1 pela sua região.
$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=TerminateInstances --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1
Visualize detalhes de um ID de evento específico
Depois de encontrar um ID de evento, você pode visualizar os detalhes desse evento. Substitua o AttributeValue de 0840b15f-75b5-4082-a194-86e15example pelo ID do evento e us-east-1 pela sua região.
$ aws cloudtrail lookup-events --query "Events[0].CloudTrailEvent" --output text --lookup-attribute AttributeKey=EventId,AttributeValue=0840b15f-75b5-4082-a194-86e15example --region us-east-1 | jq -r '.'
Exemplo de saída:
{ "eventVersion": "1.05",
"userIdentity": {
"type": "AssumedRole",
"principalId": "AROAJ3THTCWDOKEXAMPLE:jdoe",
"arn": "arn:aws:sts::52570EXAMPLE:assumed-role/Admin/jdoe",
"accountId": "52570example",
"accessKeyId": "ASIAXUZVKEUAKEXAMPLE",
"sessionContext": {
"attributes": {
"mfaAuthenticated": "false",
"creationDate": "2019-02-14T23:55:15Z"
},
"sessionIssuer": {
"type": "Role",
"principalId": "AROAJ3THTCWDOKEXAMPLE",
"arn": "arn:aws:iam::52570EXAMPLE:role/Admin",
"accountId": "52570EXAMPLE",
"userName": "Admin"
}
}
},
"eventTime": "2019-02-15T00:48:05Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "DeleteVolume",
"awsRegion": "us-east-1",
"sourceIPAddress": "999.999.999.999",
"userAgent": "aws-cli/1.16.999 Python/2.7.15 Darwin/17.7.0 botocore/1.12.91",
"requestParameters": {
"volumeId": "vol-0c50d65c6eexample"
},
"responseElements": {
"_return": true
},
"requestID": "a8a43ccd-736d-4b09-ba75-24b9cexample",
"eventID": "0840b15f-75b5-4082-a194-86e15example",
"eventType": "AwsApiCall",
"recipientAccountId": "52570EXAMPLE"
}
Especifique um intervalo de datas
Para especificar um intervalo de data de eventos, use os parâmetros --start-time e --end-time:
$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteVolume --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1 --start-time 2019-01-01T13:00Z --end-time 2019-03-01T14:00Z
Observação: escolha seu carimbo de data e hora preferido na lista em Formatos de carimbo de data e hora válidos.
Os eventos listados ocorrem depois da hora de início e vão até, incluindo, a hora de término.
A hora de início padrão é a primeira data em que os dados estão disponíveis nos últimos 90 dias. A hora de término padrão é a hora do evento que ocorreu mais próxima da hora atual. Se a hora de início especificada for posterior à hora de término especificada, um erro InvalidTimeRangeException será retornado.