使用 Amazon CLI 查看 CloudTrail 事件
重要
自 2021 年 11 月 22 日 起,Amazon CloudTrail 将使 Amazon CloudFront 事件仅在已处理事件的区域中可用,即中国(宁夏)区域 cn-northwest-1。
对于监控全球服务事件的跟踪,请务必将中国(北京)区域 cn-north-1 的单区域跟踪转换为多区域跟踪,以包括中国(宁夏)区域 cn-northwest-1 的事件。有关捕获 CloudFront 事件的更多信息,请参阅此用户指南前面部分的 启用和禁用全球服务事件记录。在引用 CloudFront 事件时,还应记得将引用中国(北京)区域 cn-north-1 的 lookup-events
API 调用的区域更新为中国(宁夏)区域 cn-northwest-1。有关更新查找事件的更多信息(包括 CLI 命令示例),请参阅本章节后面部分的按属性查找事件。
您可以使用 aws cloudtrail lookup-events 命令查找过去 90 天的 CloudTrail 事件。此 lookup-events
命令具有以下选项:
-
--max-results
-
--start-time
-
--lookup-attributes
-
--next-token
-
--generate-cli-skeleton
-
--cli-input-json
本主题介绍了这些选项。有关使用 Amazon 命令行界面的一般信息,请参阅 Amazon Command Line Interface 用户指南。
先决条件
-
要运行 Amazon CLI 命令,必须先安装 Amazon CLI。有关信息,请参阅安装 Amazon 命令行界面。
-
确保您的 Amazon CLI 版本高于 1.6.6。要验证 CLI 版本,请在命令行上运行 aws --version。
-
要设置 Amazon CLI 会话的账户、区域和默认输出格式,请使用 aws configure 命令。有关更多信息,请参阅配置 Amazon 命令行界面。
注意
CloudTrail Amazon CLI 命令区分大小写。
获取命令行帮助
要查看 lookup-events
的命令行帮助,请键入以下命令:
aws cloudtrail lookup-events help
查找事件
要查看最新的 10 个事件,请键入以下命令:
aws cloudtrail lookup-events
返回的事件看起来类似于以下虚构示例(为便于阅读,该示例已经过格式编排):
{ "NextToken": "kbOt5LlZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juy3CIZW8=", "Events": [ { "EventId": "0ebbaee4-6e67-431d-8225-ba0d81df5972", "Username": "root", "EventTime": 1424476529.0, "CloudTrailEvent": "{ \"eventVersion\":\"1.02\", \"userIdentity\":{ \"type\":\"Root\", \"principalId\":\"111122223333\", \"arn\":\"arn:aws:iam::111122223333:root\", \"accountId\":\"111122223333\"}, \"eventTime\":\"2015-02-20T23:55:29Z\", \"eventSource\":\"signin.amazonaws.com\", \"eventName\":\"ConsoleLogin\", \"awsRegion\":\"us-east-2\", \"sourceIPAddress\":\"203.0.113.4\", \"userAgent\":\"Mozilla/5.0\", \"requestParameters\":null, \"responseElements\":{\"ConsoleLogin\":\"Success\"}, \"additionalEventData\":{ \"MobileVersion\":\"No\", \"LoginTo\":\"https://console.aws.amazon.com/console/home", \"MFAUsed\":\"No\"}, \"eventID\":\"0ebbaee4-6e67-431d-8225-ba0d81df5972\", \"eventType\":\"AwsApiCall\", \"recipientAccountId\":\"111122223333\"}", "EventName": "ConsoleLogin", "Resources": [] } ] }
有关输出中与查找相关的字段的说明,请参阅本文档后面的查找输出字段部分。有关 CloudTrail 事件中的字段的说明,请参阅 CloudTrail 记录内容。
指定要返回的事件数目
要指定要返回的事件数目,请键入以下命令:
aws cloudtrail lookup-events --max-results
<integer>
<integer>
的默认值为 10。可能的值介于 1 和 50 之间。以下示例返回一个结果。
aws cloudtrail lookup-events --max-results 1
按时间范围查找事件
可查找过去 90 天发生的事件。要指定时间范围,请键入以下命令:
aws cloudtrail lookup-events --start-time
<timestamp>
--end-time<timestamp>
--start-time
指定仅返回在指定时间或之后发生的事件。如果指定的开始时间晚于指定的结束时间,则将返回错误。<timestamp>
--end-time
指定仅返回在指定时间或之前发生的事件。如果指定的结束时间早于指定的开始时间,则将返回错误。<timestamp>
默认开始时间为过去 90 天内提供数据的最早日期。默认结束时间为在最接近当前时间发生事件的时间。
有效 <timestamp>
格式
--start-time
和 --end-time
属性接受 UNIX 时间值或有效的等效项。
以下是有效格式的示例。可用连字符或正斜杠将日期、月份和年份值分隔开来。如果有空格,则必须使用双引号。
1422317782 1422317782.0 01-27-2015 01-27-2015,01:16PM "01-27-2015, 01:16 PM" "01/27/2015, 13:16" 2015-01-27 "2015-01-27, 01:16 PM"
按属性查找事件
要按属性进行筛选,请键入以下命令:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=
<attribute>
,AttributeValue=<string>
您只能为每个 lookup-events 命令指定一个属性密钥/值对。以下是AttributeKey
的值。值的名称区分大小写。
-
AccessKeyId
-
EventId
-
EventName
-
EventSource
-
ReadOnly
-
ResourceName
-
ResourceType
-
Username
属性查找示例
以下示例命令返回区域 cn-northwest-1
中的事件,它允许您查看全球服务事件。用您的配置的适当值替换 gseService
。
aws cloudtrail --region cn-northwest-1 lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=
gseService
以下示例命令返回 AccessKeyId
值为 AKIAIOSFODNN7EXAMPLE
的事件。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=AccessKeyId,AttributeValue=AKIAIOSFODNN7EXAMPLE
以下示例命令返回指定的 CloudTrail EventId
的事件。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventId,AttributeValue=b5cc8c40-12ba-4d08-a8d9-2bceb9a3e002
以下示例命令返回 EventName
值为 RunInstances
的事件。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances
以下示例命令返回 EventSource
值为 iam.amazonaws.com
的事件。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventSource,AttributeValue=iam.amazonaws.com
以下示例命令返回写入事件。它不包含读取事件(如 GetBucketLocation
和 DescribeStream
)。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=ReadOnly,AttributeValue=false
以下示例命令返回 ResourceName
值为 CloudTrail_CloudWatchLogs_Role
的事件。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceName,AttributeValue=CloudTrail_CloudWatchLogs_Role
以下示例命令返回 ResourceType
值为 AWS::S3::Bucket
的事件。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::S3::Bucket
以下示例命令返回 Username
值为 root
的事件。
aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=root
指定下一页结果
要从 lookup-events
命令获取下一页结果,请键入以下命令:
aws cloudtrail lookup-events
<same parameters as previous command>
--next-token=<token>
其中,<token>
的值来自于上一个命令输出的第一个字段。
在命令中使用 --next-token
时,您必须使用与上一个命令中相同的参数。例如,假设您运行以下命令:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=root
要获取下一页结果,您的下一个命令将如下所示:
aws cloudtrail lookup-events --lookup-attributes AttributeKey=Username,AttributeValue=root --next-token=kbOt5LlZe++mErCebpy2TgaMgmDvF1kYGFcH64JSjIbZFjsuvrSqg66b5YGssKutDYIyII4lrP4IDbeQdiObkp9YAlju3oXd12juy3CIZW8=
从文件中获取 JSON 输入
一些 Amazon 服务的 Amazon CLI 具有两个参数(--generate-cli-skeleton
和 --cli-input-json
),可用于生成 JSON 模板,您可以修改模板并用作 --cli-input-json
参数的输入。本部分介绍如何将这些参数和 aws cloudtrail lookup-events
结合使用。有关更多一般信息,请参阅生成 CLI 框架和 CLI 输入 JSON 参数。
通过从文件中获取 JSON 输入来查找 CloudTrail 事件
-
通过将
lookup-events
输出重定向到文件来创建与--generate-cli-skeleton
结合使用的输入模板,如以下示例所示。aws cloudtrail lookup-events --generate-cli-skeleton > LookupEvents.txt
生成的模板文件(此示例中为 LookupEvents.txt)如下所示:
{ "LookupAttributes": [ { "AttributeKey": "", "AttributeValue": "" } ], "StartTime": null, "EndTime": null, "MaxResults": 0, "NextToken": "" }
-
可使用文本编辑器根据需要修改 JSON。JSON 输入只能包含指定的值。
重要
必须先从模板中删除所有空值,然后才能使用该模板。
以下示例指定一个时间范围和要返回的结果的最大数目。
{ "StartTime": "2015-01-01", "EndTime": "2015-01-27", "MaxResults": 2 }
-
要将编辑后的文件用作输入,请使用语法
--cli-input-json file://
<filename>
,如以下示例所示:aws cloudtrail lookup-events --cli-input-json file://LookupEvents.txt
注意
您可在 --cli-input-json
所在的命令行中使用其他参数。
查找输出字段
- 事件
-
基于查找属性和已指定的时间范围的查找事件的列表。该事件列表按时间进行排序,最新的事件排在第一位。每个条目均包含有关查找请求的信息,还包括已检索的 CloudTrail 事件的字符串表示形式。
以下条目描述每个查找事件中的字段。
- CloudTrailEvent
-
一个包含已返回事件的对象表示形式的 JSON 字符串。有关已返回的每个元素的信息,请参阅记录正文内容。
- EventId
-
一个包含已返回事件的 GUID 的字符串。
- EventName
-
一个包含已返回事件的名称的字符串。
- EventSource
-
已将请求发出到的 Amazon 服务。
- EventTime
-
事件的日期和时间(采用 UNIX 时间格式)。
- 资源
-
由已返回的事件引用的资源列表。每个资源条目指定一个资源类型和一个资源名称。
- ResourceName
-
一个包含由事件引用的资源名称的字符串。
- ResourceType
-
一个包含由事件引用的资源类型的字符串。如果无法确定资源类型,则返回 null。
- 用户名
-
一个包含已返回事件的账户用户名称的字符串。
- NextToken
-
用于从上一个
lookup-events
命令获取下一页结果的字符串。要使用该令牌,参数必须与原始命令中的参数相同。如果输出中未显示任何NextToken
条目,则不再返回结果。