"Chi ha fermato il server?" "Io no." Quando più persone toccano lo stesso account AWS, prima o poi qualcuno fa qualcosa che nessuno riconosce. La buona notizia è che AWS annota tutto: ogni azione fatta dalla console, da un programma o da uno strumento esterno viene registrata con chi, quando, da quale indirizzo e su cosa. Quel registro si chiama CloudTrail ed è attivo di serie, senza che tu abbia fatto nulla.
Quello che non è così semplice è trovare ciò che cerchi, perché i nomi sono tecnici e si conservano solo 90 giorni. Questa guida insegna a cercare e a conservare la cronologia.
Prima di iniziare: cosa significa ogni cosa
- CloudTrail
- Il servizio di AWS che registra ogni azione compiuta nel tuo account: chi, cosa, quando, da dove e su quale risorsa.
- Evento
- Ogni azione registrata. Ha un nome tecnico in inglese (StopInstances per fermare una macchina, DeleteObject per cancellare un file...).
- Cronologia degli eventi
- La schermata di CloudTrail dove si possono cercare gli eventi degli ultimi 90 giorni senza configurare nulla e senza costi.
- Percorso (trail)
- Una configurazione che salva gli eventi per sempre in un bucket S3 tuo, per conservarli oltre i 90 giorni.
- Utente o ruolo
- Chi ha fatto l'azione: un utente IAM (una persona o un programma), un ruolo assunto (per esempio, uno strumento esterno) o l'account root.
- IP di origine
- L'indirizzo internet da cui è stata fatta l'azione. Permette di distinguere l'ufficio da un posto sconosciuto.
- Regione
- La cronologia si mostra per regione; un'azione fatta a Parigi non compare se stai guardando l'Irlanda.
Passo dopo passo
Apri la cronologia degli eventi
Nella console di AWS cerca CloudTrail ed entra in Cronologia degli eventi. Vedrai un elenco con le azioni più recenti: ora, nome dell'evento, chi e su cosa. In alto c'è il selettore di regione: scegli la regione dove è successo ciò che stai indagando. Alcune azioni globali (di IAM, per esempio) compaiono nella regione principale dell'account.
Cerca in base a quello che sai
Sopra l'elenco c'è un filtro con un menu a tendina. Le ricerche più utili:
- Nome della risorsa: incolla l'identificatore della macchina (
i-0abc...), il nome del bucket o della macchina Lightsail. Compare tutto ciò che le è stato fatto. - Nome dell'evento: se sai cosa è successo. Fermare una macchina EC2 è
StopInstances; in Lightsail,StopInstance; cancellare un file da S3,DeleteObject; cambiare un record DNS,ChangeResourceRecordSets; cancellare un'istantanea,DeleteSnapshot. - Nome utente: per vedere tutto quello che ha fatto una persona precisa.
Regola l'intervallo di date sul giorno in questione per non perderti nell'elenco.
- Nome della risorsa: incolla l'identificatore della macchina (
Leggi il dettaglio dell'evento
Clicca sull'evento. Nella scheda vedrai l'utente esatto (e se è stato tramite un ruolo, quale ruolo), l'indirizzo IP di origine, l'agente (se dalla console web, dalla riga di comando o da uno strumento esterno) e, nel blocco JSON in basso, i dettagli tecnici. Con l'ora, l'IP e l'utente di solito è chiaro chi è stato e da dove, anche se senza volerlo.
Scopri se è stata una persona o un programma
Se l'utente è qualcuno del team e l'IP è quello dell'ufficio, è stata quella persona dalla console. Se l'utente è uno creato per uno strumento (un pannello, un sistema di backup) o un ruolo assunto, è stato quello strumento: guarda cosa era programmato per quell'ora. Se l'utente è l'account root o l'IP è di un paese dove non hai nessuno, trattalo come una possibile intrusione: cambia password e chiavi e rileggi la guida su come proteggere l'account.
Conserva la cronologia oltre i 90 giorni
La cronologia degli eventi conserva solo tre mesi. Per un'azienda è poco: la domanda "chi ha cancellato questo" può arrivare l'anno dopo. In CloudTrail, menu Percorsi, Crea percorso: dagli un nome, lascia che crei un nuovo bucket S3 per salvarlo, spunta che si applichi a tutte le regioni e crea. Da quel momento ogni evento viene salvato come file in quel bucket; il primo percorso di eventi di gestione non ha costi di CloudTrail, anche se c'è il piccolo costo dello spazio su S3.
Cerca nello storico quando serve
I file del bucket sono JSON compressi, scomodi da leggere a mano. Per cercarci dentro, CloudTrail offre gli archivi di dati degli eventi con query in stile SQL (a pagamento), oppure puoi scaricare il giorno preciso e aprirlo con un editor cercando l'identificatore della risorsa. Per la maggior parte delle persone, basta sapere che sono lì e poterli recuperare.
Cosa può andare storto
Non trovo l'evento anche se so che è successo
Regione sbagliata (cambiala in alto), intervallo di date troppo corto, oppure l'evento ha un nome diverso da quello che pensi. Prova a filtrare solo per il nome della risorsa e guarda tutto ciò che le è successo.
Gli eventi ci mettono a comparire
CloudTrail non è istantaneo: un'azione può metterci diversi minuti a uscire nella cronologia. Se è appena successo, aspetta un po'.
Entrano tutti con lo stesso utente e non so chi è stato
Allora il registro non può aiutarti. Crea un utente per persona con doppio fattore (guida in questa sezione) e, da lì in poi, ogni azione avrà nome e cognome.
Non vedo le letture, solo le modifiche
Di default la cronologia mostra gli eventi di gestione (creare, modificare, cancellare). Le letture di dati (aprire un file di S3, per esempio) vengono registrate solo se le attivi in un percorso, e generano molto volume.
In Simplio
In Simplio ogni azione che qualcuno fa dall'applicazione (fermare una macchina, cancellare un file, cambiare il firewall, aprire il terminale) resta nel registro delle attività con utente, data, IP e oggetto, scritto in linguaggio normale e ricercabile per macchina o per persona. Le azioni delicate chiedono il doppio fattore prima di essere eseguite, quindi non esiste "io no". E il report mensile raccoglie quell'attività per consegnarla a chi di dovere.
La stessa cosa, in AWS e in Simplio
| Nella console di AWS | In Simplio | |
|---|---|---|
| Sapere chi ha fermato una macchina | CloudTrail, scegliere la regione, filtrare per risorsa, leggere il JSON: 4 passi, 10 minuti, se conosci il nome dell'evento | Registro delle attività della macchina: una riga con utente, data e IP, in linguaggio normale |
| Conservare la cronologia | Creare un percorso e un bucket S3, pagare lo storage, saper leggere il JSON | Il registro delle attività si conserva in Simplio e si esporta nel report mensile |
| Quello che è stato fatto fuori dallo strumento | CloudTrail ha tutto, grezzo | Quello che si fa dalla console di AWS resta in CloudTrail; Simplio registra tutto ciò che viene fatto da Simplio |