Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
CloudTrail exemples utilisant AWS CLI
Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants à l'aide du AWS Command Line Interface with CloudTrail.
Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.
Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la façon de configurer et d'exécuter le code en contexte.
Rubriques
Actions
L'exemple de code suivant montre comment utiliseradd-tags.
- AWS CLI
-
Pour ajouter des balises au parcours
La
add-tagscommande suivante ajoute des balises pourTrail1:aws cloudtrail add-tags --resource-idarn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1--tags-listKey=name,Value=AliceKey=location,Value=us-
Pour plus de détails sur l'API, reportez-vous AddTags
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisercreate-subscription.
- AWS CLI
-
Pour créer et configurer AWS des ressources pour un parcours
La
create-subscriptioncommande suivante crée un nouveau compartiment S3 et une nouvelle rubrique SNS pourTrail1.aws cloudtrail create-subscription \ --nameTrail1\ --s3-new-bucketamzn-s3-demo-bucket\ --sns-new-topicmy-topicSortie :
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-
Pour plus de détails sur l'API, reportez-vous CreateSubscription
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utilisercreate-trail.
- AWS CLI
-
Pour créer un parcours
L'
create-trailexemple suivant crée un journal multirégional nomméTrail1et spécifie un compartiment S3.aws cloudtrail create-trail \ --nameTrail1\ --s3-bucket-nameamzn-s3-demo-bucket\ --is-multi-region-trailSortie :
{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }-
Pour plus de détails sur l'API, reportez-vous CreateTrail
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdelete-trail.
- AWS CLI
-
Pour supprimer un parcours
La
delete-trailcommande suivante supprime une piste nomméeTrail1:aws cloudtrail delete-trail --nameTrail1-
Pour plus de détails sur l'API, reportez-vous DeleteTrail
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserdescribe-trails.
- AWS CLI
-
Pour décrire un sentier
L'
describe-trailsexemple suivant renvoie les paramètres pourTrail1etTrail2.aws cloudtrail describe-trails \ --trail-name-listTrail1Trail2Sortie :
{ "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" } ] }-
Pour plus de détails sur l'API, reportez-vous DescribeTrails
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserget-event-selectors.
- AWS CLI
-
Pour consulter les paramètres du sélecteur d'événements pour un parcours
La
get-event-selectorscommande suivante renvoie les paramètres pourTrail1:aws cloudtrail get-event-selectors --trail-nameTrail1Sortie :
{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1" }-
Pour plus de détails sur l'API, reportez-vous GetEventSelectors
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserget-trail-status.
- AWS CLI
-
Pour obtenir le statut d'une piste
La
get-trail-statuscommande suivante renvoie les informations de livraison et de journalisation pourTrail1:aws cloudtrail get-trail-status --nameTrail1Sortie :
{ "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" }-
Pour plus de détails sur l'API, reportez-vous GetTrailStatus
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-public-keys.
- AWS CLI
-
Pour répertorier toutes les clés publiques d'un parcours
La
list-public-keyscommande suivante renvoie toutes les clés publiques dont les clés privées ont été utilisées pour signer les fichiers de résumé dans le délai spécifié :aws cloudtrail list-public-keys --start-time2016-01-01T20:30:00.000ZSortie :
{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }-
Pour plus de détails sur l'API, reportez-vous ListPublicKeys
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlist-tags.
- AWS CLI
-
Pour répertorier les balises d'un parcours
La
list-tagscommande suivante répertorie les balises pourTrail1etTrail2:aws cloudtrail list-tags --resource-id-listarn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail2Sortie :
{ "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" } ] } ] }-
Pour plus de détails sur l'API, reportez-vous ListTags
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserlookup-events.
- AWS CLI
-
Pour rechercher des événements pour un parcours
La
lookup-eventscommande suivante recherche les événements d'activité de l'API par attributEventName:aws cloudtrail lookup-events --lookup-attributesAttributeKey=EventName,AttributeValue=ConsoleLoginSortie :
{ "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": [] } ] }-
Pour plus de détails sur l'API, reportez-vous LookupEvents
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserput-event-selectors.
- AWS CLI
-
Exemple 1 : configurer un journal pour consigner les événements de gestion et les événements de données à l'aide de sélecteurs d'événements avancés
Vous pouvez ajouter des sélecteurs d'événements avancés et des conditions pour vos sélecteurs d'événements avancés, jusqu'à un maximum de 500 valeurs pour toutes les conditions et tous les sélecteurs d'un sentier. Vous pouvez utiliser des sélecteurs d'événements avancés pour enregistrer tous les types d'événements de données disponibles. Vous pouvez utiliser des sélecteurs d'événements avancés ou des sélecteurs d'événements de base, mais pas les deux. Si vous appliquez des sélecteurs d’événements avancés à un journal de suivi, tous les sélecteurs d’événements de base existants sont remplacés.
L'
put-event-selectorsexemple suivant crée un sélecteur d'événements avancé pour un journal nommémyTrailafin de consigner tous les événements de gestion, de consigner les appels S3 PutObject et d' DeleteObject API pour tous les compartiments S3 sauf un, de consigner les appels d'API de données pour une fonction LambdamyFunctionnommée et de consigner les appels d'API de publication sur un sujet SNS nommé.myTopicaws cloudtrail put-event-selectors \ --trail-namemyTrail\ --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"] }]}]'Sortie :
{ "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" ] } ] } ] }Pour plus d'informations, voir Enregistrer les événements à l'aide de sélecteurs d'événements avancés dans le Guide de l'AWS CloudTrail utilisateur.
Exemple 2 : configurer les sélecteurs d'événements pour un journal afin de consigner tous les événements de gestion et les événements de données
Vous pouvez configurer jusqu'à 5 sélecteurs d'événements et jusqu'à 250 ressources de données pour un journal de suivi. Les sélecteurs d'événements sont également appelés sélecteurs d'événements de base. Vous pouvez utiliser des sélecteurs d'événements pour consigner les événements de gestion et les événements de données pour les objets S3, les fonctions Lambda et les tables DynnaMoDB. Pour enregistrer des événements de données pour d'autres types de ressources, vous devez utiliser des sélecteurs d'événements avancés.
L'
put-event-selectorsexemple suivant crée un sélecteur d'événements pour un journal nommé de manièreTrailNameà inclure tous les événements de gestion, les événements de données pour deux bucket/prefix combinaisons Amazon S3 et les événements de données pour une seule fonction AWS Lambda nommée.hello-world-python-functionaws cloudtrail put-event-selectors \ --trail-nameTrailName\ --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"]}]}]'Sortie :
{ "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" }Pour plus d'informations, consultez la section Consigner les événements à l'aide des sélecteurs d'événements de base du Guide de l'AWS CloudTrail utilisateur.
Exemple 3 : configurer des sélecteurs d'événements pour un journal afin de consigner les événements de gestion, tous les événements de données S3 sur les objets S3 et tous les événements de données Lambda sur les fonctions de votre compte
L'
put-event-selectorsexemple suivant crée un sélecteur d'événements pour un journal nomméTrailName2qui inclut tous les événements de gestion et tous les événements de données pour tous les buckets Amazon S3 et les fonctions AWS Lambda du compte. AWSaws cloudtrail put-event-selectors \ --trail-nameTrailName2\ --event-selectors '[{"ReadWriteType": "All","IncludeManagementEvents": true,"DataResources": [{"Type":"AWS::S3::Object", "Values": ["arn:aws:s3"]},{"Type": "AWS::Lambda::Function","Values": ["arn:aws:lambda"]}]}]'Sortie :
{ "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" }Pour plus d'informations, consultez la section Consigner les événements à l'aide des sélecteurs d'événements de base du Guide de l'AWS CloudTrail utilisateur.
-
Pour plus de détails sur l'API, reportez-vous PutEventSelectors
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserremove-tags.
- AWS CLI
-
Pour supprimer les balises d'un parcours
La
remove-tagscommande suivante supprime les balises spécifiées pourTrail1:aws cloudtrail remove-tags --resource-idarn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1--tags-listKey=nameKey=location-
Pour plus de détails sur l'API, reportez-vous RemoveTags
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserstart-logging.
- AWS CLI
-
Pour commencer à enregistrer un parcours
La
start-loggingcommande suivante active la journalisation pourTrail1:aws cloudtrail start-logging --nameTrail1-
Pour plus de détails sur l'API, reportez-vous StartLogging
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserstop-logging.
- AWS CLI
-
Pour arrêter d'enregistrer un parcours
La
stop-loggingcommande suivante désactive la journalisation pourTrail1:aws cloudtrail stop-logging --nameTrail1-
Pour plus de détails sur l'API, reportez-vous StopLogging
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserupdate-subscription.
- AWS CLI
-
Pour mettre à jour les paramètres de configuration d'un parcours
L'
update-subscriptionexemple suivant met à jour le journal pour spécifier un nouveau compartiment S3 et une nouvelle rubrique SNS.aws cloudtrail update-subscription \ --nameTrail1\ --s3-new-bucketamzn-s3-demo-bucket\ --sns-new-topicmy-topic-newSortie :
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" } }-
Pour plus de détails sur l'API, reportez-vous UpdateSubscription
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliserupdate-trail.
- AWS CLI
-
Pour mettre à jour un parcours
L'
update-trailexemple suivant met à jour un journal afin d'utiliser un bucket existant pour la livraison du journal.aws cloudtrail update-trail \ --nameTrail1\ --s3-bucket-nameamzn-s3-demo-bucketSortie :
{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }-
Pour plus de détails sur l'API, reportez-vous UpdateTrail
à la section Référence des AWS CLI commandes.
-
L'exemple de code suivant montre comment utiliservalidate-logs.
- AWS CLI
-
Pour valider un fichier journal
La
validate-logscommande suivante valide les journaux pourTrail1:aws cloudtrail validate-logs --trail-arnarn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1--start-time20160129T19:00:00ZSortie :
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-
Pour plus de détails sur l'API, reportez-vous ValidateLogs
à la section Référence des AWS CLI commandes.
-