View a markdown version of this page

CloudTrail esempi di utilizzo AWS CLI - AWS Esempi di codice SDK

Sono disponibili altri esempi di AWS SDK nel repository AWS Doc SDK Examples. GitHub

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à.

CloudTrail esempi di utilizzo AWS CLI

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface with CloudTrail.

Le azioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

L’esempio di codice seguente mostra come utilizzare add-tags.

AWS CLI

Come aggiungere tag al trail

Il comando add-tags seguente aggiunge tag per Trail1:

aws cloudtrail add-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name,Value=Alice Key=location,Value=us
  • Per i dettagli sull'API, vedi AddTags in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare create-subscription.

AWS CLI

Per creare e configurare AWS le risorse per un percorso

Il comando create-subscription seguente crea un nuovo bucket S3 e un argomento SNS per Trail1.

aws cloudtrail create-subscription \ --name Trail1 \ --s3-new-bucket amzn-s3-demo-bucket \ --sns-new-topic my-topic

Output:

Setting up new S3 bucket amzn-s3-demo-bucket... Setting up new SNS topic my-topic... Creating/updating CloudTrail configuration... CloudTrail configuration: { "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "amzn-s3-demo-bucket", "SnsTopicName": "my-topic", "HomeRegion": "us-east-1" } ], "ResponseMetadata": { "HTTPStatusCode": 200, "RequestId": "f39e51f6-c615-11e5-85bd-d35ca21ee3e2" } } Starting CloudTrail service... Logs will be delivered to my-bucket

L’esempio di codice seguente mostra come utilizzare create-trail.

AWS CLI

Come creare un trail

L’esempio create-trail seguente crea un trail multi-Regione denominato Trail1 e specifica un bucket S3.

aws cloudtrail create-trail \ --name Trail1 \ --s3-bucket-name amzn-s3-demo-bucket \ --is-multi-region-trail

Output:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
  • Per i dettagli sull'API, vedi CreateTrail in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare delete-trail.

AWS CLI

Come eliminare un trail

Il comando delete-trail seguente elimina un trail denominato Trail1.

aws cloudtrail delete-trail --name Trail1
  • Per i dettagli sull'API, vedi DeleteTrail in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare describe-trails.

AWS CLI

Come descrivere un trail

L’esempio describe-trails seguente restituisce le impostazioni per Trail1 e Trail2.

aws cloudtrail describe-trails \ --trail-name-list Trail1 Trail2

Output:

{ "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "amzn-s3-demo-bucket", "CloudWatchLogsRoleArn": "arn:aws:iam::123456789012:role/CloudTrail_CloudWatchLogs_Role", "CloudWatchLogsLogGroupArn": "arn:aws:logs:us-east-1:123456789012:log-group:CloudTrail:*", "SnsTopicName": "my-topic", "HomeRegion": "us-east-1" }, { "IncludeGlobalServiceEvents": true, "Name": "Trail2", "S3KeyPrefix": "my-prefix", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "amzn-s3-demo-bucket2", "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c5ae5ac-3c13-421e-8335-c7868ef6a769", "HomeRegion": "us-east-1" } ] }

L’esempio di codice seguente mostra come utilizzare get-event-selectors.

AWS CLI

Come visualizzare le impostazioni del selettore di eventi per un trail

Il seguente get-event-selectors comando restituisce le impostazioni per Trail1:

aws cloudtrail get-event-selectors --trail-name Trail1

Output:

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1" }

L’esempio di codice seguente mostra come utilizzare get-trail-status.

AWS CLI

Come ottenere lo stato di un trail

Il comando get-trail-status seguente restituisce i dettagli di distribuzione e registrazione per Trail1.

aws cloudtrail get-trail-status --name Trail1

Output:

{ "LatestNotificationTime": 1454022144.869, "LatestNotificationAttemptSucceeded": "2016-01-28T23:02:24Z", "LatestDeliveryAttemptTime": "2016-01-28T23:02:24Z", "LatestDeliveryTime": 1454022144.869, "TimeLoggingStarted": "2015-11-06T18:36:38Z", "LatestDeliveryAttemptSucceeded": "2016-01-28T23:02:24Z", "IsLogging": true, "LatestCloudWatchLogsDeliveryTime": 1454022144.918, "StartLoggingTime": 1446834998.695, "StopLoggingTime": 1446834996.933, "LatestNotificationAttemptTime": "2016-01-28T23:02:24Z", "TimeLoggingStopped": "2015-11-06T18:36:36Z" }

L’esempio di codice seguente mostra come utilizzare list-public-keys.

AWS CLI

Come elencare tutte le chiavi pubbliche di un trail

Il comando list-public-keys seguente restituisce tutte le chiavi pubbliche le cui chiavi private sono state utilizzate per firmare i file digest compresi nell’intervallo di tempo specificato:

aws cloudtrail list-public-keys --start-time 2016-01-01T20:30:00.000Z

Output:

{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }

L’esempio di codice seguente mostra come utilizzare list-tags.

AWS CLI

Come elencare i tag di un trail

Il comando list-tags seguente elenca i tag per Trail1 eTrail2:

aws cloudtrail list-tags --resource-id-list arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2

Output:

{ "ResourceTagList": [ { "ResourceId": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "TagsList": [ { "Value": "Alice", "Key": "name" }, { "Value": "us", "Key": "location" } ] }, { "ResourceId": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2", "TagsList": [ { "Value": "Bob", "Key": "name" } ] } ] }
  • Per i dettagli sull'API, vedi ListTags in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare lookup-events.

AWS CLI

Come cercare gli eventi relativi a un percorso

Il comando lookup-events seguente cerca gli eventi delle attività dell’API in base all’attributo EventName:

aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=ConsoleLogin

Output:

{ "Events": [ { "EventId": "654ccbc0-ba0d-486a-9076-dbf7274677a7", "Username": "my-session-name", "EventTime": "2021-11-18T09:41:02-08:00", "CloudTrailEvent": "{\"eventVersion\":\"1.02\",\"userIdentity\":{\"type\":\"AssumedRole\",\"principalId\":\"AROAJIKPFTA72SWU4L7T4:my-session-name\",\"arn\":\"arn:aws:sts::123456789012:assumed-role/my-role/my-session-name\",\"accountId\":\"123456789012\",\"sessionContext\":{\"attributes\":{\"mfaAuthenticated\":\"false\",\"creationDate\":\"2016-01-26T21:42:12Z\"},\"sessionIssuer\":{\"type\":\"Role\",\"principalId\":\"AROAJIKPFTA72SWU4L7T4\",\"arn\":\"arn:aws:iam::123456789012:role/my-role\",\"accountId\":\"123456789012\",\"userName\":\"my-role\"}}},\"eventTime\":\"2016-01-26T21:42:12Z\",\"eventSource\":\"signin.amazonaws.com\",\"eventName\":\"ConsoleLogin\",\"awsRegion\":\"us-east-1\",\"sourceIPAddress\":\"72.21.198.70\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36\",\"requestParameters\":null,\"responseElements\":{\"ConsoleLogin\":\"Success\"},\"additionalEventData\":{\"MobileVersion\":\"No\",\"MFAUsed\":\"No\"},\"eventID\":\"654ccbc0-ba0d-486a-9076-dbf7274677a7\",\"eventType\":\"AwsConsoleSignIn\",\"recipientAccountId\":\"123456789012\"}", "EventName": "ConsoleLogin", "Resources": [] } ] }
  • Per i dettagli sull'API, vedi LookupEvents in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare put-event-selectors.

AWS CLI

Esempio 1: configura un trail per registrare eventi di gestione ed eventi di dati utilizzando i selettori di eventi avanzati

È possibile aggiungere selettori di eventi avanzati e condizioni per i selettori di eventi avanzati, fino a un massimo di 500 valori per tutte le condizioni e i selettori su un trail. È possibile utilizzare selettori di eventi avanzati per registrare tutti i tipi di eventi dati disponibili. È possibile utilizzare selettori di eventi avanzati o selettori di eventi di base, ma non entrambi. Se si applicano selettori di eventi avanzati a un percorso, tutti i selettori di eventi di base esistenti vengono sovrascritti.

L'put-event-selectorsesempio seguente crea un selettore di eventi avanzato per un percorso denominato per registrare tutti gli eventi di gestione, myTrail registrare le chiamate S3 PutObject e DeleteObject API per tutti i bucket S3 tranne uno, registrare le chiamate API dei dati per una funzione Lambda denominata e registrare le chiamate API Publish su un argomento SNS denominatomyFunction. myTopic

aws cloudtrail put-event-selectors \ --trail-name myTrail \ --advanced-event-selectors '[{"Name": "Log all management events", "FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Management"] }] },{"Name": "Log PutObject and DeleteObject events for all but one bucket","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::S3::Object"] },{ "Field": "eventName", "Equals": ["PutObject","DeleteObject"] },{ "Field": "resources.ARN", "NotStartsWith": ["arn:aws:s3:::amzn-s3-demo-bucket/"] }]},{"Name": "Log data events for a specific Lambda function","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] },{ "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-1:123456789012:function:myFunction"] }]},{"Name": "Log all Publish API calls on a specific SNS topic","FieldSelectors": [{ "Field": "eventCategory", "Equals": ["Data"] },{ "Field": "resources.type", "Equals": ["AWS::SNS::Topic"] },{ "Field": "eventName", "Equals": ["Publish"] },{ "Field": "resources.ARN", "Equals": ["arn:aws:sns:us-east-1:123456789012:myTopic.fifo"] }]}]'

Output:

{ "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/myTrail", "AdvancedEventSelectors": [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ] } ] }, { "Name": "Log PutObject and DeleteObject events for all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ] }, { "Field": "eventName", "Equals": [ "PutObject", "DeleteObject" ] }, { "Field": "resources.ARN", "NotStartsWith": [ "arn:aws:s3:::amzn-s3-demo-bucket/" ] } ] }, { "Name": "Log data events for a specific Lambda function", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:lambda:us-east-1:123456789012:function:myFunction" ] } ] }, { "Name": "Log all Publish API calls on a specific SNS topic", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::SNS::Topic" ] }, { "Field": "eventName", "Equals": [ "Publish" ] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:sns:us-east-1:123456789012:myTopic.fifo" ] } ] } ] }

Per ulteriori informazioni, consulta Registrare gli eventi utilizzando selettori di eventi avanzati nella Guida per l'utente. AWS CloudTrail

Esempio 2: configura i selettori di eventi per un trail per registrare tutti gli eventi di gestione e gli eventi relativi ai dati

Per un trail puoi configurare fino a 5 selettori di eventi e un massimo di 250 risorse di dati. I selettori di eventi vengono anche chiamati selettori di eventi di base. Puoi utilizzare i selettori di eventi per registrare eventi di gestione ed eventi di dati per oggetti S3, funzioni DynamoDB e funzioni Lambda. Per registrare eventi di dati per altri tipi di risorsa, è necessario utilizzare selettori di eventi avanzati.

L'put-event-selectorsesempio seguente crea un selettore di eventi per un percorso denominato in TrailName modo da includere tutti gli eventi di gestione, gli eventi di dati per due bucket/prefix combinazioni di Amazon S3 e gli eventi di dati per una singola funzione AWS Lambda denominata. hello-world-python-function

aws cloudtrail put-event-selectors \ --trail-name TrailName \ --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3:::amzn-s3-demo-bucket/prefix","arn:aws:s3:::amzn-s3-demo-bucket2/prefix2"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda:us-west-2:999999999999:function:hello-world-python-function"]}]}]'

Output:

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::amzn-s3-demo-bucket/prefix", "arn:aws:s3:::amzn-s3-demo-bucket2/prefix2" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda:us-west-2:123456789012:function:hello-world-python-function" ], "Type": "AWS::Lambda::Function" }, ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Per ulteriori informazioni, consulta Registra gli eventi utilizzando i selettori di eventi di base nella Guida per l'utente. AWS CloudTrail

Esempio 3: configura i selettori di eventi per un trail per registrare gli eventi di gestione, tutti gli eventi dei dati S3 sugli oggetti S3 e tutti gli eventi dei dati Lambda sulle funzioni del tuo account

L'put-event-selectorsesempio seguente crea un selettore di eventi per un percorso denominato TrailName2 che include tutti gli eventi di gestione e tutti gli eventi di dati per tutti i bucket Amazon S3 e le funzioni AWS Lambda nell'account. AWS

aws cloudtrail put-event-selectors \ --trail-name TrailName2 \ --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda"]}]}]'

Output:

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3" ], "Type": "AWS::S3::Object" }, { "Values": [ "arn:aws:lambda" ], "Type": "AWS::Lambda::Function" }, ], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2" }

Per ulteriori informazioni, consulta Registra gli eventi utilizzando i selettori di eventi di base nella Guida per l'utente. AWS CloudTrail

L’esempio di codice seguente mostra come utilizzare remove-tags.

AWS CLI

Come rimuovere i tag per un trail

Il comando remove-tags seguente rimuove i tag specificati per Trail1:

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name Key=location
  • Per i dettagli sull'API, vedi RemoveTags in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare start-logging.

AWS CLI

Come avviare la registrazione per un trail

Il comando start-logging seguente attiva la registrazione dei log per Trail1:

aws cloudtrail start-logging --name Trail1
  • Per i dettagli sull'API, vedi StartLogging in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare stop-logging.

AWS CLI

Come arrestare la registrazione di un trail

Il comando stop-logging seguente disattiva la registrazione dei log per Trail1:

aws cloudtrail stop-logging --name Trail1
  • Per i dettagli sull'API, vedi StopLogging in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare update-subscription.

AWS CLI

Come aggiornare le impostazioni di configurazione per un trail

L’esempio update-subscription seguente aggiorna il trail in modo che venga specificato un nuovo bucket S3 e un argomento SNS.

aws cloudtrail update-subscription \ --name Trail1 \ --s3-new-bucket amzn-s3-demo-bucket \ --sns-new-topic my-topic-new

Output:

Setting up new S3 bucket amzn-s3-demo-bucket... Setting up new SNS topic my-topic-new... Creating/updating CloudTrail configuration... CloudTrail configuration: { "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "amzn-s3-demo-bucket", "SnsTopicName": "my-topic-new", "HomeRegion": "us-east-1" } ], "ResponseMetadata": { "HTTPStatusCode": 200, "RequestId": "31126f8a-c616-11e5-9cc6-2fd637936879" } }

L’esempio di codice seguente mostra come utilizzare update-trail.

AWS CLI

Come aggiornare un trail

L’esempio update-trail seguente aggiorna un trail in modo che venga utilizzato un bucket esistente per la distribuzione dei log.

aws cloudtrail update-trail \ --name Trail1 \ --s3-bucket-name amzn-s3-demo-bucket

Output:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
  • Per i dettagli sull'API, vedi UpdateTrail in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare validate-logs.

AWS CLI

Come convalidare un file di log

Il seguente validate-logs comando convalida i log per Trail1:

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --start-time 20160129T19:00:00Z

Output:

Validating log files for trail arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 between 2016-01-29T19:00:00Z and 2016-01-29T22:15:43Z Results requested for 2016-01-29T19:00:00Z to 2016-01-29T22:15:43Z Results found for 2016-01-29T19:24:57Z to 2016-01-29T21:24:57Z: 3/3 digest files valid 15/15 log files valid
  • Per i dettagli sull'API, vedi ValidateLogs in AWS CLI Command Reference.