Come faccio a usare CloudTrail per cercare azioni su una risorsa specifica, ad esempio chi ha eliminato un volume EBS su un'istanza EC2?

4 minuti di lettura
0

Desidero utilizzare AWS CloudTrail per cercare informazioni con una risorsa specifica.

Risoluzione

Importante:

  • La frequenza delle richieste di ricerca è limitata a una richiesta al secondo per ciascun account. Se si supera questo limite, si verifica un errore di limitazione.
  • Verifica che la registrazione di CloudTrail sia attivata prima che si verifichi un evento. Altrimenti, non potrai cercare l'evento nell'intervallo di tempo in cui si è verificato.
  • I servizi AWS potrebbero continuare ad aggiungere eventi. CloudTrail registra gli eventi nella Cronologia eventi.
  • Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), assicurati di utilizzare la versione più recente di AWS CLI.

I seguenti esempi vengono eseguiti dall' AWS CLI. La maggior parte di questi comandi utilizza il processore JSON a riga di comando, jq. Per ulteriori informazioni su jq, consulta il sito web jq.

Per installare jq su Amazon Linux, usa yum:

yum install jq

Nota: Esistono opzioni di installazione jq per altre piattaforme. Per informazioni sulle opzioni di installazione di jq, consulta Scarica jq sul sito web di jq.

Elenca tutti i nomi degli eventi per una risorsa specifica

L'esempio seguente utilizza un ID di volume Amazon Elastic Block Store (Amazon EBS) per ottenere un elenco di eventi recenti per qualsiasi azione API. Sostituisci l'attributeValue di vol-0f59a355c2example con il tuo ID volume e us-east-1 con la tua regione.

$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=vol-0f59a355c2example --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1

Nota: CloudTrail potrebbe impiegare più tempo del previsto per compilare le chiamate recenti.

Puoi utilizzare diversi ID di risorsa, come uno snapshot EBS, per eseguire lo stesso esempio. Sostituisci l'AttributeValue di snap-0993c0d9a8example con il tuo ID snapshot e us-east-1 con la tua regione.

$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=snap-0993c0d9a8example --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1

Elenca gli eventi per un'azione API specifica per una determinata risorsa

L'esempio seguente mostra come ottenere un elenco di eventi recenti per l'azione API DeleteVolume per un volume EBS. Sostituisci l'AttributeValue di vol-0f59a355c2example con l'ID del tuo volume.

$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=vol-0f59a355c2example --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output json --region us-east-1 | jq -r '.[] | select(.event == "DeleteVolume")'

Esempio di output:

{  "username": "jdoe",
  "eventid": "e3ec4051-9999-4e87-9999-9cc72example",
  "resource": "vol-0f59a355c2example",
  "accesskey": "ASIAXUZVKEUACEXAMPLE",
  "time": 1550191014,
  "event": "DeleteVolume"
}

Elenca un nome di evento specifico per tutte le risorse

L'esempio seguente utilizza il nome dell'evento DeleteVolume come filtro per elencare i volumi EBS eliminati. Sostituisci us-east-1 con la tua Regione.

$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteVolume --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1

Elenca le istanze EC2 terminate per tutte le risorse

L'esempio seguente elenca le istanze EC2 recenti TerminateInstances. Sostituisci -region us-east-1 con la tua regione.

$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=TerminateInstances --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1

Visualizza i dettagli per un ID evento specifico

Dopo aver trovato un ID evento, puoi visualizzare i dettagli su questo evento. Sostituisci l'AttributeValue di 0840b15f-75b5-4082-a194-86e15example con il tuo ID evento e us-east-1 con la tua regione.

$ aws cloudtrail lookup-events --query "Events[0].CloudTrailEvent" --output text --lookup-attribute AttributeKey=EventId,AttributeValue=0840b15f-75b5-4082-a194-86e15example --region us-east-1 | jq -r '.'

Esempio di output:

{  "eventVersion": "1.05",
  "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROAJ3THTCWDOKEXAMPLE:jdoe",
    "arn": "arn:aws:sts::52570EXAMPLE:assumed-role/Admin/jdoe",
    "accountId": "52570example",
    "accessKeyId": "ASIAXUZVKEUAKEXAMPLE",
    "sessionContext": {
      "attributes": {
        "mfaAuthenticated": "false",
        "creationDate": "2019-02-14T23:55:15Z"
      },
      "sessionIssuer": {
        "type": "Role",
        "principalId": "AROAJ3THTCWDOKEXAMPLE",
        "arn": "arn:aws:iam::52570EXAMPLE:role/Admin",
        "accountId": "52570EXAMPLE",
        "userName": "Admin"
      }
    }
  },
  "eventTime": "2019-02-15T00:48:05Z",
  "eventSource": "ec2.amazonaws.com",
  "eventName": "DeleteVolume",
  "awsRegion": "us-east-1",
  "sourceIPAddress": "999.999.999.999",
  "userAgent": "aws-cli/1.16.999 Python/2.7.15 Darwin/17.7.0 botocore/1.12.91",
  "requestParameters": {
    "volumeId": "vol-0c50d65c6eexample"
  },
  "responseElements": {
    "_return": true
  },
  "requestID": "a8a43ccd-736d-4b09-ba75-24b9cexample",
  "eventID": "0840b15f-75b5-4082-a194-86e15example",
  "eventType": "AwsApiCall",
  "recipientAccountId": "52570EXAMPLE"
}

Specifica un intervallo di date

È possibile utilizzare i parametri --start-time e --end-time per specificare un intervallo di date di eventi:

$ aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=DeleteVolume --query 'Events[].{username:Username,time:EventTime,event:EventName,eventid:EventId,accesskey:AccessKeyId,resource:(Resources[0].ResourceName)}' --output table --region us-east-1 --start-time 2019-01-01T13:00Z --end-time 2019-03-01T14:00Z

Nota: Scegli il tuo timestamp preferito dall'elenco in Formati di timestamp validi.

Gli eventi elencati si verificano dopo l'ora di inizio e fino all'ora di fine inclusa.

L'ora di inizio predefinita è la prima data in cui i dati sono disponibili negli ultimi 90 giorni. L'ora di fine predefinita è l'ora dell'evento che si è verificato più vicino all'ora corrente. Se l'ora di inizio specificata è successiva all'ora di fine specificata, viene restituito un errore InvalidTimeRangeException.

AWS UFFICIALE
AWS UFFICIALEAggiornata 8 mesi fa