Jak eksportować logi AWS CloudTrail

Jak eksportować logi AWS CloudTrail

SOC Prime Team
SOC Prime Team linkedin icon Śledź

Aby uzyskać zarządzania zdarzeniami z ostatnich 90 dni, użyj konsoli CloudTrail (Historia zdarzeń → Pobierz zdarzenia → JSON) lub aws cloudtrail lookup-events. Dla starszych danych lub zdarzeń danych, takich jak odczyty obiektów S3, odczytaj dzienniki szlaków w S3. Znajdują się one pod adresem s3://<bucket>/AWSLogs/<account-id>/CloudTrail/<region>/YYYY/MM/DD/.

CloudTrail to dziennik audytu płaszczyzny kontrolnej AWS: każde logowanie do konsoli, każde wywołanie API, każde przejęcie roli. W przypadku incydentu w chmurze to pierwsza rzecz, o którą wszyscy proszą. Prime Core ma 262 reguły wykrywania dla CloudTrail, zmapowane na 177 technik MITRE ATT&CK. Wśród nich: nadużywanie kont w chmurze (T1078.004), atakujący wyłączający logowanie w chmurze (T1562.008) i kradzież danych z przechowywania w chmurze (T1530).

Zanim zaczniesz

Historia zdarzeń i szlaki to różne rzeczy. Historia zdarzeń jest zawsze włączona i darmowa. Przechowuje 90 dni zarządzania zdarzeniami na region. Szlak to coś, co konfigurujesz: zapisuje do S3, przechowuje dzienniki tak długo, jak chcesz, i może zawierać zdarzenia danych. Sprawdź, co masz:

aws cloudtrail describe-trails

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

IsLogging: false na szlaku, który powinien działać, to samo w sobie znalezisko.

Regiony mają znaczenie. Historia zdarzeń jest na każdy region i zdarzenia z globalnych usług jak IAM zwykle pojawiają się w us-east-1. Jeśli szukasz wezwania CreateUser w eu-west-1, nie znajdziesz go.

Uprawnienia. cloudtrail:LookupEvents dla historii zdarzeń. Dla plików szlaku, s3:ListBucket i s3:GetObject na bucket, wraz z kms:Decrypt jeśli szlak jest zaszyfrowany kluczem KMS.

Opcja 1: Pobieranie konsolowe

Otwórz CloudTrail, przejdź do Historia zdarzeń, ustaw przedział czasowy i wszelkie filtry (nazwa zdarzenia, użytkownik, zasób), a następnie wybierz Pobierz zdarzenia → JSON. Pobieranie respektuje twoje filtry, więc sprawdź je najpierw. Obejmuje tylko bieżący region.

Opcja 2: lookup-events z 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

Dwie rzeczy do wiedzenia. Po pierwsze, każdy wynik zawija rzeczywiste zdarzenie jako JSON string w CloudTrailEvent. Rozwiń to na jedno czyste zdarzenie na linię:

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

Po drugie, lookup-events ma ograniczenie szybkości na konto i region, i akceptuje tylko jeden filtr –lookup-attributes na wezwanie. Szerokie okna czasowe zajmują trochę czasu, dlatego ogranicz je tam, gdzie możesz. Aby pokryć każdy region, przeprowadź pętlę nad aws ec2 describe-regions –query 'Regions[].RegionName’ –output text.

Opcja 3: Pliki szlaku z S3

To ścieżka dla historii większej niż 90 dni i dla zdarzeń danych:

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

Każdy plik zawiera tablicę Records, a linia jq spłaszcza wszystkie do jednego zdarzenia na linię. Szlaki organizacji dodają ID organizacji do ścieżki: AWSLogs/<org-id>/<account-id>/CloudTrail/…. Jeżeli używasz CloudTrail Lake, możesz wykonać zapytania SQL na swoich zdarzeniach i zapisać wyniki zamiast tego.

Na co zwrócić uwagę

ZdarzenieDlaczego jest ważne
ConsoleLoginSprawdź additionalEventData.MFAUsed, niepowodzenia i nieznane źródłowe IP
CreateUser, CreateAccessKey, AttachUserPolicyNowe tożsamości i klucze: klasyczna trwałość i eskalacja uprawnień
StopLogging, DeleteTrail, PutEventSelectorsKtoś zmniejsza to, co widzi CloudTrail
AssumeRole z nieznanych źródełRuch boczny między rolami i kontami
Wzrosty errorCode: AccessDeniedRozpoznanie przy użyciu skradzionych poświadczeń
GetSecretValue, GetObject wzrostyDostęp do danych; GetObject pojawia się tylko, jeśli zdarzenia danych S3 są włączone

Prześlij, sanitizuj i przeglądaj w LogTotal

  1. Prześlij. Open logtotal.com i wrzuć plik .jsonl (lub .json). 
  2. Sanitizuj. [what gets masked: account IDs, ARNs, IPs, access key IDs, usernames]. Look it over before you continue.
  3. Przegląd. 

Kiedy coś idzie źle

ObjawPrawdopodobna przyczynaFix
lookup-events nie zwraca nicZły region; zdarzenia IAM zazwyczaj istnieją w us-east-1Zapytaj us-east-1, lub przeprowadź pętlę nad wszystkimi regionami
Nic starsze niż 90 dniZachowanie historii zdarzeńUżyj plików szlaków w S3
Brak zdarzeń GetObjectZdarzenia danych S3 nie są włączone na szlakuOczekiwane; włącz je na przyszłość
AccessDenied przy odczytywaniu plików szlakuBrak kms:Decrypt, lub polityka bucketNapraw IAM lub politykę bucket
ThrottlingExceptionOgraniczenie szybkości lookup-eventsMniejsze okna; niech CLI powtórzy próbę

FAQ

Czy historia zdarzeń zawiera zdarzenia danych?

Nie. Tylko zarządzania zdarzenia. Zdarzenia danych istnieją tylko, jeśli skonfigurowano szlak lub magazyn danych zdarzeń do ich rejestrowania.

Jak szybko zdarzenia się pojawiają?

Zazwyczaj w ciągu kilku minut po wywołaniu API. Pliki szlaków w S3 przychodzą partiami, więc bardzo niedawne zdarzenie może jeszcze nie być w pliku.

Dołącz do platformy Detection as Code firmy SOC Prime aby zwiększyć widoczność zagrożeń najbardziej istotnych dla Twojego biznesu. Aby pomóc Ci rozpocząć i natychmiast uzyskać wartość, umów się teraz na spotkanie z ekspertami SOC Prime.