Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erstellen Sie eine Tabelle für CloudTrail Logs in Athena mit manueller Partitionierung
Sie können manuell Tabellen für CloudTrail Protokolldateien in der Athena-Konsole erstellen und dann Abfragen in Athena ausführen.
So erstellen Sie mit der Athena-Konsole eine Athena-Tabelle für einen CloudTrail Trail
-
Kopieren Sie die folgende DDL Anweisung, fügen Sie sie in den Abfrageeditor der Athena-Konsole ein und ändern Sie sie dann entsprechend Ihren Anforderungen. Beachten Sie, dass die Felder in den CloudTrail Protokolldateien nicht in einer bestimmten Reihenfolge angezeigt werden, da es sich bei den Protokolldateien nicht um einen geordneten Stack-Trace von öffentlichen API Aufrufen handelt.
CREATE EXTERNAL TABLE cloudtrail_logs ( eventversion STRING, useridentity STRUCT< type:STRING, principalid:STRING, arn:STRING, accountid:STRING, invokedby:STRING, accesskeyid:STRING, username:STRING, onbehalfof: STRUCT< userid: STRING, identitystorearn: STRING>, sessioncontext:STRUCT< attributes:STRUCT< mfaauthenticated:STRING, creationdate:STRING>, sessionissuer:STRUCT< type:STRING, principalid:STRING, arn:STRING, accountid:STRING, username:STRING>, ec2roledelivery:string, webidfederationdata: STRUCT< federatedprovider: STRING, attributes: map<string,string>> > >, eventtime STRING, eventsource STRING, eventname STRING, awsregion STRING, sourceipaddress STRING, useragent STRING, errorcode STRING, errormessage STRING, requestparameters STRING, responseelements STRING, additionaleventdata STRING, requestid STRING, eventid STRING, resources ARRAY<STRUCT< arn:STRING, accountid:STRING, type:STRING>>, eventtype STRING, apiversion STRING, readonly STRING, recipientaccountid STRING, serviceeventdetails STRING, sharedeventid STRING, vpcendpointid STRING, vpcendpointaccountid STRING, eventcategory STRING, addendum STRUCT< reason:STRING, updatedfields:STRING, originalrequestid:STRING, originaleventid:STRING>, sessioncredentialfromconsole STRING, edgedevicedetails STRING, tlsdetails STRUCT< tlsversion:STRING, ciphersuite:STRING, clientprovidedhostheader:STRING> ) PARTITIONED BY (region string, year string, month string, day string) ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' STORED AS INPUTFORMAT 'com.amazon.emr.cloudtrail.CloudTrailInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/
Account_ID
/';Anmerkung
Wir empfehlen, die im Beispiel
org.apache.hive.hcatalog.data.JsonSerDe
gezeigte Methode zu verwenden. Obwohl acom.amazon.emr.hive.serde.CloudTrailSerde
existiert, verarbeitet es derzeit einige der neueren CloudTrail Felder nicht. -
(Optional) Entfernen Sie alle für Ihre Tabelle nicht benötigten Felder. Wenn Sie nur eine bestimmte Gruppe von Spalten lesen müssen, kann Ihre Tabellendefinition die anderen Spalten ausschließen.
-
Ändern Sie
s3://amzn-s3-demo-bucket/AWSLogs/
es so, dass es auf den Amazon S3 S3-Bucket verweist, der die Protokolldaten enthält, die Sie abfragen möchten. Im Beispiel wird der WertAccount_ID
/LOCATION
für Protokolle eines bestimmten Kontos verwendet, aber Sie können den Grad an Spezifität angeben, der für Ihre Anwendung erforderlich ist. Beispiel:-
Für die Datenanalyse von mehreren Konten können Sie den Bezeichner
LOCATION
zurücksetzen und dann mitLOCATION 's3://amzn-s3-demo-bucket/AWSLogs/'
alleAWSLogs
angeben. -
Zur Analyse der Daten von einem bestimmten Datum, Konto und Region verwenden Sie
LOCATION 's3://amzn-s3-demo-bucket/123456789012/CloudTrail/us-east-1/2016/03/14/'.
-
Um Netzwerkaktivitätsdaten anstelle von Verwaltungsereignissen zu analysieren, ersetzen Sie
/CloudTrail/
dieLOCATION
Klausel durch/CloudTrail-NetworkActivity/
.
Die oberste Ebene der Objekthierarchie bietet bei Abfragen mit Athena die größte Flexibilität.
-
-
Überprüfen Sie, ob die Felder korrekt aufgeführt werden. Weitere Informationen zur vollständigen Liste der Felder in einem CloudTrail Datensatz finden Sie unter CloudTrail Datensatzinhalt.
Die
CREATE TABLE
Beispielanweisung in Schritt 1 verwendet dieBienenstock JSON SerDe. Im Beispieladditionaleventdata
sind die Felderrequestparameters
responseelements
, und als TypSTRING
in der Abfrage aufgeführt, es handelt sich jedoch um denSTRUCT
Datentyp, der in verwendet wirdJSON. Um aus diesen Feldern Daten zu extrahieren, müssen Sie daherJSON_EXTRACT
-Funktionen verwenden. Weitere Informationen finden Sie unter Extrahieren Sie JSON Daten aus Zeichenketten. Um die Leistung zu verbessern, partitioniert das Beispiel die Daten nach Jahr AWS-Region, Monat und Tag. -
Führen Sie die
CREATE TABLE
-Anweisung in der Athena-Konsole aus. -
Verwenden Sie den Befehl ALTER TABLE ADD PARTITION, um die Partitionen zu laden, sodass Sie sie abfragen können, wie im folgenden Beispiel.
ALTER TABLE
table_name
ADD PARTITION (region='us-east-1', year='2019', month='02', day='01') LOCATION 's3://amzn-s3-demo-bucket/AWSLogs/Account_ID
/CloudTrail/us-east-1/2019/02/01/
'