Como Exportar Logs do AWS CloudTrail

Como Exportar Logs do AWS CloudTrail

SOC Prime Team
SOC Prime Team linkedin icon Seguir

Para os últimos 90 dias de eventos de gerenciamento, use o console do CloudTrail (Histórico de eventos → Baixar eventos → JSON) ou aws cloudtrail lookup-events. Para eventos mais antigos, ou para eventos de dados como leituras de objetos S3, leia os arquivos de log do seu trail no S3. Eles ficam em s3://<bucket>/AWSLogs/<account-id>/CloudTrail/<region>/YYYY/MM/DD/.

O CloudTrail é o log de auditoria do plano de controle do seu AWS: cada login no console, cada chamada de API, cada assunção de função. Em um incidente na nuvem, é a primeira coisa que todos pedem. Prime Core tem 262 regras de detecção para CloudTrail, mapeadas para 177 técnicas do MITRE ATT&CK. Entre elas: uso indevido de contas na nuvem (T1078.004), invasores desligando o registro em nuvem (T1562.008) e roubo de dados de armazenamento em nuvem (T1530).

Antes de começar

Histórico de eventos e trilhas são coisas diferentes. O histórico de eventos está sempre ativo e é gratuito. Ele mantém 90 dias de eventos de gerenciamento, por região. Uma trilha é algo que você configura: ela grava no S3, mantém logs pelo tempo que desejar e pode incluir eventos de dados. Verifique o que você tem:

aws cloudtrail describe-trails

aws cloudtrail get-trail-status --name <trail-name>

IsLogging: false em uma trilha que deveria estar rodando é uma constatação em si.

Regiões importam. O histórico de eventos é por região, e eventos de serviços globais como IAM geralmente caem em us-east-1. Se você está procurando por uma chamada CreateUser em eu-west-1, você não encontrará.

Permissões. cloudtrail:LookupEvents para histórico de eventos. Para arquivos de trilha, s3:ListBucket e s3:GetObject no bucket, além de kms:Decrypt se a trilha estiver criptografada com uma chave KMS.

Opção 1: Download pelo console

Abra o CloudTrail, vá para Histórico de eventos, defina o intervalo de tempo e quaisquer filtros (nome do evento, usuário, recurso), depois escolha Baixar eventos → JSON. O download respeita seus filtros, então verifique-os primeiro. Ele cobre apenas a região atual.

Opção 2: lookup-events pelo CLI

aws cloudtrail lookup-events --region us-east-1 

--start-time 2026-10-19T00:00:00Z --end-time 2026-10-20T00:00:00Z

--output json > ct_use1_1019.json

Duas coisas a saber. Primeiro, cada resultado envolve o evento real como um string em CloudTrailEvent. Desembrulhe-o em um evento limpo por linha:

jq -c '.Events[].CloudTrailEvent | fromjson' ct_use1_1019.json > ct_use1_1019.jsonl

Segundo, lookup-events é limitado por taxa por conta e região, e aceita apenas um filtro –lookup-attributes por chamada. Grandes janelas de tempo demoram um tempo, então, estreite-as quando puder. Para cobrir todas as regiões, execute iterativamente aws ec2 describe-regions –query ‘Regions[].RegionName’ –output text.

Opção 3: Arquivos de trilha do S3

Esta é a rota para histórico além de 90 dias e para eventos de dados:

aws s3 cp s3://my-trail-bucket/AWSLogs/123456789012/CloudTrail/eu-west-1/2026/10/19/ ./ct/ --recursive

gunzip ./ct/*.json.gz

jq -c '.Records[]' ./ct/*.json > ct_euw1_1019.jsonl

Cada arquivo contém um array de Records, e a linha jq achata todos eles em um evento por linha. Trilhas de organização adicionam o ID da organização ao caminho: AWSLogs/<org-id>/<account-id>/CloudTrail/…. Se você usar o CloudTrail Lake, pode executar SQL sobre seus eventos e salvar os resultados em vez disso.

O que procurar

EventoPor que importa
ConsoleLoginVerifique additionalEventData.MFAUsed, falhas e IPs de origem que você não reconhece
CreateUser, CreateAccessKey, AttachUserPolicyNovas identidades e chaves: persistência clássica e escalonamento de privilégios
StopLogging, DeleteTrail, PutEventSelectorsAlguém reduzindo o que o CloudTrail vê
AssumeRole de fontes estranhasMovimento lateral entre funções e contas
Explosões de errorCode: AccessDeniedReconhecimento com credenciais roubadas
Explosões de GetSecretValue, GetObjectAcesso a dados; GetObject aparece apenas se eventos de dados do S3 estiverem ativados

Carregue, higienize e revise no LogTotal

  1. Upload. Abra logtotal.com e carregue o arquivo .jsonl (ou arquivo .json).
  2. Higienizar. [what gets masked: account IDs, ARNs, IPs, access key IDs, usernames]. Look it over before you continue.
  3. Revisar. 

Quando dá errado

SintomaCausa provávelFix
lookup-events não retorna nadaRegião errada; eventos IAM geralmente vivem em us-east-1Consulte us-east-1 ou faça loop por todas as regiões
Nada mais antigo que 90 diasRetenção de histórico de eventosUse os arquivos de trilha no S3
Nenhum evento GetObjectEventos de dados do S3 não estão habilitados na trilhaEsperado; habilite-os para o futuro
Acesso negado ao ler arquivos de trilhakms:Decrypt ausente, ou a política do bucketCorrija o IAM ou a política do bucket
ThrottlingExceptionlimite de taxa de lookup-eventsJanelas menores; deixe o CLI tentar novamente

FAQ

O histórico de eventos inclui eventos de dados?

Não. Apenas eventos de gerenciamento. Eventos de dados existem apenas se uma trilha ou loja de dados de eventos foi configurada para registrá-los.

Com que rapidez os eventos aparecem?

Geralmente dentro de minutos após a chamada da API. Os arquivos de trilha no S3 chegam em lotes, então um evento muito recente pode ainda não estar em um arquivo.

Junte-se à plataforma Detection as Code da SOC Prime para melhorar a visibilidade das ameaças mais relevantes para o seu negócio. Para ajudá-lo a começar e gerar valor imediato, agende uma reunião agora com os especialistas da SOC Prime.