使用 Amazon CLI 查看 CloudTrail 事件 - Amazon CloudTrail
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 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

以下示例命令返回写入事件。它不包含读取事件(如 GetBucketLocationDescribeStream)。

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 事件
  1. 通过将 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": "" }
  2. 可使用文本编辑器根据需要修改 JSON。JSON 输入只能包含指定的值。

    重要

    必须先从模板中删除所有空值,然后才能使用该模板。

    以下示例指定一个时间范围和要返回的结果的最大数目。

    { "StartTime": "2015-01-01", "EndTime": "2015-01-27", "MaxResults": 2 }
  3. 要将编辑后的文件用作输入,请使用语法 --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 条目,则不再返回结果。