View a markdown version of this page

CloudTrail Beispiele unter Verwendung AWS CLI - AWS SDK-Codebeispiele

Weitere AWS SDK-Beispiele sind im AWS Doc SDK Examples GitHub Repo verfügbar.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

CloudTrail Beispiele unter Verwendung AWS CLI

Die folgenden Codebeispiele zeigen, wie Sie mithilfe von AWS Command Line Interface with Aktionen ausführen und gängige Szenarien implementieren CloudTrail.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anweisungen zum Einrichten und Ausführen des Codes im Kodex finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt die Verwendungadd-tags.

AWS CLI

So fügen Sie dem Trail Tags hinzu

Der folgende add-tags-Befehl fügt Tags für Trail1 hinzu:

aws cloudtrail add-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name,Value=Alice Key=location,Value=us
  • API-Details finden Sie AddTags in der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendung. create-subscription

AWS CLI

Um AWS Ressourcen für einen Trail zu erstellen und zu konfigurieren

Der folgende create-subscription-Befehl erstellt einen neuen S3-Bucket und ein neues SNS-Thema für Trail1.

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

Ausgabe:

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

Das folgende Codebeispiel zeigt die Verwendung. create-trail

AWS CLI

So erstellen Sie einen Trail

Im folgenden Beispiel für create-trail wird ein Multi-Region-Trail mit dem Namen Trail1 erstellt und ein S3-Bucket angegeben.

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

Ausgabe:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
  • API-Details finden Sie CreateTrail in der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendung. delete-trail

AWS CLI

So löschen Sie einen Trail

Der folgende delete-trail-Befehl löscht einen Trail mit dem Namen Trail1:

aws cloudtrail delete-trail --name Trail1
  • API-Details finden Sie DeleteTrail in der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendung. describe-trails

AWS CLI

So beschreiben Sie einen Trail

Im folgenden Beispiel für describe-trails wird der Wert für Trail1 und Trail2 zurückgegeben.

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

Ausgabe:

{ "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" } ] }

Das folgende Codebeispiel zeigt die Verwendung. get-event-selectors

AWS CLI

So zeigen Sie die Einstellungen für die Ereignisauswahl für einen Trail an

Im folgenden Beispiel für get-event-selectors werden die Einstellungen für Trail1 zurückgegeben:

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

Ausgabe:

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

Das folgende Codebeispiel zeigt die Verwendung. get-trail-status

AWS CLI

So rufen Sie den Status eines Trails ab

Der folgende get-trail-status-Befehl gibt die Liefer- und Protokollierungsdetails für Trail1 zurück:

aws cloudtrail get-trail-status --name Trail1

Ausgabe:

{ "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" }

Das folgende Codebeispiel zeigt die Verwendung. list-public-keys

AWS CLI

So listen Sie alle öffentlichen Schlüssel für einen Trail auf

Der folgende list-public-keys-Befehl gibt alle öffentlichen Schlüssel, deren private Schlüssel zum Signieren der Digest-Dateien verwendet wurden, für den angegebenen Zeitraum zurück:

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

Ausgabe:

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

Das folgende Codebeispiel zeigt die Verwendung. list-tags

AWS CLI

So listen Sie die Tags für einen Trail auf

Der folgende list-tags-Befehl listet die Tags für Trail1 und Trail2 auf:

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

Ausgabe:

{ "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" } ] } ] }
  • API-Details finden Sie ListTags in der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendung. lookup-events

AWS CLI

So rufen Sie Ereignisse für einen Trail ab

Der folgende lookup-events-Befehl ruft API-Aktivitätsereignisse anhand des Attributs EventName ab:

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

Ausgabe:

{ "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": [] } ] }

Das folgende Codebeispiel zeigt die Verwendung. put-event-selectors

AWS CLI

Beispiel 1: Konfigurieren eines Trails zum Protokollieren erweiterter Verwaltungs- und Datenereignisse mithilfe der erweiterten Ereignisauswahl

Sie können erweiterte Ereignisauswahlen und Bedingungen hierfür hinzufügen. Dabei gilt ein Höchstwert von 500 Werten für alle Bedingungen und Auswahlen in einem Trail. Sie können erweiterte Ereignisauswahlen verwenden, um alle verfügbaren Datenereignistypen zu protokollieren. Sie können entweder erweiterte Ereignisselektoren oder einfache Ereignisselektoren verwenden, aber nicht beide. Wenn Sie erweiterte Ereignisselektoren auf einen Trail anwenden, werden alle vorhandenen grundlegenden Ereignisselektoren überschrieben.

Im folgenden put-event-selectors Beispiel wird ein erweiterter Event-Selektor für einen Trail erstellt, der alle Verwaltungsereignisse protokolliert, S3 PutObject - und DeleteObject API-Aufrufe für alle myTrail bis auf einen S3-Bucket protokolliert, Daten-API-Aufrufe für eine Lambda-Funktion mit dem Namen protokolliert und API-Aufrufe für Veröffentlichungen zu einem benannten myFunction SNS-Thema protokolliert. myTopic

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

Ausgabe:

{ "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" ] } ] } ] }

Weitere Informationen finden Sie im Benutzerhandbuch unter Protokollieren von Ereignissen mithilfe erweiterter Event-Selektoren. AWS CloudTrail

Beispiel 2: Konfigurieren von Ereignisauswahlen für einen Trail zum Protokollieren aller Verwaltungs- und Datenereignisse

Sie können bis zu 5 Ereignisauswahlen und bis zu 250 Datenressourcen für einen Trail konfigurieren. Ereignisauswahlen werden auch als grundlegende Ereignisauswahlen bezeichnet. Mit der Ereignisauswahl können Sie Verwaltungs- und Datenereignisse für S3-Objekte, Lambda-Funktionen und DynamoDB-Tabellen protokollieren. Zum Protokollieren von Datenereignissen für andere Ressourcentypen müssen Sie erweiterte Ereignisauswahlen verwenden.

Das folgende put-event-selectors Beispiel erstellt einen Event-Selektor für einen Trail, der so benannt ist, TrailName dass er alle Verwaltungsereignisse, Datenereignisse für zwei Amazon bucket/prefix S3-Kombinationen und Datenereignisse für eine einzelne benannte AWS Lambda-Funktion enthält. hello-world-python-function

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

Ausgabe:

{ "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" }

Weitere Informationen finden Sie im Benutzerhandbuch unter Protokollieren von Ereignissen mithilfe einfacher Event-Selektoren. AWS CloudTrail

Beispiel 3: Konfigurieren von Ereignisauswahlen für einen Trail, um Verwaltungsereignisse, alle S3-Datenereignisse für S3-Objekte und alle Lambda-Datenereignisse für Funktionen in Ihrem Konto zu protokollieren

Im folgenden put-event-selectors Beispiel wird ein Event-Selektor für einen Trail mit dem Namen erstelltTrailName2, der alle Verwaltungsereignisse und alle Datenereignisse für alle Amazon S3-Buckets und AWS Lambda-Funktionen im Konto umfasst. AWS

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

Ausgabe:

{ "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" }

Weitere Informationen finden Sie im Benutzerhandbuch unter Protokollieren von Ereignissen mithilfe einfacher Event-Selektoren. AWS CloudTrail

Das folgende Codebeispiel zeigt die Verwendung. remove-tags

AWS CLI

So entfernen Sie Tags für einen Host

Der folgende remove-tags-Befehl entfernt die angegebenen Tags für Trail1:

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name Key=location
  • API-Details finden Sie RemoveTags in der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendung. start-logging

AWS CLI

So starten Sie das Protokollieren für einen Trail

Der folgende start-logging-Befehl aktiviert das Protokollieren für Trail1:

aws cloudtrail start-logging --name Trail1

Das folgende Codebeispiel zeigt die Verwendung. stop-logging

AWS CLI

So beenden Sie die Protokollierung eines Trails

Der folgende stop-logging-Befehl deaktiviert die Protokollierung für Trail1:

aws cloudtrail stop-logging --name Trail1
  • API-Details finden Sie StopLogging in der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendung. update-subscription

AWS CLI

So aktualisieren Sie die Konfigurationseinstellungen für einen Trail

Im folgenden Beispiel für update-subscription wird der Trail aktualisiert, sodass ein neuer S3-Bucket und ein neues SNS-Thema angegeben werden.

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

Ausgabe:

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" } }

Das folgende Codebeispiel zeigt die Verwendung. update-trail

AWS CLI

So aktualisieren Sie einen Trail

Im folgenden Beispiel für update-trail wird ein Trail aktualisiert, um einen vorhandenen Bucket für die Protokollzustellung zu verwenden.

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

Ausgabe:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
  • API-Details finden Sie UpdateTrail in der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungvalidate-logs.

AWS CLI

So validieren Sie eine Protokolldatei

Der folgende validate-logs-Befehl validiert die Protokolle für Trail1:

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

Ausgabe:

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