Come faccio a creare automaticamente tabelle in Amazon Athena per effettuare ricerche nei log di AWS CloudTrail?

4 minuti di lettura
0

Desidero eseguire una ricerca in un'ampia raccolta di log di AWS CloudTrail. Per evitare errori, non voglio creare manualmente tabelle Amazon Athena.

Risoluzione

Usa la console CloudTrail per creare automaticamente le tabelle Athena. Per ulteriori informazioni, consulta Ricerca di log di AWS CloudTrail con Amazon Athena.

Crea la tabella Athena

1.    Apri la console CloudTrail, quindi scegli Trail dal riquadro di navigazione. Prendi nota del nome del bucket S3.

2.    Nel riquadro di navigazione, scegli Cronologia eventi, quindi scegli Crea una tabella Athena.

3.    Nella finestra Crea una tabella in Amazon Athena, apri il menu Posizione di storage, quindi scegli il bucket Amazon Simple Storage Service (Amazon S3) con i file di log di CloudTrail.

Nota: puoi migliorare le prestazioni di ricerca per intervalli di tempo specifici in una singola regione AWS utilizzando la proiezione delle partizioni per i log di CloudTrail con Athena.

4.    Scegli Crea tabella.

5.    Scegli Vai ad Athena.

Nota: potresti visualizzare l'errore "Your account does not have sufficient permissions to create tables in Amazon Athena". In tal caso, allega la policy gestita di AmazonAthenaFullAccess seguendo le istruzioni per aggiungere le policy (console) di AWS Identity and Access Management (IAM).

Puoi utilizzare una o più delle seguenti query di esempio con i tuoi log. Sostituisci your_athena_tablename con il nome della tua tabella Athena e access_key_id con la tua chiave di accesso di 20 caratteri. La chiave di accesso di solito inizia con i caratteri AKIA o ASIA.

Esegui la query Athena

1.    Apri la console Athena, scegli Nuova query, quindi scegli la finestra di dialogo per cancellare la query di esempio.

2.    Inserisci la tua richiesta e scegli Esegui query.

Visualizza tutte le attività dell'API AWS registrate per una chiave di accesso specifica

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

Identifica eventuali modifiche al gruppo di sicurezza per l’istanza EC2

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;

Visualizza tutti gli accessi alla console nelle ultime 24 ore

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';

Visualizza eventuali tentativi di accesso alla console non riusciti nelle ultime 24 ore

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';

Identifica gli aumenti mensili dei costi di CloudTrail

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

Nota: i valori definiti da eventtime sono limitati a un solo mese. Per ottenere risultati per più mesi, esegui ulteriori query.

Identifica le autorizzazioni IAM mancanti

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

Se i risultati non mostrano la chiamata API non riuscita, amplia l'intervallo di query come segue:

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

Informazioni correlate

Querying AWS CloudTrail logs

Adding and removing IAM identity permissions

How can I troubleshoot IAM permission access denied or unauthorized errors?

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa