Ścieżki CloudTrail i historia zdarzeń
Tworzyć ścieżki zdarzeń zarządzania i danych, dostarczać dzienniki do S3 i CloudWatch Logs oraz przeszukiwać 90-dniową historię zdarzeń w konsoli.
Ścieżki CloudTrail i historia zdarzeń to bezpłatna lekcja Cloud & IT Cert Prep na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Cloud & IT Cert Prep, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Czym jest AWS CloudTrail?
AWS CloudTrail to usługa rejestrująca każde wywołanie API wykonane na koncie AWS — niezależnie od tego, czy pochodzi ono z konsoli, interfejsu CLI, zestawu SDK czy innej usługi AWS. Każdy taki rekord nazywa się zdarzeniem CloudTrail i zawiera operację API, tożsamość żądającego, źródłowy adres IP, parametry żądania oraz odpowiedź. CloudTrail jest podstawą audytu bezpieczeństwa, zgodności i analizy operacyjnej w AWS. Na egzaminie SAA-C03 jest właściwą odpowiedzią zawsze wtedy, gdy pytanie dotyczy tego, „kto wprowadził tę zmianę?”.
Historia zdarzeń: bezpłatny wgląd wstecz za 90 dni
Domyślnie każde konto AWS ma dostęp do CloudTrail Event History — kroczącego rejestru zdarzeń zarządzania z 90 dni, który można przeglądać w konsoli lub odpytywać za pomocą interfejsu CLI. Można filtrować go według nazwy zasobu, typu zasobu, nazwy zdarzenia lub nazwy użytkownika. Historia zdarzeń jest bezpłatna, nie wymaga konfiguracji i jest dostępna od razu. To najszybszy sposób badania niedawnych zmian, jednak w przypadku dłuższego przechowywania lub bardziej zaawansowanych zapytań należy utworzyć ścieżkę.
# Search event history for who deleted an S3 bucket in the last 7 days
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=EventName,AttributeValue=DeleteBucket \
--start-time $(date -u -d '7 days ago' +%Y-%m-%dT%H:%M:%SZ) \
--query 'Events[].{Time:EventTime,User:Username,Detail:CloudTrailEvent}' \
--output tableTworzenie ścieżki CloudTrail
Ścieżka to konfiguracja CloudTrail, która stale dostarcza zdarzenia do zasobnika S3 (opcjonalnie także do CloudWatch Logs). Opłaty obejmują przechowywanie w S3 i transfer danych. Ścieżkę można ograniczyć do jednego regionu lub skonfigurować jako ścieżkę wieloregionową, która rejestruje zdarzenia ze wszystkich obecnych i przyszłych regionów na koncie. Na egzaminie SAA-C03 należy zawsze zalecać ścieżkę wieloregionową — ścieżki ograniczone do jednego regionu pomijają aktywność w innych regionach i stanowią lukę w zabezpieczeniach.
# Create a multi-region trail delivering to S3
aws cloudtrail create-trail \
--name OrgAuditTrail \
--s3-bucket-name my-cloudtrail-logs-111122223333 \
--is-multi-region-trail \
--include-global-service-events \
--enable-log-file-validation
# Start logging (trails are created in 'paused' state)
aws cloudtrail start-logging --name OrgAuditTrailZdarzenia zarządzania a zdarzenia danych
CloudTrail rejestruje dwie kategorie zdarzeń: zdarzenia zarządzania (nazywane także zdarzeniami płaszczyzny sterowania) rejestrują operacje na zasobach — utworzenie instancji EC2, modyfikację grupy zabezpieczeń czy dołączenie zasad IAM. Są one domyślnie włączone w każdej ścieżce i nie wiążą się z dodatkową opłatą za pojedyncze zdarzenie. Zdarzenia danych rejestrują operacje na poziomie obiektów — GetObject, PutObject i DeleteObject w S3 lub Invoke w Lambda. Zdarzenia danych mogą występować w bardzo dużej liczbie i wiążą się z dodatkowymi opłatami, dlatego należy je jawnie włączyć dla poszczególnych zasobów lub typów zasobów.
# Add data event logging for all S3 objects in a specific bucket
aws cloudtrail put-event-selectors \
--trail-name OrgAuditTrail \
--event-selectors '[
{
"ReadWriteType": "All",
"IncludeManagementEvents": true,
"DataResources": [
{
"Type": "AWS::S3::Object",
"Values": ["arn:aws:s3:::my-sensitive-bucket/"]
}
]
}
]'Integracja CloudTrail z CloudWatch Logs
Dostarczanie zdarzeń CloudTrail do CloudWatch Logs umożliwia generowanie alertów w czasie rzeczywistym na podstawie aktywności API. Mogą Państwo utworzyć filtry metryk dla grupy logów CloudTrail, aby zliczać określone zdarzenia — na przykład wywołania DeleteBucket lub CreateUser — a następnie skonfigurować alarmy CloudWatch, które powiadomią zespół ds. bezpieczeństwa w ciągu kilku minut od podejrzanego działania. Jest to podstawowy wzorzec opisany w CIS AWS Foundations Benchmark, do którego egzamin SAA-C03 często nawiązuje.
# Update a trail to also deliver to CloudWatch Logs
aws cloudtrail update-trail \
--name OrgAuditTrail \
--cloud-watch-logs-log-group-arn arn:aws:logs:us-east-1:111122223333:log-group:CloudTrail/Logs:* \
--cloud-watch-logs-role-arn arn:aws:iam::111122223333:role/CloudTrailCWLogsRole
# Create a metric filter for root account login
aws logs put-metric-filter \
--log-group-name CloudTrail/Logs \
--filter-name RootLogin \
--filter-pattern '{$.userIdentity.type = "Root" && $.eventName = "ConsoleLogin"}' \
--metric-transformations metricName=RootLogins,metricNamespace=CISBenchmark,metricValue=1Zdarzenia usług globalnych
Niektóre usługi AWS — w szczególności IAM, STS, Route 53 i CloudFront — mają zasięg globalny i rejestrują wywołania API jako zdarzenia usług globalnych. Zdarzenia te są zawsze rejestrowane w regionie us-east-1, niezależnie od miejsca zainicjowania operacji. Podczas tworzenia ścieżki należy włączyć opcję --include-global-service-events, aby rejestrowane były tworzenie użytkowników IAM, zmiany zasad i przyjmowanie ról STS. Jeśli mają Państwo wiele ścieżek dotyczących poszczególnych regionów, należy włączyć zdarzenia usług globalnych tylko w jednej z nich, aby uniknąć duplikowania rekordów logów.
# Verify that global service events are enabled on a trail
aws cloudtrail get-trail \
--name OrgAuditTrail \
--query 'Trail.{MultiRegion:IsMultiRegionTrail,GlobalServiceEvents:IncludeGlobalServiceEvents}'Zasady zasobnika S3 dla logów CloudTrail
CloudTrail wymaga określonych zasad zasobnika S3, które przyznają podmiotowi usługi CloudTrail (cloudtrail.amazonaws.com) uprawnienia do wywoływania operacji GetBucketAcl i PutObject dla zasobnika. AWS wymaga, aby zasobnik nie był publicznie dostępny, a ustawienie własności obiektów miało wartość Bucket Owner Enforced. Nie należy nigdy przechowywać logów CloudTrail w tym samym zasobniku, którego używa aplikacja — tworzy to zależność cykliczną, w której dostęp do logów audytowych zostaje zakłócony, jeśli zasobnik aplikacji zostanie zablokowany.
# Minimum S3 bucket policy for CloudTrail (abbreviated)
# {
# "Version": "2012-10-17",
# "Statement": [
# {
# "Sid": "AWSCloudTrailAclCheck",
# "Effect": "Allow",
# "Principal": {"Service": "cloudtrail.amazonaws.com"},
# "Action": "s3:GetBucketAcl",
# "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333"
# },
# {
# "Sid": "AWSCloudTrailWrite",
# "Effect": "Allow",
# "Principal": {"Service": "cloudtrail.amazonaws.com"},
# "Action": "s3:PutObject",
# "Resource": "arn:aws:s3:::my-cloudtrail-logs-111122223333/AWSLogs/111122223333/*",
# "Condition": {"StringEquals": {"s3:x-amz-acl": "bucket-owner-full-control"}}
# }
# ]
# }Ścieżki organizacji
W ramach AWS Organisation można utworzyć ścieżkę organizacji z konta zarządzającego, która automatycznie obejmie wszystkie konta członkowskie — obecne i przyszłe. Konta członkowskie nie mogą modyfikować ani usuwać ścieżki organizacji, co zapewnia, że nie można ominąć zakresu audytu. Ścieżki organizacji dostarczają logi do scentralizowanego zasobnika S3 z prefiksami dla poszczególnych kont, umożliwiając zespołowi ds. bezpieczeństwa odpytywanie logów audytowych wszystkich kont w jednym miejscu za pomocą Athena lub narzędzia SIEM.
# Create an organisation trail from the management account
aws cloudtrail create-trail \
--name OrgCentralTrail \
--s3-bucket-name central-org-cloudtrail-logs \
--is-multi-region-trail \
--is-organization-trail \
--include-global-service-events \
--enable-log-file-validation
aws cloudtrail start-logging --name OrgCentralTrailIntegracja z Athena na potrzeby analizy logów
Logi CloudTrail dostarczane do S3 są zapisane w formacie JSON. Można użyć integracji Amazon Athena w konsoli CloudTrail, aby automatycznie utworzyć tabelę Glue podzieloną na partycje według konta, regionu i daty. Umożliwia to odpytywanie wielomiesięcznej historii API przy użyciu standardowego języka SQL bez ładowania danych do bazy danych. W zapytaniach należy stosować partycjonowanie według daty (WHERE year='2024' AND month='01'), aby uniknąć skanowania całej tabeli i kontrolować koszty Athena.
-- Query CloudTrail logs in Athena for IAM policy changes in January 2024
SELECT
eventtime,
useridentity.arn AS principal,
eventname,
requestparameters
FROM cloudtrail_logs_111122223333
WHERE year = '2024'
AND month = '01'
AND eventsource = 'iam.amazonaws.com'
AND eventname IN ('PutUserPolicy','AttachRolePolicy','CreateUser')
ORDER BY eventtime DESC
LIMIT 100;Przeszukiwanie historii zdarzeń a dzienniki ścieżek
Są dwa sposoby przeszukiwania rekordów CloudTrail: Event History w konsoli (ostatnie 90 dni, tylko zdarzenia zarządzania, ograniczone filtry) oraz Trail logs in S3/Athena (nieograniczony czas przechowywania, także zdarzenia danych, pełne możliwości języka SQL). W zadaniach egzaminacyjnych: jeśli pytanie dotyczy zbadania zdarzenia starszego niż 90 dni lub zapytania dotyczącego zdarzeń płaszczyzny danych (S3 GetObject, Lambda Invoke), zawsze należy zalecić przeszukanie dzienników ścieżki za pomocą Athena. Jeśli pytanie dotyczy najprostszego sposobu zbadania niedawnego zdarzenia zarządzania, wystarczy Event History.
Najważniejsze informacje o CloudTrail na egzamin
Należy zapamiętać na egzamin SAA-C03: CloudTrail nie działa w czasie rzeczywistym — dostarczenie zdarzeń do S3 może potrwać do 15 minut (do alertów zbliżonych do czasu rzeczywistego należy używać CloudWatch Logs). Event History obejmuje 90 dni i dotyczy wyłącznie zdarzeń zarządzania. Zdarzenia danych muszą być jawnie włączone i wiążą się z dodatkowymi kosztami. Walidacja plików dziennika korzysta z skrótów SHA-256 do wykrywania manipulacji. Globalne zdarzenia usług (IAM, STS, Route 53) pojawiają się tylko w us-east-1. Ścieżki organizacji nie mogą być wyłączane przez konta członkowskie.
Szybkie sprawdzenie
Sprawdź swoją znajomość zagadnień AWS Solutions Architect (SAA-C03) z tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo: Event History zapewnia bezpłatny, 90-dniowy dostęp do zdarzeń zarządzania, Trails zapewniają ciągłe dostarczanie danych do S3 z konfigurowalnym czasem przechowywania i opcjonalnymi zdarzeniami danych, a ścieżki organizacji dotyczą wszystkich kont członkowskich i nie mogą być przez nie wyłączane. Następnie omówimy CloudTrail Insights oraz weryfikację integralności plików dziennika.
Często zadawane pytania
Czy lekcja „Ścieżki CloudTrail i historia zdarzeń” jest bezpłatna?
Tak — pełny tekst „Ścieżki CloudTrail i historia zdarzeń” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Cloud & IT Cert Prep, przejdź na CoddyKit PRO. Kurs Cloud & IT Cert Prep zawiera 4 lekcji w sumie.
Co nauczysz się w „Ścieżki CloudTrail i historia zdarzeń”?
Tworzyć ścieżki zdarzeń zarządzania i danych, dostarczać dzienniki do S3 i CloudWatch Logs oraz przeszukiwać 90-dniową historię zdarzeń w konsoli. Ćwiczysz Cloud & IT Cert Prep z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Cloud & IT Cert Prep?
Nie wymagamy żadnego doświadczenia. Cloud & IT Cert Prep w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Ścieżki CloudTrail i historia zdarzeń”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Cloud & IT Cert Prep?
Tak. Każda lekcja Cloud & IT Cert Prep zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Ścieżki CloudTrail i historia zdarzeń
- CloudTrail Insights i integralność plików dziennika
- Reguły AWS Config i remediacja
- Pakiety zgodności i ścieżki organizacji