0Pricing
Cloud & IT Cert Prep · Lezione

Trail CloudTrail e cronologia degli eventi

Creare trail per eventi di gestione e dati, inviare i log a S3 e CloudWatch Logs e cercare nella cronologia degli eventi degli ultimi 90 giorni dalla console

Trail CloudTrail e cronologia degli eventi è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Che cos'è AWS CloudTrail?

AWS CloudTrail è un servizio che registra ogni chiamata API effettuata nell'account AWS, dalla console, dalla CLI, dall'SDK o da un altro servizio AWS. Ogni record è chiamato evento CloudTrail e contiene l'azione API, l'identità del richiedente, l'indirizzo IP di origine, i parametri della richiesta e la risposta. CloudTrail è alla base del controllo di sicurezza, della conformità e delle analisi operative in AWS. Per l'esame SAA-C03, è la risposta ogni volta che una domanda chiede «chi ha apportato questa modifica?».

Cronologia degli eventi: consultazione gratuita degli ultimi 90 giorni

Per impostazione predefinita, ogni account AWS ha accesso alla Cronologia degli eventi di CloudTrail, un registro mobile di 90 giorni degli eventi di gestione, consultabile nella console o tramite la CLI. È possibile filtrare per nome della risorsa, tipo di risorsa, nome dell'evento o nome utente. La Cronologia degli eventi è gratuita, non richiede configurazione ed è disponibile immediatamente. È il modo più rapido per analizzare le modifiche recenti, ma per una conservazione più lunga o query più potenti è necessario creare un Trail.

# 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 table

Creazione di un Trail CloudTrail

Un Trail è una configurazione CloudTrail che distribuisce continuamente gli eventi in un bucket S3 (e facoltativamente in CloudWatch Logs). I costi riguardano lo storage S3 e il trasferimento dei dati. Un Trail può essere limitato a una singola Regione oppure configurato come trail multi-Regione, in modo da acquisire gli eventi da tutte le Regioni presenti e future dell'account. Per l'esame SAA-C03, raccomandi sempre un trail multi-Regione: i trail a singola Regione non rilevano l'attività nelle altre Regioni e sono considerati una lacuna di sicurezza.

# 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 OrgAuditTrail

Eventi di gestione ed eventi dati

CloudTrail registra due categorie di eventi: gli eventi di gestione (chiamati anche eventi del control plane) registrano le operazioni sulle risorse, come la creazione di un'istanza EC2, la modifica di un gruppo di sicurezza o l'associazione di una policy IAM. Sono abilitati per impostazione predefinita in ogni trail, senza costi aggiuntivi per evento. Gli eventi dati registrano le operazioni a livello di oggetto, come GetObject, PutObject e DeleteObject di S3 o Invoke di Lambda. Gli eventi dati possono avere un volume molto elevato e comportano costi aggiuntivi, quindi devono essere abilitati esplicitamente per risorsa o tipo di risorsa.

# 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/"]
        }
      ]
    }
  ]'

Integrazione di CloudTrail con CloudWatch Logs

La distribuzione degli eventi CloudTrail in CloudWatch Logs consente di generare allarmi in tempo reale sull'attività delle API. È possibile creare filtri delle metriche sul gruppo di log CloudTrail per contare eventi specifici, ad esempio le chiamate DeleteBucket o CreateUser, e quindi impostare allarmi CloudWatch per avvisare il team di sicurezza entro pochi minuti da un'azione sospetta. Questo è un pattern fondamentale del CIS AWS Foundations Benchmark, frequentemente citato nell'esame SAA-C03.

# 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=1

Eventi dei servizi globali

Alcuni servizi AWS, in particolare IAM, STS, Route 53 e CloudFront, sono globali e registrano le chiamate API come eventi dei servizi globali. Questi eventi vengono sempre registrati nella Regione us-east-1, indipendentemente dal luogo in cui è stata avviata l'operazione. Quando crea un trail, abiliti --include-global-service-events per acquisire la creazione di utenti IAM, le modifiche alle policy e le assunzioni dei ruoli STS. Se dispone di più trail specifici per Regione, abiliti gli eventi dei servizi globali in uno solo, per evitare record di log duplicati.

# Verify that global service events are enabled on a trail
aws cloudtrail get-trail \
  --name OrgAuditTrail \
  --query 'Trail.{MultiRegion:IsMultiRegionTrail,GlobalServiceEvents:IncludeGlobalServiceEvents}'

Policy del bucket S3 per i log CloudTrail

CloudTrail richiede una specifica policy del bucket S3 che conceda al principale del servizio CloudTrail (cloudtrail.amazonaws.com) l'autorizzazione a chiamare GetBucketAcl e PutObject sul bucket. AWS impone che il bucket non sia accessibile pubblicamente e che la proprietà degli oggetti sia impostata su Bucket Owner Enforced. Non memorizzi mai i log CloudTrail nello stesso bucket utilizzato dall'applicazione: ciò crea una dipendenza circolare, per cui l'accesso ai log di audit viene interrotto se il bucket dell'applicazione viene bloccato.

# 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"}}
#     }
#   ]
# }

Trail dell'organizzazione

In un'AWS Organisation è possibile creare un trail dell'organizzazione dall'account di gestione, applicandolo automaticamente a tutti gli account membri, presenti e futuri. Gli account membri non possono modificare o eliminare il trail dell'organizzazione, garantendo che la copertura dell'audit non possa essere elusa. I trail dell'organizzazione distribuiscono i log in un bucket S3 centralizzato, con prefissi specifici per account, consentendo al team di sicurezza di interrogare i log di audit di tutti gli account in un unico punto utilizzando Athena o uno strumento 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 OrgCentralTrail

Integrazione con Athena per l'analisi dei log

I log CloudTrail distribuiti in S3 sono in formato JSON. È possibile utilizzare l'integrazione con Amazon Athena nella console CloudTrail per creare automaticamente una tabella Glue partizionata per account, Regione e data. Ciò consente di interrogare mesi di cronologia delle API usando SQL standard, senza caricare i dati in un database. Nelle query, effettui il partizionamento per data (WHERE year='2024' AND month='01') per evitare scansioni complete della tabella e contenere i costi di 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;

Interrogare la cronologia degli eventi o i log dei trail

Esistono due modi per cercare nei record di CloudTrail: la cronologia degli eventi nella console (ultimi 90 giorni, solo eventi di gestione, filtri limitati) e i log dei trail in S3/Athena (conservazione illimitata, anche eventi dati, piena potenza di SQL). Negli scenari d'esame: se la domanda chiede di analizzare un evento precedente a 90 giorni o di interrogare eventi del piano dati (S3 GetObject, Lambda Invoke), raccomandare sempre di interrogare i log dei trail tramite Athena. Se la domanda chiede l'approccio più semplice per analizzare un evento di gestione recente, la cronologia degli eventi è sufficiente.

Informazioni fondamentali su CloudTrail per l'esame

Memorizzi questi concetti per l'esame SAA-C03: CloudTrail non opera in tempo reale — la consegna degli eventi in S3 può richiedere fino a 15 minuti (utilizzare CloudWatch Logs per gli avvisi quasi in tempo reale). La cronologia degli eventi conserva 90 giorni di soli eventi di gestione. Gli eventi dati devono essere abilitati esplicitamente e comportano costi aggiuntivi. La convalida dei file di log utilizza hash SHA-256 per rilevare manomissioni. Gli eventi dei servizi globali (IAM, STS, Route 53) vengono visualizzati solo in us-east-1. I trail dell'organizzazione non possono essere disabilitati dagli account membri.

Verifica rapida

Verifichi la Sua comprensione dei concetti di AWS Solutions Architect (SAA-C03) trattati in questa lezione.

Riepilogo della lezione

In questa lezione ha appreso che la cronologia degli eventi offre gratuitamente l'accesso agli eventi di gestione degli ultimi 90 giorni, i trail consentono la consegna continua in S3 con conservazione configurabile ed eventi dati opzionali e i trail dell'organizzazione si applicano a tutti gli account membri e non possono essere disabilitati da questi ultimi. Prossimamente esamineremo CloudTrail Insights e la verifica dell'integrità dei file di log.

Domande Frequenti

La lezione «Trail CloudTrail e cronologia degli eventi» è gratuita?

Sì — il testo completo di «Trail CloudTrail e cronologia degli eventi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.

Cosa imparerò in «Trail CloudTrail e cronologia degli eventi»?

Creare trail per eventi di gestione e dati, inviare i log a S3 e CloudWatch Logs e cercare nella cronologia degli eventi degli ultimi 90 giorni dalla console Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?

Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Trail CloudTrail e cronologia degli eventi»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?

Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Trail CloudTrail e cronologia degli eventi
  2. CloudTrail Insights e integrità dei file di log
  3. Regole e correzione di AWS Config
  4. Conformance Pack e trail dell'organizzazione
← Torna a Cloud & IT Cert Prep