Wie erstelle ich automatisch Tabellen in Amazon Athena, um AWS-CloudTrail-Protokolle zu durchsuchen?

Lesedauer: 3 Minute
0

Ich möchte eine große Sammlung von AWS-CloudTrail-Protokollen durchsuchen. Um Fehler zu vermeiden, möchte ich Amazon-Athena-Tabellen nicht manuell erstellen.

Behebung

Verwende die CloudTrail-Konsole, um die Athena-Tabellen automatisch zu erstellen. Weitere Informationen findest du unter AWS-CloudTrail-Protokollsuche mit Amazon Athena.

Erstellen der Athena-Tabelle aus CloudTrail-Protokollen

Führe die folgenden Schritte aus:

  1. Öffne die CloudTrail-Konsole.
  2. Wähle im Navigationsbereich Trails aus und notiere dir dann den Namen des Amazon Simple Storage Service (Amazon S3)-Buckets, der die CloudTrail-Protokolle enthält.
  3. Wähle im Navigationsbereich Ereignisverlauf und dann Athena-Tabelle erstellen aus.
  4. Wähle im Fenster Erstellen einer Tabelle in Amazon Athena den S3-Bucket aus dem Menü Speicherort aus.
    Hinweis: Um deine Suche innerhalb eines bestimmten Zeitraums zu verbessern, kannst du die Partitionsprojektion für CloudTrail-Protokolle in Athena verwenden.
  5. Wähle Tabelle erstellen aus.
  6. Wähle Athena aufrufen aus.

Hinweis: Möglicherweise erhältst du die Fehlermeldung „Your account does not have sufficient permissions to create tables in Amazon Athena“. Wenn du diese Fehlermeldung erhältst, füge deiner AWS Identity and Access Management (IAM, Identitäts- und Zugriffsmanagement)-Rolle die verwaltete Richtlinie AmazonAthenaFullAccess an.

Athena-Abfragen in der CloudTrail-Protokolltabelle ausfűhren

Führe die folgenden Schritte aus:

  1. Öffne die Athena-Konsole.
  2. Wähle Nächste Anfrage aus, und lösche dann die Beispielabfrage.
  3. Gib die Abfrage ein und wähle dann Abfrage ausführen aus.

Verwendung von Beispielabfragen

Im Folgenden findest du Beispiele für Abfragen, die du ausführen kannst.

Hinweis: Ersetze in den folgenden Abfragen your_athena_tablename durch den Namen deiner Athena-Tabelle und access_key_id durch deinen 20-stelligen Zugriffsschlüssel. Der Zugriffsschlüssel beginnt normalerweise mit den Zeichen AKIA oder ASIA.

Führe die folgende Abfrage aus, um alle aufgezeichneten AWS-API-Aktivitäten für einen bestimmten Zugriffsschlüssel anzuzeigen:

SELECT eventTime, eventName, userIdentity.principalId  
  FROM your_athena_tablename   
 WHERE userIdentity.accessKeyId like 'access_key_id'

Führe die folgende Abfrage aus, um Sicherheitsgruppenänderungen an der Amazon Elastic Compute Cloud (Amazon EC2)-Instance zu ermitteln:

SELECT eventname, useridentity.username, sourceIPAddress, eventtime, requestparameters  
  FROM your_athena_tablename  
 WHERE (requestparameters LIKE '%sg-5887f224%' OR requestparameters LIKE '%sg-e214609e%' OR requestparameters LIKE '%eni-6c5ca5a8%')  
       AND eventtime > '2017-02-15T00:00:00Z'  
 ORDER BY eventtime ASC;

Führe die folgende Abfrage aus, um alle Konsolenanmeldungen der letzten 24 Stunden anzuzeigen:

SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata  
  FROM your_athena_tablename   
 WHERE eventname = 'ConsoleLogin'  
       AND eventtime >= '2017-02-17T00:00:00Z'  
       AND eventtime < '2017-02-18T00:00:00Z';

Führe die folgende Abfrage aus, um alle fehlgeschlagenen Konsolenanmeldeversuche der letzten 24 Stunden anzuzeigen:

SELECT useridentity.username, sourceipaddress, eventtime, additionaleventdata  
  FROM your_athena_tablename  
 WHERE eventname = 'ConsoleLogin'  
       AND useridentity.username = 'HIDDEN_DUE_TO_SECURITY_REASONS'  
       AND eventtime >= '2017-02-17T00:00:00Z'  
       AND eventtime < '2017-02-18T00:00:00Z';

Führe die folgende Abfrage aus, um die monatlichen CloudTrail-Kostenerhöhungen zu ermitteln:

SELECT eventName,count(eventName) AS NumberOfChanges,eventSource  
  FROM your_athena_tablename   
 WHERE eventtime >= '2019-01-01T00:00:00Z' AND eventtime < '2019-01-31T00:00:00Z'  
 GROUP BY eventName, eventSource  
 ORDER BY NumberOfChanges DESC

Hinweis: Die definierten eventtime-Werte beziehen sich auf einen einzelnen Monat. Führe zusätzliche Abfragen aus, um Ergebnisse für mehrere Monate zu erhalten.

Führe die folgende Abfrage aus, um fehlende IAM-Berechtigungen zu ermitteln:

SELECT COUNT(*) AS TotalEvents, useridentity.arn, eventsource, eventname, errorCode, errorMessage  
  FROM your_athena_tablename  
 WHERE (errorcode LIKE '%Denied%' OR errorcode LIKE '%Unauthorized%')  
   AND eventtime >= '2019-10-28T00:00:00Z'  
   AND eventtime < '2019-10-29T00:00:00Z'  
 GROUP BY eventsource, eventname, errorCode, errorMessage, useridentity.arn  
 ORDER BY eventsource, eventname

Wenn in den Ergebnissen nicht der fehlgeschlagene API-Aufruf angezeigt wird, erhöhe den Abfragebereich:

SELECT COUNT(*) as TotalEvents, useridentity.arn, eventsource, eventname, errorCode, errorMessage  
  FROM your_athena_tablename  
 WHERE errorcode <> ''  
       AND eventtime >= '2019-10-28T00:00:00Z'  
       AND eventtime < '2019-10-29T00:00:00Z'  
 GROUP BY eventsource, eventname, errorCode, errorMessage, useridentity.arn  
 ORDER BY eventsource, eventname

Ähnliche Informationen

Abfragen von AWS CloudTrail-Protokollen

Hinzufügen und Entfernen von IAM-Identitätsberechtigungen

Wie kann ich Daten erhalten, die mir bei der Behebung von IAM-Fehlern der Zugriffsverweigerung oder des unautorisierten Zugriffs helfen?