选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

使用 AWS CLI 的 CloudTrail 示例

聚焦模式
使用 AWS CLI 的 CloudTrail 示例 - AWS Command Line Interface

以下代码示例演示了如何通过将 AWS Command Line Interface与 CloudTrail 结合使用,来执行操作和实现常见场景。

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示如何使用 add-tags

AWS CLI

为跟踪添加标签

以下 add-tags 命令为 Trail1 添加标签:

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 详细信息,请参阅《AWS CLI 命令参考》中的 AddTags

以下代码示例演示如何使用 add-tags

AWS CLI

为跟踪添加标签

以下 add-tags 命令为 Trail1 添加标签:

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 详细信息,请参阅《AWS CLI 命令参考》中的 AddTags

以下代码示例演示如何使用 create-subscription

AWS CLI

为跟踪创建和配置 AWS 资源

以下 create-subscription 命令为 Trail1 创建新的 S3 存储桶和 SNS 主题。

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

输出:

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
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateSubscription

以下代码示例演示如何使用 create-subscription

AWS CLI

为跟踪创建和配置 AWS 资源

以下 create-subscription 命令为 Trail1 创建新的 S3 存储桶和 SNS 主题。

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

输出:

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
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateSubscription

以下代码示例演示如何使用 create-trail

AWS CLI

创建跟踪

以下 create-trail 示例创建名为 Trail1 的多区域跟踪并指定一个 S3 存储桶。

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

输出:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateTrail

以下代码示例演示如何使用 create-trail

AWS CLI

创建跟踪

以下 create-trail 示例创建名为 Trail1 的多区域跟踪并指定一个 S3 存储桶。

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

输出:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateTrail

以下代码示例演示如何使用 delete-trail

AWS CLI

删除跟踪

以下 delete-trail 命令删除名为 Trail1 的跟踪:

aws cloudtrail delete-trail --name Trail1
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteTrail

以下代码示例演示如何使用 delete-trail

AWS CLI

删除跟踪

以下 delete-trail 命令删除名为 Trail1 的跟踪:

aws cloudtrail delete-trail --name Trail1
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeleteTrail

以下代码示例演示如何使用 describe-trails

AWS CLI

描述跟踪

以下 describe-trails 示例返回 Trail1Trail2 的设置。

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

输出:

{ "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" } ] }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeTrails

以下代码示例演示如何使用 describe-trails

AWS CLI

描述跟踪

以下 describe-trails 示例返回 Trail1Trail2 的设置。

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

输出:

{ "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" } ] }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeTrails

以下代码示例演示如何使用 get-event-selectors

AWS CLI

查看跟踪的事件选择器设置

以下 get-event-selectors 命令返回 Trail1 的设置:

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

输出:

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1" }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetEventSelectors

以下代码示例演示如何使用 get-event-selectors

AWS CLI

查看跟踪的事件选择器设置

以下 get-event-selectors 命令返回 Trail1 的设置:

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

输出:

{ "EventSelectors": [ { "IncludeManagementEvents": true, "DataResources": [], "ReadWriteType": "All" } ], "TrailARN": "arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1" }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetEventSelectors

以下代码示例演示如何使用 get-trail-status

AWS CLI

获取跟踪的状态

以下 get-trail-status 命令返回 Trail1 的交付和日志记录的详细信息:

aws cloudtrail get-trail-status --name Trail1

输出:

{ "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" }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetTrailStatus

以下代码示例演示如何使用 get-trail-status

AWS CLI

获取跟踪的状态

以下 get-trail-status 命令返回 Trail1 的交付和日志记录的详细信息:

aws cloudtrail get-trail-status --name Trail1

输出:

{ "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" }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetTrailStatus

以下代码示例演示如何使用 list-public-keys

AWS CLI

列出跟踪的所有公钥

以下 list-public-keys 命令返回与用于在指定时间范围对摘要文件进行签名的私钥对应的所有公钥。

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

输出:

{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListPublicKeys

以下代码示例演示如何使用 list-public-keys

AWS CLI

列出跟踪的所有公钥

以下 list-public-keys 命令返回与用于在指定时间范围对摘要文件进行签名的私钥对应的所有公钥。

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

输出:

{ "PublicKeyList": [ { "ValidityStartTime": 1453076702.0, "ValidityEndTime": 1455668702.0, "Value": "MIIBCgKCAQEAlSS3cl92HDycr/MTj0moOhas8habjrraXw+KzlWF0axSI2tcF+3iJ9BKQAVSKxGwxwu3m0wG3J+kUl1xboEcEPHYoIYMbgfSw7KGnuDKwkLzsQWhUJ0cIbOHASox1vv/5fNXkrHhGbDCHeVXm804c83nvHUEFYThr1PfyP/8HwrCtR3FX5OANtQCP61C1nJtSSkC8JSQUOrIP4CuwJjc+4WGDk+BGH5m9iuiAKkipEHWmUl8/P7XpfpWQuk4h8g3pXZOrNXr08lbh4d39svj7UqdhvOXoBISp9t/EXYuePGEtBdrKD9Dz+VHwyUPtBQvYr9BnkF88qBnaPNhS44rzwIDAQAB", "Fingerprint": "7f3f401420072e50a65a141430817ab3" } ] }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListPublicKeys

以下代码示例演示如何使用 list-tags

AWS CLI

列出跟踪的标签

以下 list-tags 命令列出 Trail1Trail2 的标签:

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

输出:

{ "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 详细信息,请参阅《AWS CLI 命令参考》中的 ListTags

以下代码示例演示如何使用 list-tags

AWS CLI

列出跟踪的标签

以下 list-tags 命令列出 Trail1Trail2 的标签:

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

输出:

{ "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 详细信息,请参阅《AWS CLI 命令参考》中的 ListTags

以下代码示例演示如何使用 lookup-events

AWS CLI

查找跟踪的事件

以下 lookup-events 命令按属性 EventName 查找 API 活动事件:

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

输出:

{ "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": [] } ] }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 LookupEvents

以下代码示例演示如何使用 lookup-events

AWS CLI

查找跟踪的事件

以下 lookup-events 命令按属性 EventName 查找 API 活动事件:

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

输出:

{ "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": [] } ] }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 LookupEvents

以下代码示例演示如何使用 put-event-selectors

AWS CLI

示例 1:使用高级事件选择器配置跟踪以记录管理事件和数据事件

您可以为高级事件选择器添加高级事件选择器和条件,一个跟踪的所有条件和选择器最多可添加 500 个值。您可以使用高级事件选择器记录所有可用的数据事件类型。您可以使用高级事件选择器或基本事件选择器,但不能同时使用两者。如果将高级事件选择器应用于跟踪,则所有现有的基本事件选择器都将被覆盖。

以下 put-event-selectors 示例为名为 myTrail 的跟踪创建高级事件选择器,用于记录所有管理事件,记录除一个 S3 存储桶之外的所有 S3 PutObject 和 DeleteObject API 调用,记录名为 myFunction 的 Lambda 函数的数据 API 调用,以及记录名为 myTopic 的 SNS 主题的 Publish API 调用。

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

输出:

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

有关更多信息,请参阅《AWS CloudTrail 用户指南》中的使用高级事件选择器记录事件

示例 2:为跟踪配置事件选择器以记录所有管理事件和数据事件

您可以为一个跟踪配置最多 5 个事件选择器和最多 250 个数据资源。事件选择器也称为基本事件选择器。您可以使用事件选择器记录 S3 对象、Lambda 函数和 DynnamoDB 表的管理事件和数据事件。要记录其他资源类型的数据事件,您必须使用高级事件选择器。

以下 put-event-selectors 示例为名为 TrailName 的跟踪创建一个事件选择器,以包括所有管理事件、两个 Amazon S3 存储桶/前缀组合的数据事件以及单个名为 hello-world-python-function 的 AWS Lambda 函数的数据事件。

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

输出:

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

有关更多信息,请参阅《AWS CloudTrail 用户指南》中的使用基本事件选择器记录事件

示例 3:为跟踪配置事件选择器以记录管理事件、S3 对象上的所有 S3 数据事件以及您账户中函数上的所有 Lambda 数据事件

以下 put-event-selectors 示例为名为 TrailName2 的跟踪创建一个事件选择器,包括所有管理事件以及 AWS 账户中所有 Amazon S3 存储桶和 AWS Lambda 函数的所有数据事件。

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

输出:

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

有关更多信息,请参阅《AWS CloudTrail 用户指南》中的使用基本事件选择器记录事件

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 PutEventSelectors

以下代码示例演示如何使用 put-event-selectors

AWS CLI

示例 1:使用高级事件选择器配置跟踪以记录管理事件和数据事件

您可以为高级事件选择器添加高级事件选择器和条件,一个跟踪的所有条件和选择器最多可添加 500 个值。您可以使用高级事件选择器记录所有可用的数据事件类型。您可以使用高级事件选择器或基本事件选择器,但不能同时使用两者。如果将高级事件选择器应用于跟踪,则所有现有的基本事件选择器都将被覆盖。

以下 put-event-selectors 示例为名为 myTrail 的跟踪创建高级事件选择器,用于记录所有管理事件,记录除一个 S3 存储桶之外的所有 S3 PutObject 和 DeleteObject API 调用,记录名为 myFunction 的 Lambda 函数的数据 API 调用,以及记录名为 myTopic 的 SNS 主题的 Publish API 调用。

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

输出:

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

有关更多信息,请参阅《AWS CloudTrail 用户指南》中的使用高级事件选择器记录事件

示例 2:为跟踪配置事件选择器以记录所有管理事件和数据事件

您可以为一个跟踪配置最多 5 个事件选择器和最多 250 个数据资源。事件选择器也称为基本事件选择器。您可以使用事件选择器记录 S3 对象、Lambda 函数和 DynnamoDB 表的管理事件和数据事件。要记录其他资源类型的数据事件,您必须使用高级事件选择器。

以下 put-event-selectors 示例为名为 TrailName 的跟踪创建一个事件选择器,以包括所有管理事件、两个 Amazon S3 存储桶/前缀组合的数据事件以及单个名为 hello-world-python-function 的 AWS Lambda 函数的数据事件。

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

输出:

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

有关更多信息,请参阅《AWS CloudTrail 用户指南》中的使用基本事件选择器记录事件

示例 3:为跟踪配置事件选择器以记录管理事件、S3 对象上的所有 S3 数据事件以及您账户中函数上的所有 Lambda 数据事件

以下 put-event-selectors 示例为名为 TrailName2 的跟踪创建一个事件选择器,包括所有管理事件以及 AWS 账户中所有 Amazon S3 存储桶和 AWS Lambda 函数的所有数据事件。

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

输出:

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

有关更多信息,请参阅《AWS CloudTrail 用户指南》中的使用基本事件选择器记录事件

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 PutEventSelectors

以下代码示例演示如何使用 remove-tags

AWS CLI

移除跟踪的标签

以下 remove-tags 命令移除 Trail1 的指定标签:

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name Key=location
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 RemoveTags

以下代码示例演示如何使用 remove-tags

AWS CLI

移除跟踪的标签

以下 remove-tags 命令移除 Trail1 的指定标签:

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-1:123456789012:trail/Trail1 --tags-list Key=name Key=location
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 RemoveTags

以下代码示例演示如何使用 start-logging

AWS CLI

为跟踪启动日志记录

以下 start-logging 命令为 Trail1 开启日志记录:

aws cloudtrail start-logging --name Trail1
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 StartLogging

以下代码示例演示如何使用 start-logging

AWS CLI

为跟踪启动日志记录

以下 start-logging 命令为 Trail1 开启日志记录:

aws cloudtrail start-logging --name Trail1
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 StartLogging

以下代码示例演示如何使用 stop-logging

AWS CLI

停止跟踪的日志记录

以下 stop-logging 命令为 Trail1 关闭日志记录:

aws cloudtrail stop-logging --name Trail1
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 StopLogging

以下代码示例演示如何使用 stop-logging

AWS CLI

停止跟踪的日志记录

以下 stop-logging 命令为 Trail1 关闭日志记录:

aws cloudtrail stop-logging --name Trail1
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 StopLogging

以下代码示例演示如何使用 update-subscription

AWS CLI

更新跟踪的配置设置

以下 update-subscription 示例更新跟踪以指定新的 S3 存储桶和 SNS 主题。

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

输出:

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" } }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateSubscription

以下代码示例演示如何使用 update-subscription

AWS CLI

更新跟踪的配置设置

以下 update-subscription 示例更新跟踪以指定新的 S3 存储桶和 SNS 主题。

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

输出:

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" } }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateSubscription

以下代码示例演示如何使用 update-trail

AWS CLI

更新跟踪

以下 update-trail 示例更新跟踪以使用现有存储桶进行日志传输。

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

输出:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateTrail

以下代码示例演示如何使用 update-trail

AWS CLI

更新跟踪

以下 update-trail 示例更新跟踪以使用现有存储桶进行日志传输。

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

输出:

{ "IncludeGlobalServiceEvents": true, "Name": "Trail1", "TrailARN": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail1", "LogFileValidationEnabled": false, "IsMultiRegionTrail": true, "S3BucketName": "amzn-s3-demo-bucket" }
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UpdateTrail

以下代码示例演示如何使用 validate-logs

AWS CLI

验证日志文件

以下 validate-logs 命令验证 Trail1 的日志:

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

输出:

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
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ValidateLogs

以下代码示例演示如何使用 validate-logs

AWS CLI

验证日志文件

以下 validate-logs 命令验证 Trail1 的日志:

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

输出:

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
  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ValidateLogs

本页内容

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。