AWS CloudTrail
用户指南 (版本 1.0)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 AWS CLI 管理跟踪

AWS CLI 包括其他几个可帮助您管理跟踪的命令。这些命令将标签添加到跟踪、获取跟踪状态、对跟踪启动和停止日志记录以及删除跟踪。您必须从创建跟踪的同一个 AWS 区域(其主区域)运行这些命令。当使用 AWS CLI 时,请记住您的命令在为您的配置文件配置的 AWS 区域中运行。如果您想要在不同的区域中运行命令,可以为配置文件更改默认区域,或者与命令一起使用 --region 参数。

将一个或多个标签添加到跟踪

要将一个或多个标签添加到现有跟踪,请使用 add-tags 命令。

以下示例将名为 Owner 和值为 Mary 的标签添加到 美国东部(俄亥俄州) 区域中 ARN 为 arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail 的跟踪。

aws cloudtrail add-tags --resource-id arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail --tags-list Key=Owner,Value=Mary --region us-east-2

如果成功,该命令不返回任何内容。

列出一个或多个跟踪的标签

要查看与一个或多个现有跟踪相关联的标签,请使用 list-tags 命令。

以下示例列出了 Trail1Trail2 的标签。

aws cloudtrail list-tags --resource-id-list arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1 arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail2

如果成功,该命令返回类似以下内容的输出。

{ "ResourceTagList": [ { "ResourceId": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1", "TagsList": [ { "Value": "Alice", "Key": "Name" }, { "Value": "Ohio", "Key": "Location" } ] }, { "ResourceId": "arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail2", "TagsList": [ { "Value": "Bob", "Key": "Name" } ] } ] }

从跟踪中删除一个或多个标签

要从现有跟踪中删除一个或多个标签,请使用 remove-tags 命令。

以下示例从 美国东部(俄亥俄州) 区域中 ARN 为 arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1 的跟踪删除名为 LocationName 的标签。

aws cloudtrail remove-tags --resource-id arn:aws:cloudtrail:us-east-2:123456789012:trail/Trail1 --tags-list Key=Name Key=Location --region us-east-2

如果成功,该命令不返回任何内容。

检索跟踪设置和跟踪状态

使用 describe-trails 命令来检索有关 AWS 区域中跟踪的信息。以下示例返回 美国东部(俄亥俄州) 区域中配置的跟踪的信息。

aws cloudtrail describe-trails --region us-east-2

如果命令成功,则将显示类似于以下内容的输出。

{ "trailList": [ { "Name": "my-trail", "S3BucketName": "my-bucket", "S3KeyPrefix": "my-prefix", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "us-east-2" "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": false, "SnsTopicName": "my-topic", "IsOrganizationTrail": false, }, { "Name": "my-special-trail", "S3BucketName": "another-bucket", "S3KeyPrefix": "example-prefix", "IncludeGlobalServiceEvents": false, "IsMultiRegionTrail": false, "HomeRegion": "us-east-2", "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-special-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": true, "IsOrganizationTrail": false }, { "Name": "my-org-trail", "S3BucketName": "my-bucket", "S3KeyPrefix": "my-prefix", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "us-east-1" "TrailARN": "arn:aws:cloudtrail:us-east-2:123456789012:trail/my-org-trail", "LogFileValidationEnabled": false, "HasCustomEventSelectors": false, "SnsTopicName": "my-topic", "IsOrganizationTrail": true } ] }

运行 get-trail-status 命令检索跟踪的状态。您必须从创建该命令的 AWS 区域(主区域)中运行它,或者您必须使用 --region 参数指定该区域。

注意

如果跟踪是组织跟踪,并且您是 AWS Organizations 组织中的成员账户,则必须提供该跟踪的完整 ARN,而不仅仅是名称。

aws cloudtrail get-trail-status --name my-trail

如果命令成功,则将显示类似于以下内容的输出。

{ "LatestDeliveryTime": 1441139757.497, "LatestDeliveryAttemptTime": "2015-09-01T20:35:57Z", "LatestNotificationAttemptSucceeded": "2015-09-01T20:35:57Z", "LatestDeliveryAttemptSucceeded": "2015-09-01T20:35:57Z", "IsLogging": true, "TimeLoggingStarted": "2015-09-01T00:54:02Z", "StartLoggingTime": 1441068842.76, "LatestDigestDeliveryTime": 1441140723.629, "LatestNotificationAttemptTime": "2015-09-01T20:35:57Z", "TimeLoggingStopped": "" }

除了前面的 JSON 代码中显示的字段外,在出现 Amazon SNS 或 Amazon S3 错误的情况下,状态还包含以下字段:

  • LatestNotificationError。在主题订阅失败的情况下,包含 Amazon SNS 发出的错误。

  • LatestDeliveryError。在 CloudTrail 无法将日志文件传输到存储桶的情况下,包含 Amazon S3 发出的错误。

配置事件选择器

要查看跟踪的事件选择器设置,请运行 get-event-selectors 命令。您必须从创建该命令的 AWS 区域(主区域)中运行它,或者您必须使用 --region 参数指定该区域。

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

注意

如果跟踪是组织跟踪,并且您是 AWS Organizations 组织中的成员账户,则必须提供该跟踪的完整 ARN,而不仅仅是名称。

以下示例返回跟踪的事件选择器的默认设置。

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

要创建事件选择器,请运行 put-event-selectors 命令。当事件在您的账户中发生时,CloudTrail 将评估您的跟踪配置。如果事件匹配跟踪的任何事件选择器,则跟踪将处理并记录事件。您可以为一个跟踪配置最多 5 个事件选择器和最多 250 个数据资源。有关更多信息,请参阅记录跟踪的数据和管理事件

示例:带有特定事件选择器的跟踪

以下示例为名为 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:::mybucket/prefix","arn:aws:s3:::mybucket2/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:::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" }

示例:记录所有事件的跟踪

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

注意

如果跟踪仅应用于一个区域,则只记录该区域的事件,即使事件选择器参数指定所有 Amazon S3 存储桶和 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" }

停止和启动跟踪的日志记录

以下命令启动和停止 CloudTrail 日志记录。

aws cloudtrail start-logging --name awscloudtrail-example
aws cloudtrail stop-logging --name awscloudtrail-example

注意

在删除存储桶之前,运行 stop-logging 命令以停止向存储桶传送事件。如果不停止日志记录,CloudTrail 将在有限时段内尝试将日志文件传送到具有相同名称的存储桶。

删除跟踪

可使用以下命令删除跟踪。您只能从创建跟踪的区域(主区域)中删除跟踪。

aws cloudtrail delete-trail --name awscloudtrail-example

在删除跟踪时,请不要删除 Amazon S3 存储桶或与该存储桶关联的 Amazon SNS 主题。可使用 AWS 管理控制台、AWS CLI 或服务 API 单独删除这些资源。