CloudTrail Beispiele mit AWS CLI - AWS SDKCode-Beispiele

Weitere AWS SDK Beispiele sind im Repo AWS Doc SDK Examples GitHub 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 mit AWS CLI

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

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Aktionen zeigen Ihnen zwar, wie Sie einzelne Servicefunktionen aufrufen, aber Sie können Aktionen im Kontext der zugehörigen Szenarien sehen.

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

Themen

Aktionen

Das folgende Codebeispiel zeigt die Verwendungadd-tags.

AWS CLI

Um dem Trail Tags hinzuzufügen

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

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
  • APIEinzelheiten finden Sie AddTagsin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungcreate-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ürTrail1:

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

Ausgabe:

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

Das folgende Codebeispiel zeigt die Verwendungcreate-trail.

AWS CLI

Um einen Trail zu erstellen

Der folgende create-trail Befehl erstellt einen Trail mit mehreren Regionen mit dem Namen Trail1 und der Angabe eines S3-Buckets:

aws cloudtrail create-trail --name Trail1 --s3-bucket-name my-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": "my-bucket" }
  • APIEinzelheiten finden Sie CreateTrailin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdelete-trail.

AWS CLI

Um einen Trail zu löschen

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

aws cloudtrail delete-trail --name Trail1
  • APIEinzelheiten finden Sie DeleteTrailin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdescribe-trails.

AWS CLI

Um einen Trail zu beschreiben

Der folgende describe-trails Befehl gibt die Einstellungen für Trail1 und zurückTrail2:

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": "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" } ] }
  • APIEinzelheiten finden Sie DescribeTrailsin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungget-event-selectors.

AWS CLI

Um die Event-Selector-Einstellungen für einen Trail anzuzeigen

Der folgende get-event-selectors Befehl gibt die Einstellungen für Trail1 zurück:

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 Verwendungget-trail-status.

AWS CLI

Um den Status einer Spur abzurufen

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

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" }
  • APIEinzelheiten finden Sie GetTrailStatusin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglist-public-keys.

AWS CLI

Um alle öffentlichen Schlüssel für einen Trail aufzulisten

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

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" } ] }
  • APIEinzelheiten finden Sie ListPublicKeysin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglist-tags.

AWS CLI

Um die Tags für einen Trail aufzulisten

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

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" } ] } ] }
  • APIEinzelheiten finden Sie ListTagsin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglookup-events.

AWS CLI

Um nach Ereignissen für einen Trail zu suchen

Der folgende lookup-events Befehl sucht nach API Aktivitätsereignissen anhand des AttributsEventName:

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": [] } ] }
  • APIEinzelheiten finden Sie LookupEventsin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungput-event-selectors.

AWS CLI

Beispiel 1: Konfigurieren Sie einen Trail, um Verwaltungsereignisse und Datenereignisse mithilfe erweiterter Ereignisselektoren zu protokollieren

Sie können erweiterte Event-Selektoren und Bedingungen für Ihre erweiterten Event-Selektoren hinzufügen, bis zu einem Maximum von 500 Werten für alle Bedingungen und Selektoren in einem Trail. Sie können erweiterte Event-Selektoren verwenden, um alle verfügbaren Daten-Ereignistypen 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 Beispiel wird eine erweiterte Ereignisauswahl für einen Trail mit dem Namen erstellt, um alle Verwaltungsereignisse myTrail zu protokollieren, S3 PutObject und DeleteObject API Aufrufe für alle S3-Buckets bis auf einen zu protokollieren, API Datenaufrufe für eine Lambda-Funktion mit dem Namen myFunction zu protokollieren und API Publish-Aufrufe zu einem SNS Thema mit dem Namen zu protokollieren. 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"] }]}]'

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

Weitere Informationen finden Sie im Benutzerhandbuch unter Ereignisse mithilfe erweiterter Event-Selektoren protokollieren.AWS CloudTrail

Beispiel 2: Konfigurieren Sie Event-Selektoren für einen Trail, um alle Verwaltungsereignisse und Datenereignisse zu protokollieren

Sie können bis zu 5 Ereignisauswahlen und bis zu 250 Datenressourcen für einen Trail konfigurieren. Event-Selektoren werden auch als einfache Event-Selektoren bezeichnet. Sie können Ereignisselektoren verwenden, um Verwaltungsereignisse und Datenereignisse für S3-Objekte, Lambda-Funktionen und DynnamoDB-Tabellen zu protokollieren. Um Datenereignisse für andere Ressourcentypen zu protokollieren, müssen Sie erweiterte Ereignisselektoren verwenden.

Das folgende Beispiel erstellt einen Event-Selektor für einen Trail, der so benannt ist, TrailName dass er alle Verwaltungsereignisse, Datenereignisse für zwei Amazon S3 S3-Bucket/Präfix-Kombinationen und Datenereignisse für eine einzelne AWS Lambda-Funktion mit dem Namen umfasst. 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"]}]}]'

Ausgabe:

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

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

Beispiel 3: Konfigurieren Sie Event-Selektoren 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

Das folgende Beispiel erstellt einen Event-Selektor für einen Trail mit dem NamenTrailName2, der alle Verwaltungsereignisse und alle Datenereignisse für alle Amazon S3 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 grundlegender Event-Selektoren.AWS CloudTrail

Das folgende Codebeispiel zeigt die Verwendungremove-tags.

AWS CLI

Um Tags für einen Trail zu entfernen

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

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

Das folgende Codebeispiel zeigt die Verwendungstart-logging.

AWS CLI

Um mit der Protokollierung für einen Trail zu beginnen

Der folgende start-logging Befehl aktiviert die Protokollierung fürTrail1:

aws cloudtrail start-logging --name Trail1
  • APIEinzelheiten finden Sie StartLoggingin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungstop-logging.

AWS CLI

Um die Protokollierung einer Spur zu beenden

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

aws cloudtrail stop-logging --name Trail1
  • APIEinzelheiten finden Sie StopLoggingin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungupdate-subscription.

AWS CLI

Um die Konfigurationseinstellungen für einen Trail zu aktualisieren

Der folgende update-subscription Befehl aktualisiert den Trail, um einen neuen S3-Bucket und ein neues SNS Thema anzugeben:

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

Ausgabe:

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

Das folgende Codebeispiel zeigt die Verwendungupdate-trail.

AWS CLI

Um einen Trail zu aktualisieren

Mit dem folgenden update-trail Befehl wird ein Trail aktualisiert, sodass er einen vorhandenen Bucket für die Protokollzustellung verwendet:

aws cloudtrail update-trail --name Trail1 --s3-bucket-name my-bucket

Ausgabe:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "my-bucket" }
  • APIEinzelheiten finden Sie UpdateTrailin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungvalidate-logs.

AWS CLI

Um eine Protokolldatei zu validieren

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

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
  • APIEinzelheiten finden Sie ValidateLogsin der AWS CLI Befehlsreferenz.