Come posso utilizzare Athena per eseguire quey sui miei log CloudTrail e individuare le chiamate API del Supporto AWS?
Desidero eseguire query su Amazon Athena per cercare nei miei log di AWS CloudTrail le chiamate API effettuate dal Supporto AWS al mio account AWS.
Breve descrizione
Per aiutarti a risolvere il problema, il Supporto AWS potrebbe raccogliere metadati sicuri di sola lettura sulle tue risorse AWS. Il Supporto AWS utilizza un ruolo collegato al servizio AWS Identity and Access Management (AWS IAM) denominato AWSServiceRoleForSupport per raccogliere i metadati.
Per informazioni sulle chiamate API effettuate dal Supporto AWS al tuo account, utilizza Athena per eseguire query sui log CloudTrail.
Risoluzione
Utilizza la proiezione delle partizioni per creare manualmente una tabella CloudTrail
Anche quando partizioni la tabella CloudTrail per ridurre il tempo di esecuzione delle query, i log CloudTrail possono aumentare di dimensioni nel tempo. Le query eseguite su una tabella altamente partizionata richiedono tempi di pianificazione lunghi e non vengono completate rapidamente.
Per ridurre i tempi di esecuzione delle query, utilizza la proiezione delle partizioni per creare manualmente una tabella CloudTrail.
Ad esempio, la seguente istruzione CREATE TABLE utilizza automaticamente la proiezione delle partizioni sui log CloudTrail entro un determinato arco di tempo in una Regione AWS:
CREATE EXTERNAL TABLE cloudtrail_logs_pp( 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, readonly STRING, resources ARRAY<STRUCT< arn: STRING, accountid: STRING, type: STRING>>, eventtype STRING, apiversion 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 ( `timestamp` 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://example-bucket/AWSLogs/account-id/CloudTrail/aws-region' TBLPROPERTIES ( 'projection.enabled'='true', 'projection.timestamp.format'='yyyy/MM/dd', 'projection.timestamp.interval'='1', 'projection.timestamp.interval.unit'='DAYS', 'projection.timestamp.range'='2020/01/01,NOW', 'projection.timestamp.type'='date', 'storage.location.template'='s3://example-bucket/AWSLogs/account-id/CloudTrail/aws-region/${timestamp}')
Nota: nelle clausole LOCATION e TBLPROPERTIES, sostituisci example-bucket con il nome del tuo bucket, account-id con l'ID del tuo account e aws-region con la tua Regione. Per projection.timestamp.range, sostituisci 2020/01/01 con la tua data di inizio.
Per eseguire la query precedente e creare una tabella dei log CloudTrail partizionata, completa i seguenti passaggi:
- Apri la console Athena.
- Seleziona Nuova query, quindi scegli la finestra di dialogo per cancellare l'esempio di query.
- Inserisci la query precedente, quindi scegli Esegui query.
Per ulteriori informazioni, consulta Crea la tabella per i log CloudTrail in Athena usando la proiezione delle partizioni.
Cerca nella tabella dei log CloudTrail le chiamate API del Supporto AWS
Di seguito sono riportati alcuni esempi di query che puoi utilizzare per cercare le chiamate del Supporto AWS nella tabella dei log CloudTrail durante un intervallo di tempo specificato. Gli esempi utilizzano dal 2025/01/01 al 2025/01/07 come intervallo di tempo specificato.
Nota: nei seguenti esempi di query, sostituisci default con il nome del database in cui hai creato la tabella cloudtrail_logs_pp.
Conta il numero di chiamate API del Supporto AWS
La seguente query conta il numero totale di chiamate API effettuate dal Supporto AWS al tuo account:
SELECT COUNT(*) FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND sourceipaddress = 'support.amazonaws.com'
Ottieni tutte le chiamate API del Supporto AWS
La seguente query mostra tutte le chiamate API effettuate dal Supporto AWS al tuo account:
SELECT * FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND sourceipaddress = 'support.amazonaws.com' LIMIT 10
Conta il numero di chiamate API del Supporto AWS per nome utente e origine dell'evento
La seguente query mostra il numero totale di chiamate API per ogni nome utente e origine di eventi che il Supporto AWS ha effettuato al tuo account:
SELECT useridentity.sessioncontext.sessionissuer.username, eventsource, COUNT(*) AS number_of_event FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND sourceipaddress = 'support.amazonaws.com' GROUP BY useridentity.sessioncontext.sessionissuer.username, eventsource ORDER BY number_of_event DESC
Ottieni gli ARN per le chiamate API effettuate dal Supporto AWS al tuo account
La seguente query mostra l'ARN per tutte le chiamate API effettuate dal Supporto AWS al tuo account:
SELECT useridentity.arn FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND regexp_like(useridentity.arn, 'AWSServiceRoleForSupport') LIMIT 10
Ottieni gli ID principali per le chiamate API che il Supporto AWS ha effettuato al tuo account
La seguente query mostra gli ID principali per tutte le chiamate API effettuate dal Supporto AWS al tuo account:
SELECT useridentity.principalid FROM "default"."cloudtrail_logs_pp" WHERE timestamp <= '2025/01/07' AND timestamp > '2025/01/01' AND regexp_like(useridentity.arn, 'AWSServiceRoleForSupport') LIMIT 10
Informazioni correlate
Aggiunta e rimozione di autorizzazioni per identità IAM
- Argomenti
- AnalyticsManagement & Governance
- Lingua
- Italiano
