"Wer hat den Server gestoppt?" "Ich war es nicht." Wenn mehrere Personen dasselbe AWS-Konto bedienen, tut früher oder später jemand etwas, zu dem sich niemand bekennt. Die gute Nachricht: AWS schreibt alles mit. Jede Aktion, die aus der Konsole, aus einem Programm oder aus einem externen Tool ausgeführt wird, wird aufgezeichnet, mit wer, wann, von welcher Adresse und worauf. Dieses Protokoll heißt CloudTrail und ist von Haus aus aktiv, ohne dass Sie etwas getan hätten.
Nicht ganz so einfach ist es, das zu finden, was Sie suchen, denn die Namen sind technisch und werden nur 90 Tage aufbewahrt. Diese Anleitung zeigt, wie Sie suchen und den Verlauf aufbewahren.
Bevor Sie anfangen: was die Begriffe bedeuten
- CloudTrail
- Der AWS-Dienst, der jede in Ihrem Konto ausgeführte Aktion aufzeichnet: wer, was, wann, von wo und auf welche Ressource.
- Ereignis
- Jede aufgezeichnete Aktion. Hat einen technischen Namen auf Englisch (StopInstances für das Stoppen einer Maschine, DeleteObject für das Löschen einer Datei ...).
- Ereignisverlauf
- Die Ansicht in CloudTrail, in der die Ereignisse der letzten 90 Tage durchsucht werden können, ohne Konfiguration und ohne Kosten.
- Trail
- Eine Konfiguration, die die Ereignisse dauerhaft in einem eigenen S3-Bucket speichert, um sie länger als 90 Tage aufzubewahren.
- Benutzer oder Rolle
- Wer die Aktion ausgeführt hat: ein IAM-Benutzer (eine Person oder ein Programm), eine übernommene Rolle (zum Beispiel ein externes Tool) oder das Root-Konto.
- Quell-IP
- Die Internetadresse, von der aus die Aktion ausgeführt wurde. Erlaubt, das Büro von einem unbekannten Ort zu unterscheiden.
- Region
- Der Verlauf wird pro Region angezeigt; eine in Paris ausgeführte Aktion erscheint nicht, wenn Sie Irland ansehen.
Schritt für Schritt
Öffnen Sie den Ereignisverlauf
Suchen Sie in der AWS-Konsole nach CloudTrail und öffnen Sie Ereignisverlauf. Sie sehen eine Liste mit den jüngsten Aktionen: Uhrzeit, Name des Ereignisses, wer und worauf. Oben ist die Regionsauswahl: wählen Sie die Region, in der das Untersuchte passiert ist. Einige globale Aktionen (etwa von IAM) erscheinen in der Hauptregion des Kontos.
Suchen Sie nach dem, was Sie wissen
Über der Liste gibt es einen Filter mit einem Dropdown. Die nützlichsten Suchen:
- Ressourcenname: fügen Sie die Kennung der Maschine (
i-0abc...), den Namen des Buckets oder der Lightsail-Maschine ein. Es erscheint alles, was damit gemacht wurde. - Ereignisname: wenn Sie wissen, was passiert ist. Eine EC2-Maschine stoppen ist
StopInstances; in LightsailStopInstance; eine Datei aus S3 löschenDeleteObject; einen DNS-Eintrag ändernChangeResourceRecordSets; einen Snapshot löschenDeleteSnapshot. - Benutzername: um alles zu sehen, was eine bestimmte Person getan hat.
Stellen Sie den Zeitraum auf den fraglichen Tag ein, um sich nicht in der Liste zu verlieren.
- Ressourcenname: fügen Sie die Kennung der Maschine (
Lesen Sie die Details des Ereignisses
Klicken Sie auf das Ereignis. In der Detailansicht sehen Sie den genauen Benutzer (und falls es über eine Rolle ging, welche Rolle), die Quell-IP-Adresse, den Agenten (ob aus der Web-Konsole, von der Befehlszeile oder aus einem externen Tool) und im JSON-Block unten die technischen Details. Mit Uhrzeit, IP und Benutzer ist meist klar, wer es war und von wo, auch wenn es unabsichtlich geschah.
Finden Sie heraus, ob es eine Person oder ein Programm war
Ist der Benutzer jemand aus dem Team und die IP die des Büros, war es diese Person aus der Konsole. Ist der Benutzer einer, der für ein Tool angelegt wurde (ein Panel, ein Backup-System), oder eine übernommene Rolle, war es dieses Tool: sehen Sie nach, was für diese Uhrzeit geplant war. Ist der Benutzer das Root-Konto oder stammt die IP aus einem Land, in dem Sie niemanden haben, behandeln Sie es als möglichen Einbruch: ändern Sie Passwörter und Schlüssel und lesen Sie die Anleitung zum Schutz des Kontos.
Bewahren Sie den Verlauf länger als 90 Tage auf
Der Ereignisverlauf speichert nur drei Monate. Für ein Unternehmen ist das wenig: die Frage "wer hat das gelöscht" kann im nächsten Jahr kommen. In CloudTrail, Menü Trails, Trail erstellen: geben Sie ihm einen Namen, lassen Sie einen neuen S3-Bucket zum Speichern anlegen, kreuzen Sie an, dass er für alle Regionen gilt, und erstellen Sie ihn. Von da an wird jedes Ereignis als Dateien in diesem Bucket gespeichert; der erste Trail für Verwaltungsereignisse verursacht keine CloudTrail-Kosten, wohl aber die geringen Kosten für den Speicherplatz in S3.
Durchsuchen Sie das Archiv, wenn es nötig ist
Die Dateien im Bucket sind komprimiertes JSON, unbequem von Hand zu lesen. Um darin zu suchen, bietet CloudTrail Ereignisdatenspeicher mit SQL-ähnlichen Abfragen (kostenpflichtig), oder Sie laden den konkreten Tag herunter und öffnen ihn in einem Editor, in dem Sie nach der Kennung der Ressource suchen. Für die meisten reicht es zu wissen, dass die Daten da sind und sich zurückholen lassen.
Was schiefgehen kann
Ich finde das Ereignis nicht, obwohl ich weiß, dass es passiert ist
Falsche Region (oben wechseln), zu kurzer Zeitraum, oder das Ereignis hat einen anderen Namen, als Sie denken. Versuchen Sie, nur nach dem Ressourcennamen zu filtern und alles anzusehen, was damit passiert ist.
Die Ereignisse erscheinen mit Verzögerung
CloudTrail ist nicht sofort aktuell: eine Aktion kann mehrere Minuten brauchen, bis sie im Verlauf erscheint. Wenn es gerade erst passiert ist, warten Sie etwas.
Alle melden sich mit demselben Benutzer an, und ich weiß nicht, wer es war
Dann kann Ihnen das Protokoll nicht helfen. Legen Sie einen Benutzer pro Person mit zweitem Faktor an (Anleitung in diesem Abschnitt), und von da an hat jede Aktion einen Namen.
Ich sehe keine Lesezugriffe, nur Änderungen
Standardmäßig zeigt der Verlauf Verwaltungsereignisse (erstellen, ändern, löschen). Lesezugriffe auf Daten (zum Beispiel das Öffnen einer S3-Datei) werden nur aufgezeichnet, wenn Sie das in einem Trail aktivieren, und sie erzeugen viel Volumen.
In Simplio
In Simplio landet jede Aktion, die jemand aus der Anwendung ausführt (eine Maschine stoppen, eine Datei löschen, die Firewall ändern, das Terminal öffnen), im Aktivitätsprotokoll mit Benutzer, Datum, IP und Objekt, in normaler Sprache geschrieben und nach Maschine oder Person durchsuchbar. Heikle Aktionen verlangen vor der Ausführung den zweiten Faktor, also gibt es kein "ich war es nicht". Und der Monatsbericht sammelt diese Aktivität, um sie an die zuständige Stelle weiterzugeben.
Dasselbe, in AWS und in Simplio
| In der AWS-Konsole | In Simplio | |
|---|---|---|
| Wissen, wer eine Maschine gestoppt hat | CloudTrail, Region wählen, nach Ressource filtern, JSON lesen: 4 Schritte, 10 Minuten, wenn Sie den Namen des Ereignisses kennen | Aktivitätsprotokoll der Maschine: eine Zeile mit Benutzer, Datum und IP, in normaler Sprache |
| Den Verlauf aufbewahren | Einen Trail und einen S3-Bucket anlegen, den Speicher bezahlen, JSON lesen können | Das Aktivitätsprotokoll bleibt in Simplio erhalten und wird in den Monatsbericht exportiert |
| Was außerhalb des Tools getan wurde | CloudTrail hat alles, in Rohform | Was aus der AWS-Konsole getan wird, steht weiterhin in CloudTrail; Simplio protokolliert alles, was aus Simplio getan wird |