D'autres AWS SDK exemples sont disponibles dans le GitHub dépôt AWS Doc SDK Examples
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 montrent comment appeler des fonctions de service individuelles, vous pouvez les visualiser dans leur 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-tags
commande suivante ajoute des balises pourTrail1
:aws cloudtrail add-tags --resource-id
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--tags-listKey=name,Value=Alice
Key=location,Value=us
-
Pour API plus de détails, voir 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-subscription
commande suivante crée un nouveau compartiment S3 et une nouvelle SNS rubrique pourTrail1
:aws cloudtrail create-subscription --name
Trail1
--s3-new-bucketmy-bucket
--sns-new-topicmy-topic
Sortie :
Setting up new S3 bucket my-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": "my-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 API plus de détails, voir 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
La
create-trail
commande suivante crée un journal multirégional nomméTrail1
et spécifie un compartiment S3 :aws cloudtrail create-trail --name
Trail1
--s3-bucket-namemy-bucket
--is-multi-region-trailSortie :
{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
-
Pour API plus de détails, voir 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-trail
commande suivante supprime une piste nomméeTrail1
:aws cloudtrail delete-trail --name
Trail1
-
Pour API plus de détails, voir 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
La
describe-trails
commande suivante renvoie les paramètres pourTrail1
etTrail2
:aws cloudtrail describe-trails --trail-name-list
Trail1
Trail2
Sortie :
{ "trailList": [ { "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": false, "S3BucketName": "my-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": "my-bucket", "KmsKeyId": "arn:aws:kms:us-east-1:123456789012:key/4c5ae5ac-3c13-421e-8335-c7868ef6a769", "HomeRegion": "us-east-1" } ] }
-
Pour API plus de détails, voir 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-selectors
commande suivante renvoie les paramètres pourTrail1
:aws cloudtrail get-event-selectors --trail-name
Trail1
Sortie :
{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1" }
-
Pour API plus de détails, voir 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-status
commande suivante renvoie les informations de livraison et de journalisation pourTrail1
:aws cloudtrail get-trail-status --name
Trail1
Sortie :
{ "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 API plus de détails, voir 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-keys
commande 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-time
2016-01-01T20:30:00.000Z
Sortie :
{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }
-
Pour API plus de détails, voir 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-tags
commande suivante répertorie les balises pourTrail1
etTrail2
: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
Sortie :
{ "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 API plus de détails, voir 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-events
commande suivante recherche les événements API d'activité par attributEventName
:aws cloudtrail lookup-events --lookup-attributes
AttributeKey=EventName,AttributeValue=ConsoleLogin
Sortie :
{ "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 API plus de détails, voir 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'exemple suivant crée un sélecteur d'événements avancé pour un journal nommé
myTrail
afin de consigner tous les événements de gestion, de consigner S3 PutObject et les DeleteObject API appels pour tous les compartiments S3 sauf un, de consigner les API appels de données pour une fonction LambdamyFunction
nommée et de consigner les appels de API publication sur SNS un sujet nommé.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:::sample_bucket_name/"] }]},{"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:::sample_bucket_name/" ] } ] }, { "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'exemple suivant crée un sélecteur d'événements pour un journal nommé de manière
TrailName
à inclure tous les événements de gestion, les événements de données pour deux combinaisons de compartiments et de préfixes Amazon S3 et les événements de données pour une seule fonction Lambda AWS nommée.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"]}]}]
'Sortie :
{ "EventSelectors": [ { "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" }
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'exemple suivant crée un sélecteur d'événements pour un journal nommé
TrailName2
qui 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-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"]}]}]
'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 API plus de détails, voir 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-tags
commande suivante supprime les balises spécifiées pourTrail1
:aws cloudtrail remove-tags --resource-id
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--tags-listKey=name
Key=location
-
Pour API plus de détails, voir 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-logging
commande suivante active la journalisation pourTrail1
:aws cloudtrail start-logging --name
Trail1
-
Pour API plus de détails, voir 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-logging
commande suivante désactive la journalisation pourTrail1
:aws cloudtrail stop-logging --name
Trail1
-
Pour API plus de détails, voir 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
La
update-subscription
commande suivante met à jour le journal pour spécifier un nouveau compartiment et une nouvelle SNS rubrique S3 :aws cloudtrail update-subscription --name
Trail1
--s3-new-bucketmy-bucket-new
--sns-new-topicmy-topic-new
Sortie :
Setting up new S3 bucket my-bucket-new... 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": "my-bucket-new", "SnsTopicName": "my-topic-new", "HomeRegion": "us-east-1" } ], "ResponseMetadata": { "HTTPStatusCode": 200, "RequestId": "31126f8a-c616-11e5-9cc6-2fd637936879" } }
-
Pour API plus de détails, voir 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
La
update-trail
commande suivante met à jour un journal afin d'utiliser un bucket existant pour la livraison du journal :aws cloudtrail update-trail --name
Trail1
--s3-bucket-namemy-bucket
Sortie :
{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
-
Pour API plus de détails, voir 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-logs
commande suivante valide les journaux pourTrail1
:aws cloudtrail validate-logs --trail-arn
arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1
--start-time20160129T19:00:00Z
Sortie :
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 API plus de détails, voir ValidateLogs
la section Référence des AWS CLI commandes.
-