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 configuration et l’exécution du code en contexte.
Rubriques
Actions
L'exemple de code suivant montre comment utiliseradd-tags.
- AWS CLI
-
Pour ajouter des balises au journal de suivi
La commande
add-tagssuivante ajoute des balises àTrail1: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 commande
create-subscriptionsuivante 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 journal de suivi
L’exemple
create-trailsuivant crée un journal de suivi multi-région 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 journal de suivi
La commande
delete-trailsuivante supprime un journal de suivi nomméTrail1: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 journal de suivi
L’exemple
describe-trailssuivant 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 afficher les paramètres du sélecteur d’événements pour un journal de suivi
La commande
get-event-selectorssuivante 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’un journal de suivi
La commande
get-trail-statussuivante 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 journal de suivi
La commande
list-public-keyssuivante renvoie toutes les clés publiques dont les clés privées ont été utilisés pour signer les fichiers de valeur de hachage dans la plage de temps spécifiée :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 journal de suivi
La commande
list-tagssuivante 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 journal de suivi
La commande
lookup-eventssuivante 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 : pour configurer un journal de suivi pour journaliser les événements de gestion et 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 journal de suivi. Vous pouvez utiliser des sélecteurs d’événements avancés pour journaliser 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 : pour configurer les sélecteurs d’événements pour un journal de suivi afin de journaliser 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 journaliser les événements de gestion et de données pour les objets S3, les fonctions Lambda et les tables DynamoDB. Afin de journaliser des événements de données sur ces 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 : pour configurer des sélecteurs d’événements pour un journal de suivi afin de journaliser des é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 journal de suivi
La commande
remove-tagssuivante 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 démarrer la journalisation pour un journal de suivi
La commande
start-loggingsuivante 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 la journalisation d’un journal de suivi
La commande
stop-loggingsuivante 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 journal de suivi
L’exemple
update-subscriptionsuivant met à jour le journal de suivi 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 journal de suivi
L’exemple
update-trailsuivant met à jour un journal afin d’utiliser un compartiment 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 commande
validate-logssuivante 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.
-