Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
È possibile creare manualmente tabelle per i file di CloudTrail registro nella console Athena e quindi eseguire query in Athena.
Per creare una tabella Athena per un CloudTrail percorso utilizzando la console Athena
-
Copia e incolla la seguente DDL istruzione nell'editor di query della console Athena, quindi modificala in base alle tue esigenze. Tieni presente che, poiché i file di CloudTrail registro non sono una traccia ordinata di API chiamate pubbliche, i campi nei file di registro non vengono visualizzati in un ordine specifico.
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
/';Nota
Suggeriamo di utilizzare
org.apache.hive.hcatalog.data.JsonSerDe
quanto mostrato nell'esempio. Sebbene acom.amazon.emr.hive.serde.CloudTrailSerde
esista, attualmente non gestisce alcuni dei CloudTrail campi più recenti. -
(Facoltativo) Rimuovi tutti i campi non obbligatori per la tabella. Se è necessario leggere solo un determinato set di colonne, la definizione della tabella può escludere le altre colonne.
-
Modifica
s3://amzn-s3-demo-bucket/AWSLogs/
in modo che punti al bucket Amazon S3 che contiene i dati di log che desideri interrogare. L'esempio utilizza unAccount_ID
/LOCATION
valore di log per un determinato account, ma è possibile utilizzare il grado di specificità più adatta alla tua applicazione. Ad esempio:-
Per analizzare i dati provenienti da più account, puoi eseguire il rollback dell'identificatore
LOCATION
per selezionare tutti gliAWSLogs
conLOCATION 's3://amzn-s3-demo-bucket/AWSLogs/'
. -
Per analizzare i dati provenienti da una data, account e regione specifici, utilizza
LOCATION 's3://amzn-s3-demo-bucket/123456789012/CloudTrail/us-east-1/2016/03/14/'.
-
Per analizzare i dati sulle attività di rete anziché gli eventi di gestione, sostituisci
/CloudTrail/
nellaLOCATION
clausola con./CloudTrail-NetworkActivity/
Indicando il livello più elevato nella gerarchia degli oggetti hai la massima flessibilità nelle query con Athena.
-
-
Verificare che i campi siano elencati correttamente. Per ulteriori informazioni sull'elenco completo dei campi in un CloudTrail record, vedere il contenuto del CloudTrail record.
L'
CREATE TABLE
istruzione di esempio nella Fase 1 utilizza ilalveare JSON SerDe. Nell'esempio, i campirequestparameters
responseelements
, eadditionaleventdata
sono elencati come tipoSTRING
nella query, ma sonoSTRUCT
i tipi di dati utilizzati inJSON. Pertanto, per estrarre i dati da questi campi, utilizza le funzioniJSON_EXTRACT
. Per ulteriori informazioni, consulta Estrarre JSON dati dalle stringhe. Per migliorare le prestazioni, l'esempio partiziona i dati per anno Regione AWS, mese e giorno. -
Esegui l'istruzione
CREATE TABLE
nella console Athena. -
Utilizzare il comando ALTER TABLE ADD PARTITION per caricare le partizioni in modo da poterle interrogare, come nell'esempio seguente.
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/
'