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ę
| Zdarzenie | Dlaczego jest ważne |
|---|---|
| ConsoleLogin | Sprawdź additionalEventData.MFAUsed, niepowodzenia i nieznane źródłowe IP |
| CreateUser, CreateAccessKey, AttachUserPolicy | Nowe tożsamości i klucze: klasyczna trwałość i eskalacja uprawnień |
| StopLogging, DeleteTrail, PutEventSelectors | Ktoś zmniejsza to, co widzi CloudTrail |
| AssumeRole z nieznanych źródeł | Ruch boczny między rolami i kontami |
| Wzrosty errorCode: AccessDenied | Rozpoznanie przy użyciu skradzionych poświadczeń |
| GetSecretValue, GetObject wzrosty | Dostęp do danych; GetObject pojawia się tylko, jeśli zdarzenia danych S3 są włączone |
Prześlij, sanitizuj i przeglądaj w LogTotal
- Prześlij. Open logtotal.com i wrzuć plik .jsonl (lub .json).
- Sanitizuj. [what gets masked: account IDs, ARNs, IPs, access key IDs, usernames]. Look it over before you continue.
- Przegląd.
Kiedy coś idzie źle
| Objaw | Prawdopodobna przyczyna | Fix |
|---|---|---|
| lookup-events nie zwraca nic | Zły region; zdarzenia IAM zazwyczaj istnieją w us-east-1 | Zapytaj us-east-1, lub przeprowadź pętlę nad wszystkimi regionami |
| Nic starsze niż 90 dni | Zachowanie historii zdarzeń | Użyj plików szlaków w S3 |
| Brak zdarzeń GetObject | Zdarzenia danych S3 nie są włączone na szlaku | Oczekiwane; włącz je na przyszłość |
| AccessDenied przy odczytywaniu plików szlaku | Brak kms:Decrypt, lub polityka bucket | Napraw IAM lub politykę bucket |
| ThrottlingException | Ograniczenie szybkości lookup-events | Mniejsze 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.