CloudTrail Beispiele mit AWS CLI - AWS Command Line Interface

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. 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 Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt, wie Sieadd-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
  • Einzelheiten zur API 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ü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 Verwendungcreate-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" }
  • Einzelheiten zur API finden Sie CreateTrailin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdelete-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
  • Einzelheiten zur API finden Sie DeleteTrailin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdescribe-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" } ] }
  • Einzelheiten zur API finden Sie DescribeTrailsin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungget-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 Verwendungget-trail-status.

AWS CLI

So rufen Sie den Status eines Trails ab

Der folgende Befehl get-trail-status 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" }
  • Einzelheiten zur API finden Sie GetTrailStatusin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglist-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" } ] }
  • Einzelheiten zur API finden Sie ListPublicKeysin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglist-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" } ] } ] }
  • Einzelheiten zur API finden Sie ListTagsin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglookup-events.

AWS CLI

So schlagen Sie Ereignisse für einen Trail nach

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

Das folgende Codebeispiel zeigt die Verwendungput-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 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 bis auf einen S3-Bucket zu protokollieren, Daten-API-Aufrufe für eine Lambda-Funktion mit dem Namen myFunction zu protokollieren und Publish-API-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:::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 Ereignisse mithilfe erweiterter Ereignisselektoren protokollieren.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-Selector für einen Trail, der so benannt ist, TrailName dass er alle Verwaltungsereignisse, Datenereignisse für zwei Amazon S3 bucket/prefix S3-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:::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 grundlegender 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

Das folgende put-event-selectors 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

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
  • Einzelheiten zur API finden Sie RemoveTagsin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungstart-logging.

AWS CLI

So starten Sie die Protokollierung für einen Trail

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

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

Das folgende Codebeispiel zeigt die Verwendungstop-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
  • Einzelheiten zur API finden Sie StopLoggingin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungupdate-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 Verwendungupdate-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" }
  • Einzelheiten zur API finden Sie UpdateTrailin 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
  • Einzelheiten zur API finden Sie ValidateLogsin der AWS CLI Befehlsreferenz.