Come faccio a usare AWS CloudTrail per tenere traccia delle chiamate API per le mie istanze Amazon EC2?

4 minuti di lettura
0

Voglio tenere traccia delle chiamate API che eseguono, interrompono, avviano e terminano le mie istanze Amazon Elastic Compute Cloud (Amazon EC2). Come faccio a cercare le chiamate API per le mie istanze Amazon EC2 utilizzando AWS CloudTrail?

Breve descrizione

AWS CloudTrail consente di identificare e tenere traccia di quattro tipi di chiamate API (tipi di eventi) effettuate sul tuo account AWS:

Per esaminare questi tipi di chiamate API dopo che sono state effettuate sul tuo account, puoi utilizzare uno dei seguenti metodi.

Nota: Puoi visualizzare la cronologia degli eventi per il tuo account fino agli ultimi 90 giorni.

Soluzione

Tenere traccia delle chiamate API utilizzando la cronologia degli eventi di CloudTrail

1.    Apri la console CloudTrail.

2.    Scegli Cronologia eventi.

3.    Per il filtro, seleziona Nome evento dal menu a tendina.

4.    In Inserisci nome evento, inserisci il tipo di evento che vuoi cercare. Quindi, scegli il tipo di evento.

5.    In Intervallo di tempo, inserisci l'intervallo di tempo desiderato relativo al tipo di evento di cui vuoi tenere traccia.

6.    Scegli Applica.

Per ulteriori informazioni, consulta Visualizzare gli eventi con la cronologia degli eventi di CloudTrail e Visualizzare gli eventi di Cloudtrail nella console CloudTrail.

Tenere traccia delle chiamate API utilizzando le query di Amazon Athena

Segui le istruzioni contenute in Come faccio a creare automaticamente tabelle in Amazon Athena per eseguire ricerche nei log di AWS CloudTrail?

Di seguito sono riportati esempi di query per la chiamata API RunInstances. È possibile utilizzare query simili per qualsiasi tipo di evento supportato.

Importante: Sostituisci cloudtrail-logs con il nome della tua tabella Athena prima di eseguire uno dei seguenti esempi di query.

Esempio di query per recuperare tutte le informazioni disponibili sugli eventi per la chiamata API RunInstances

SELECT *
FROM cloudtrail-logs
WHERE eventName = 'RunInstances'

Esempio di query per recuperare tutte le informazioni sugli eventi filtrate per la chiamata API RunInstances

SELECT userIdentity.username, eventTime, eventName
FROM cloudtrail-logs
WHERE eventName = 'RunInstances'

Esempio di query per recuperare le informazioni sugli eventi per le API che terminano con la stringa "Instances" da un momento specifico fino alla data corrente

Importante: Sostituisci '2021-07-01T 00:00:01 Z' con il momento da cui vuoi recuperare le informazioni sull'evento.

SELECT userIdentity.username, eventTime, eventName
FROM cloudtrail-logs
WHERE (eventName LIKE '%Instances') AND eventTime > '2021-07-01T00:00:01Z'

Tenere traccia delle chiamate API utilizzando Amazon CloudWatch Logs archiviate in Amazon Simple Storage Service (Amazon S3)

Importante: Per registrare gli eventi su un bucket Amazon S3, devi prima creare un percorso CloudWatch.

1.    Accedi ai tuoi file di registro di CloudTrail seguendo le istruzioni contenute in Ricerca dei file di registro di CloudTrail.

2.    Scarica i tuoi file di registro seguendo le istruzioni contenute in Download dei file di log di CloudTrail.

3.    Cerca nei log i tipi di eventi che desideri monitorare utilizzando jq o un altro processore a riga di comando JSON.

Esempio di procedura jq per la ricerca dei log di CloudWatch scaricati da Amazon S3 per tipi di eventi specifici

1.    Apri un terminale Bash. Quindi, crea la seguente directory per archiviare i file di log:

$ mkdir cloudtrail-logs

4.    Accedi alla nuova directory. Quindi, scarica i log di CloudTrail eseguendo il seguente comando:

Importante: Sostituisci l'esempio my_cloudtrail_bucket con il tuo bucket Amazon S3.

$ cd cloudtrail-logs

$ aws s3 cp s3://my_cloudtrail_bucket/AWSLogs/012345678901/CloudTrail/eu-west-1/2019/08/07 ./ --recursive

5.    Decomprimi i file di log eseguendo il seguente comando gzip:

Importante: Sostituisci***** con il nome del file che vuoi decomprimere.

$ gzip -d *

6.    Esegui una query jq per i tipi di eventi che vuoi cercare.

Esempio di query jq per recuperare tutte le informazioni disponibili sugli eventi per la chiamata API RunInstances

cat * | jq '.Records[] | select(.eventName=="RunInstances")'

Esempio di query jq per recuperare tutte le informazioni disponibili sugli eventi per le chiamate API StopInstances e TerminateInstances

cat * | jq '.Records[] | select(.eventName=="StopInstances" or .eventName=="TerminateInstances" )'

Informazioni correlate

Come faccio a usare CloudTrail per verificare quali chiamate e azioni API sono state eseguite nel mio account AWS?

Creare metriche da log eventi utilizzando i filtri

La console AWS Config ora mostra gli eventi API associati alle modifiche alla configurazione

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa