Gestione dei percorsi con la AWS CLI - AWS CloudTrail

Gestione dei percorsi con la AWS CLI

La AWS CLI include diversi altri comandi che consentono di gestire i trail. Questi comandi aggiungere i tag ai trail, ne ottengono lo stato, ne avviano e ne arrestano la registrazione e li eliminano. È necessario eseguire questi comandi dalla stessa regione AWS in cui il trail è stato creato (Home Region). Quando utilizzi l'AWS CLI, ricordare che i comandi vengono eseguiti nella regione AWS configurata per il tuo profilo. Per eseguire i comandi in un'altra regione, modificare la regione predefinita per il profilo oppure utilizzare il parametro --region con il comando.

Aggiungere uno o più tag a un trail

Per aggiungere uno o più tag a un percorso esistente, esegui il comando add-tags.

L'esempio seguente aggiunge un tag con il nome Owner (Proprietario) e il valore Mary a un percorso con l'ARN arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail nella regione Stati Uniti orientali (Ohio).

aws cloudtrail add-tags --resource-id arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail --tags-list Key=Owner,Value=Mary --region us-east-2

In caso di successo, questo comando non restituisce alcun risultato.

Elencare i tag per uno o più trail

Per visualizzare i tag associati a uno o più trail esistenti, utilizzare il comando list-tags.

L'esempio seguente elenca i tag per Trail1 e Trail2.

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

Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente.

{ "ResourceTagList": [ { "ResourceId": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1", "TagsList": [ { "Value": "Alice", "Key": "Name" }, { "Value": "Ohio", "Key": "Location" } ] }, { "ResourceId": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail2", "TagsList": [ { "Value": "Bob", "Key": "Name" } ] } ] }

Rimuovere uno o più tag da un trail

Per rimuovere uno o più tag da un percorso esistente, esegui il comando remove-tags.

L'esempio seguente rimuove i tag con i nomi Location (Posizione) e Name (Nome) da un percorso con l'ARN arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1 nella regione Stati Uniti orientali (Ohio).

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1 --tags-list Key=Name Key=Location --region us-east-2

In caso di successo, questo comando non restituisce alcun risultato.

Recupero delle impostazioni e dello stato di un trail

Esegui il comando describe-trails per recuperare le informazioni sui percorsi all'interno di una regione AWS. L'esempio seguente restituisce informazioni sui percorsi configurati nella regione Stati Uniti orientali (Ohio).

aws cloudtrail describe-trails --region us-east-2

Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente.

{ "trailList": [ { "Name": "my-trail", "S3BucketName": "my-bucket", "S3KeyPrefix": "my-prefix", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "us-east-2" "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": false, "SnsTopicName": "my-topic", "IsOrganizationTrail": false, }, { "Name": "my-special-trail", "S3BucketName": "another-bucket", "S3KeyPrefix": "example-prefix", "IncludeGlobalServiceEvents": false, "IsMultiRegionTrail": false, "HomeRegion": "us-east-2", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-special-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": true, "IsOrganizationTrail": false }, { "Name": "my-org-trail", "S3BucketName": "my-bucket", "S3KeyPrefix": "my-prefix", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "us-east-1" "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-org-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": false, "SnsTopicName": "my-topic", "IsOrganizationTrail": true } ] }

Esegui il comando get-trail per recuperare le informazioni sulle impostazioni relative a un percorso specifico. L'esempio seguente restituisce le informazioni sulle impostazioni per un trail denominato my-trail.

aws cloudtrail get-trail - -name my-trail

Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente.

{ "Trail": { "Name": "my-trail", "S3BucketName": "my-bucket", "S3KeyPrefix": "my-prefix", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "us-east-2" "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": false, "SnsTopicName": "my-topic", "IsOrganizationTrail": false, } }

Esegui il comando get-trail-status per recuperare lo stato di un trail. Devi eseguire questo comando dalla regione AWS in cui è stato creato (la Regione di origine) oppure devi specificare la regione aggiungendo il parametro --region.

Nota

Se il trail è un'organizzazione trail e sei un account membro dell'organizzazione in AWS Organizations, devi fornire l'ARN completo del trail, non solo il nome.

aws cloudtrail get-trail-status --name my-trail

Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente.

{ "LatestDeliveryTime": 1441139757.497, "LatestDeliveryAttemptTime": "2015-09-01T20:35:57Z", "LatestNotificationAttemptSucceeded": "2015-09-01T20:35:57Z", "LatestDeliveryAttemptSucceeded": "2015-09-01T20:35:57Z", "IsLogging": true, "TimeLoggingStarted": "2015-09-01T00:54:02Z", "StartLoggingTime": 1441068842.76, "LatestDigestDeliveryTime": 1441140723.629, "LatestNotificationAttemptTime": "2015-09-01T20:35:57Z", "TimeLoggingStopped": "" }

Oltre ai campi visualizzati nel precedente codice JSON, lo stato contiene i seguenti campi se sono presenti errori di Amazon SNS o Amazon S3:

  • LatestNotificationError. Contiene l'errore generato da Amazon SNS se una sottoscrizione a un argomento ha esito negativo.

  • LatestDeliveryError. Contiene l'errore generato da Amazon S3 se CloudTrail non è in grado di distribuire un file di log a un bucket.

Configurazione dei selettori di eventi di CloudTrail Insights

Abilita gli eventi Insights su un trail eseguendo il comando put-insight-selectors e specificando ApiCallRateInsight, ApiErrorRateInsight o entrambi come valore dell'attributo InsightType. Per visualizzare le impostazioni dei selettori di eventi Insights per un trail, esegui il comando get-insight-selectors. È necessario eseguire questo comando dalla regione AWS in cui è stato creato (Home Region) oppure è necessario specificare la regione aggiungendo al comando il parametro --region.

Percorso di esempio che registra gli eventi Insights

Nell'esempio seguente viene utilizzato il comando put-insight-selectors per creare un selettore di eventi Insights per un trail denominato TrailName3. Ciò consente la raccolta di eventi Insights per il trail TrailName3 . Il selettore eventi Insights registra entrambi i tipi di eventi Insights ApiErrorRateInsight e ApiCallRateInsight.

aws cloudtrail put-insight-selectors --trail-name TrailName3 --insight-selectors '[{"InsightType": "ApiCallRateInsight"},{"InsightType": "ApiErrorRateInsight"}]'

L'esempio restituisce il selettore di eventi Insights configurato per il trail.

{ "InsightSelectors": [ { "InsightType": "ApiErrorRateInsight" }, { "InsightType": "ApiCallRateInsight" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName3" }

Esempio: disattivazione della raccolta di eventi Insights

Nell'esempio seguente viene utilizzato il comando put-insight-selectors per rimuovere il selettore di eventi Insights per un trail denominato TrailName3. La cancellazione della stringa JSON dei selettori Insights disabilita la raccolta eventi Insights per il trail TrailName3 .

aws cloudtrail put-insight-selectors --trail-name TrailName3 --insight-selectors '[]'

Nell'esempio viene restituito il selettore, ora vuoto, di eventi Insights configurato per il trail.

{ "InsightSelectors": [ ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName3" }

Configurazione di selettori di eventi

Per visualizzare le impostazioni dei selettori di eventi per un trail, esegui il comando get-event-selectors. È necessario eseguire questo comando dalla regione AWS in cui è stato creato (Home Region) oppure è necessario specificare che la regione utilizzando il parametro --region.

aws cloudtrail get-event-selectors --trail-name TrailName
Nota

Se il trail è un'organizzazione trail e sei un account membro dell'organizzazione in AWS Organizations, devi fornire l'ARN completo del trail, non solo il nome.

L'esempio seguente restituisce le impostazioni di default per un selettore di eventi per un trail.

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

Per creare un selettore di eventi, esegui il comando put-event-selectors. Quando si verifica un evento nel tuo account, CloudTrail valuta la configurazione del percorso. Se l'evento corrisponde a un qualsiasi selettore di eventi di un trail, il trail elabora e registra l'evento. Per un trail puoi configurare fino a 5 selettori di eventi e un massimo di 250 risorse di dati. Per ulteriori informazioni, consulta Registrazione di eventi di dati per i percorsi.

Percorso di esempio con selettori di eventi specifici

L'esempio seguente crea un selettore di eventi per un percorso denominato TrailName, per includere eventi di gestione di sola lettura e di sola scrittura, eventi di dati per due combinazioni di bucket /prefisso Amazon S3 ed eventi di dati per una singola funzione di 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:::mybucket/prefix","arn:aws:s3:::mybucket2/prefix2"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda:us-west-2:999999999999:function:hello-world-python-function"]}]}]'

L'esempio restituisce il selettore di eventi configurato per il trail.

{ "EventSelectors": [ { "ExcludeManagementEventSources": [], "IncludeManagementEvents": true, "DataResources": [ { "Values": [ "arn:aws:s3:::mybucket/prefix", "arn:aws:s3:::mybucket2/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" }

Percorso di esempio che registra tutti gli eventi di gestione e di dati

L'esempio seguente crea un selettore di eventi per un percorso denominato TrailName2 che include tutti gli eventi, inclusi gli eventi di gestione di sola lettura e di sola scrittura e tutti gli eventi di dati per tutti i bucket Amazon S3, le funzioni AWS Lambda e le tabelle Amazon DynamoDB nell'account AWS. Poiché questo esempio utilizza selettori di eventi di base, non può configurare la registrazione per gli eventi S3 su AWS Outposts o chiamate JSON-RPC di Blockchain gestita da Amazon su nodi Ethereum o altri tipi di risorse di selettori di eventi avanzati. Devi utilizzare selettori di eventi avanzati per registrare gli eventi di dati per tali risorse. Per ulteriori informazioni, consulta Configurazione di selettori di eventi avanzati.

Nota

Se il percorso è valido solo per una regione, vengono registrati solo gli eventi in tale regione, anche se i parametri del selettore di eventi specificano tutti i bucket Amazon S3 e le funzioni Lambda. I selettori di eventi sono validi per le regioni in cui il trail è stato creato.

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"]},{"Type": "AWS::DynamoDB::Table","Values": ["arn:aws:dynamodb"]}]}]'

L'esempio restituisce i selettori di eventi configurati per il trail.

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

Percorso di esempio che non registra gli eventi AWS Key Management Service

Nell'esempio seguente viene creato un selettore di eventi per un trail denominato TrailName per includere eventi di gestione di sola lettura e di sola scrittura, ma per escludere eventi AWS Key Management Service (AWS KMS). Poiché gli eventi AWS KMS vengono considerati eventi di gestione e possono essere in un volume elevato, possono influire in modo sostanziale sul costo di CloudTrail se hai più percorsi che acquisiscono gli eventi di gestione. L'utente in questo esempio ha scelto di escludere gli eventi AWS KMS da tutti i trail tranne uno. Per escludere un'origine evento, aggiungere ExcludeManagementEventSources ai selettori di eventi e specificare un'origine evento nel valore stringa.

Se scegli di non registrare gli eventi di gestione, gli eventi AWS KMS non vengono registrati e non puoi modificare le impostazioni di registrazione degli eventi AWS KMS.

Per avviare di nuovo la registrazione degli eventi AWS KMS in un percorso, invia un array vuoto come valore di ExcludeManagementEventSources.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": ["kms.amazonaws.com"],"IncludeManagementEvents": true]}]'

Nell'esempio viene restituito il selettore di eventi configurato per il trail.

{ "EventSelectors": [ { "ExcludeManagementEventSources": [ "kms.amazonaws.com" ], "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Per avviare nuovamente la registrazione di eventi AWS KMS a un percorso, invia un array vuoto come valore di ExcludeManagementEventSources, come mostrato nel seguente comando.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": [],"IncludeManagementEvents": true]}]'

Percorso di esempio che registra eventi AWS Key Management Service rilevanti a basso volume

Nell'esempio seguente viene creato un selettore di eventi per un trail denominato TrailName per includere eventi di gestione di sola scrittura ed eventi AWS KMS. Poiché gli eventi AWS KMS vengono considerati eventi di gestione e possono essere in un volume elevato, possono influire in modo sostanziale sul costo di CloudTrail se hai più percorsi che acquisiscono gli eventi di gestione. L'utente in questo esempio ha scelto di includere eventi AWS KMS Write (Scrittura), che includeranno Disable, Delete e ScheduleKey, ma di non includere più operazioni ad alto volume come Encrypt, Decrypt e GenerateDataKey, che ora sono trattate come eventi Read (Lettura).

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "WriteOnly","ExcludeManagementEventSources": [],"IncludeManagementEvents": true]}]'

Nell'esempio viene restituito il selettore di eventi configurato per il trail. Questo registra gli eventi di gestione di sola scrittura, inclusi gli eventi AWS KMS.

{ "EventSelectors": [ { "ExcludeManagementEventSources": [], "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "WriteOnly" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Percorso di esempio che non registra gli eventi dell'API dati di Amazon RDS

Nell'esempio seguente viene creato un selettore di eventi per un percorso denominato TrailName per includere eventi di gestione di sola lettura e di sola scrittura, ma escludere eventi dell'API dati di Amazon RDS. Poiché gli eventi dell'API dati di Amazon RDS vengono considerati eventi di gestione e possono essere in un volume elevato, possono influire in modo sostanziale sul costo di CloudTrail se hai più percorsi che acquisiscono gli eventi di gestione. L'utente in questo esempio ha scelto di escludere gli eventi dell'API dati di Amazon RDS da tutti i percorsi, tranne uno. Per escludere un'origine eventi, aggiungi ExcludeManagementEventSources ai selettori di eventi e specifica l'origine eventi dell'API dati di Amazon RDS nel valore della stringa: rdsdata.amazonaws.com.

Se scegli di non registrare gli eventi di gestione, gli eventi dell'API dati di Amazon RDS non vengono registrati e non puoi modificare le impostazioni di registrazione degli eventi.

Per avviare nuovamente la registrazione di eventi dell'API dati di Amazon RDS in un percorso, passa un array vuoto come valore di ExcludeManagementEventSources.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": ["rdsdata.amazonaws.com"],"IncludeManagementEvents": true]}]'

Nell'esempio viene restituito il selettore di eventi configurato per il trail.

{ "EventSelectors": [ { "ExcludeManagementEventSources": [ "rdsdata.amazonaws.com" ], "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Per avviare nuovamente la registrazione di eventi dell'API dati di Amazon RDS in un percorso, invia un array vuoto come valore di ExcludeManagementEventSources, come mostrato nel seguente comando.

aws cloudtrail put-event-selectors --trail-name TrailName --event-selectors '[{"ReadWriteType": "All","ExcludeManagementEventSources": [],"IncludeManagementEvents": true]}]'

Configurazione di selettori di eventi avanzati

Per utilizzare selettori di eventi avanzati per includere o escludere eventi di dati, anziché selettori di eventi di base, utilizza selettori di eventi avanzati nella pagina dei dettagli di un percorso. I selettori di eventi avanzati consentono di registrare gli eventi di dati su più tipi di risorse rispetto ai selettori di eventi di base. I selettori di base registrano l'attività dell'oggetto S3, l'attività di esecuzione della funzione AWS Lambda e le tabelle DynamoDB.

In Advanced event selectors (Selettori di eventi avanzati), crea un'espressione per raccogliere gli eventi di dati su bucket S3 specifici, funzioni AWS Lambda, chiamate PutAuditEvents su canali CloudTrail Lake, tabelle DynamoDB, Amazon S3 su Outposts, chiamate JSON-RPC di Blockchain gestita da Amazon su nodi Ethereum, punti di accesso di Lambda S3 Object, API dirette di Amazon EBS su snapshot EBS, punti di accesso S3, flussi DynamoDB, tabelle AWS Glue create da Lake Formation, ambienti Amazon FinSpace, componenti di prova degli esperimenti dei parametri Amazon SageMaker e Amazon SageMaker Feature Store.

Per ulteriori informazioni sui selettori di eventi avanzati, consulta Configurazione di selettori di eventi avanzati.

Per visualizzare le impostazioni dei selettori di eventi avanzati per un percorso, esegui il comando get-event-selectors. Devi eseguire questo comando dalla regione AWS in cui è stato creato il percorso (la Regione di origine) oppure devi specificare la regione aggiungendo il parametro --region.

aws cloudtrail get-event-selectors --trail-name TrailName
Nota

Se il percorso è un percorso di organizzazione e hai effettuato l'accesso con un account membro dell'organizzazione in AWS Organizations, devi fornire l'ARN completo del percorso, non solo il nome.

L'esempio seguente restituisce le impostazioni di default per selettori di eventi avanzati per un percorso. Per impostazione predefinita, nessun selettore di eventi avanzato è configurato per un percorso.

{ "AdvancedEventSelectors": [], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Per creare un selettore di eventi avanzato, esegui il comando put-event-selectors. Quando si verifica un evento di dati nel tuo account, CloudTrail valuta la configurazione dei percorsi. Se l'evento corrisponde a un qualsiasi selettore di eventi avanzato di un percorso, il percorso elabora e registra l'evento. Puoi configurare fino a 500 condizioni su un percorso, inclusi tutti i valori specificati per tutti i selettori di eventi avanzati sul percorso. Per ulteriori informazioni, consulta Registrazione di eventi di dati per i percorsi.

Percorso di esempio con selettori di eventi avanzati specifici

L'esempio seguente crea selettori di eventi avanzati personalizzati per un percorso denominato TrailName per includere eventi di gestione di lettura e scrittura (omettendo il selettore readOnly), eventi di dati PutObject e DeleteObject per tutte le combinazioni bucket/prefisso di Amazon S3, ad eccezione di un bucket denominato sample_bucket_name ed eventi di dati per una funzione AWS Lambda denominata MyLambdaFunction. Poiché si tratta di selettori di eventi avanzati personalizzati, ogni set di selettori ha un nome descrittivo. Nota che una barra finale fa parte del valore ARN per i bucket S3.

aws cloudtrail put-event-selectors --trail-name TrailName --advanced-event-selectors '[ { "Name": "Log readOnly and writeOnly 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", "NotEquals": ["arn:aws:s3:::sample_bucket_name/"] } ] }, { "Name": "Log data plane actions on MyLambdaFunction", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] }, { "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-2:111122223333:function/MyLambdaFunction"] } ] } ]'

L'esempio restituisce i selettori di eventi avanzati configurati per il percorso.

{ "AdvancedEventSelectors": [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log PutObject and DeleteObject events for all but one bucket", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.ARN", "Equals": [], "StartsWith": [], "EndsWith": [], "NotEquals": [ "arn:aws:s3:::sample_bucket_name/" ], "NotStartsWith": [], "NotEndsWith": [] }, ] }, { "Name": "Log data plane actions on MyLambdaFunction", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "eventName", "Equals": [ "Invoke" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.ARN", "Equals": [ "arn:aws:lambda:us-east-2:111122223333:function/MyLambdaFunction" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Percorso di esempio che utilizza selettori di eventi avanzati personalizzati per registrare tutti gli eventi di gestione e di dati

L'esempio seguente crea selettori di eventi avanzati per un trail denominato TrailName2 che include tutti gli eventi, inclusi gli eventi di gestione di sola lettura e di sola scrittura e tutti gli eventi di dati per tutti i bucket S3, le funzioni Lambda, le tabelle DynamoDB, le chiamate PutAuditEvents sui canali CloudTrail Lake, l'attività API a livello di oggetto S3 su AWS Outposts, le chiamate JSON-RPC di Blockchain gestita da Amazon su nodi Ethereum, le attività API sui punti di accesso S3 Object Lambda, l'attività API diretta di Amazon EBS su snapshot di Amazon EBS nell'account AWS, i punti di accesso S3, i flussi DynamoDB, le tabelle AWS Glue create da Lake Formation, gli ambienti Amazon FinSpace, i componenti di prova degli esperimenti dei parametri Amazon SageMaker e Amazon SageMaker Feature Store.

Nota

Se il percorso è valido solo per una regione, vengono registrati solo gli eventi in tale regione, anche se i parametri del selettore di eventi specificano tutti i bucket Amazon S3 e le funzioni Lambda. In un percorso basato su una singola regione, i selettori di eventi sono validi solo per la regione in cui è stato creato il percorso.

aws cloudtrail put-event-selectors --trail-name TrailName2 \ --advanced-event-selectors ' [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] }, { "Name": "Log all events for all buckets", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::Object"] } ] }, { "Name": "Log all events for Lambda functions", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Lambda::Function"] } ] }, { "Name": "Log all events for DynamoDB tables", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::DynamoDB::Table"] } ] }, { "Name": "Log all PutAuditEvents events on CloudTrail Lake channels", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::CloudTrail::Channel"] } ] }, { "Name": "Log all events for S3 on Outposts", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3Outposts::Object"] } ] }, { "Name": "Log all JSON-RPC calls for Ethereum nodes in Amazon Managed Blockchain", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::ManagedBlockchain::Node"] } ] }, { "Name": "Log all events for Amazon S3 Object Lambda access points", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3ObjectLambda::AccessPoint"] } ] }, { "Name": "Log all Amazon EBS direct API calls on snapshots", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::EC2::Snapshot"] } ] }, { "Name": "Log all events for S3 access points", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3::AccessPoint"] } ] }, { "Name": "Log all events for DynamoDB streams", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::DynamoDB::Stream"] } ] }, { "Name": "Log all events for AWS Glue tables created by Lake Formation", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Glue::Table"] } ] }, { "Name": "Log all events for FinSpace environments", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::FinSpace::Environment"] } ] }, { "Name": "Log all events for SageMaker metrics experiment trial components", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::SageMaker::ExperimentTrialComponent"] } ] }, { "Name": "Log all events for SageMaker feature stores", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::SageMaker::AWS::SageMaker::FeatureGroup"] } ] } ]'

L'esempio restituisce i selettori di eventi avanzati configurati per il percorso.

{ "AdvancedEventSelectors": [ { "Name": "Log readOnly and writeOnly management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for all buckets", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3::Object" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for Lambda functions", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::Lambda::Function" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for DynamoDB tables", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::DynamoDB::Table" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all PutAuditEvents events on CloudTrail Lake channels", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::CloudTrail::Channel" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for S3 on Outposts", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3Outposts::Object" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all JSON-RPC call events for Ethereum on Managed Blockchain nodes", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::ManagedBlockchain::Node" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for Amazon S3 Object Lambda access points", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3ObjectLambda::AccessPoint" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all Amazon EBS direct API calls on snapshots", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::EC2::Snapshot" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for S3 access points", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::S3::AccessPoint" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for DynamoDB streams", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::DynamoDB::Stream" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for AWS Glue tables created by Lake Formation", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::Glue::Table" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for FinSpace environments", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::FinSpace::Environment" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for SageMaker metrics experiment trial components", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::SageMaker::ExperimentTrialComponent" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] }, { "Name": "Log all events for SageMaker feature stores", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "resources.type", "Equals": [ "AWS::SageMaker::FeatureGroup" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName2" }

Percorso di esempio che utilizza selettori di eventi avanzati personalizzati per registrare eventi di dati Amazon S3 su AWS Outposts

L'esempio seguente mostra come configurare il percorso per includere tutti gli eventi di dati per tutti gli oggetti Amazon S3 su AWS Outposts nell'outpost. In questa versione, il valore supportato per S3 su eventi AWS Outposts per il campo resources.type è AWS::S3Outposts::Object.

aws cloudtrail put-event-selectors --trail-name TrailName --region region \ --advanced-event-selectors \ '[ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::S3Outposts::Object"] } ] } ]'

Questo comando restituisce il seguente output di esempio.

{ "AdvancedEventSelectors": [ { "Name": "OutpostsEventSelector", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Data" ] }, { "Field": "resources.type", "Equals": [ "AWS::S3Outposts::Object" ] } ] } ], "TrailARN": "arn:aws:cloudtrail:region:123456789012:trail/TrailName" }

Percorso di esempio che utilizza selettori di eventi avanzati per escludere eventi AWS Key Management Service

Nell'esempio seguente viene creato un selettore di eventi avanzato per un percorso denominato TrailName, per includere eventi di gestione di sola lettura e di sola scrittura (omettendo il selettore readOnly), ma per escludere eventi AWS Key Management Service (AWS KMS). Poiché gli eventi AWS KMS vengono considerati eventi di gestione e possono essere in un volume elevato, possono influire in modo sostanziale sul costo di CloudTrail se hai più percorsi che acquisiscono gli eventi di gestione. In questa release è possibile escludere eventi da kms.amazonaws.com.

Se scegli di non registrare gli eventi di gestione, gli eventi AWS KMS non vengono registrati e non puoi modificare le impostazioni di registrazione degli eventi AWS KMS.

Per avviare nuovamente la registrazione di eventi AWS KMS su un percorso, rimuovi il selettore eventSource ed esegui nuovamente il comando.

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events except KMS events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] }, { "Field": "eventSource", "NotEquals": ["kms.amazonaws.com"] } ] } ]'

L'esempio restituisce i selettori di eventi avanzati configurati per il percorso.

{ "AdvancedEventSelectors": [ { "Name": "Log all management events except KMS events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "eventSource", "Equals": [], "StartsWith": [], "EndsWith": [], "NotEquals": [ "kms.amazonaws.com" ], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Per avviare nuovamente la registrazione di eventi su un percorso, rimuovi il selettore eventSource, come mostrato nel comando seguente.

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] } ]'

Percorso di esempio che utilizza selettori di eventi avanzati per escludere eventi dell'API dati di Amazon RDS

Nell'esempio seguente viene creato un selettore di eventi avanzato per un percorso denominato TrailName, per includere eventi di gestione di sola lettura e di sola scrittura (omettendo il selettore readOnly), ma per escludere eventi dell'API dati di Amazon RDS. Poiché gli eventi dell'API dati di Amazon RDS vengono considerati eventi di gestione e possono essere in un volume elevato, possono influire in modo sostanziale sul costo di CloudTrail se hai più percorsi che acquisiscono gli eventi di gestione. Per escludere gli eventi dell'API dati di Amazon RDS, specifica l'origine eventi dell'API dati di Amazon RDS nel valore della stringa per il campo eventSource: rdsdata.amazonaws.com.

Se scegli di non registrare gli eventi di gestione, gli eventi dell'API dati di Amazon RDS non vengono registrati e non puoi modificare le relative impostazioni di registrazione.

Per avviare nuovamente la registrazione di eventi dell'API dati di Amazon RDS su un percorso, rimuovi il selettore eventSource ed esegui nuovamente il comando.

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events except Amazon RDS data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] }, { "Field": "eventSource", "NotEquals": ["rdsdata.amazonaws.com"] } ] } ]'

L'esempio restituisce i selettori di eventi avanzati configurati per il percorso.

{ "AdvancedEventSelectors": [ { "Name": "Log all management events except Amazon RDS data events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "Management" ], "StartsWith": [], "EndsWith": [], "NotEquals": [], "NotStartsWith": [], "NotEndsWith": [] }, { "Field": "eventSource", "Equals": [], "StartsWith": [], "EndsWith": [], "NotEquals": [ "rdsdata.amazonaws.com" ], "NotStartsWith": [], "NotEndsWith": [] } ] } ], "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/TrailName" }

Per avviare nuovamente la registrazione di eventi su un percorso, rimuovi il selettore eventSource, come mostrato nel comando seguente.

aws cloudtrail put-event-selectors --trail-name TrailName \ --advanced-event-selectors ' [ { "Name": "Log all management events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Management"] } ] } ]'

Arresto e avvio della registrazione di log per un trail

I seguenti comandi avviano e interrompono la registrazione dei log di CloudTrail.

aws cloudtrail start-logging --name awscloudtrail-example
aws cloudtrail stop-logging --name awscloudtrail-example
Nota

Prima di eliminare un bucket, esegui il comando stop-logging per interrompere la distribuzione degli eventi nel bucket. Se non interrompi la registrazione, CloudTrail cercherà di distribuire i file di log in un bucket con lo stesso nome per un periodo di tempo limitato.

Se interrompi la registrazione o elimini un percorso, CloudTrail Insights viene disabilitato sul percorso in questione.

Eliminazione di un trail

Puoi eliminare un trail con il comando seguente. Puoi eliminare un trail solo nella regione in cui è stato creato (la regione principale).

aws cloudtrail delete-trail --name awscloudtrail-example

Quando elimini un percorso, non elimini il bucket Amazon S3 o l'argomento Amazon SNS associato ad esso. Utilizza la AWS Management Console, la AWS CLI o l'API del servizio per eliminare queste risorse separatamente.