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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用查看最近的管理事件 Amazon CLI

您可以使用aws cloudtrail lookup-events命令查找最近 90 天内当前 Amazon Web Services 区域 的 CloudTrail 管理事件。该aws cloudtrail lookup-events命令显示事件发生 Amazon Web Services 区域 的地点。

Lookup 支持管理事件的以下属性:

  • Amazon 访问密钥

  • 事件 ID

  • 事件名称

  • 事件源

  • 只读

  • 资源名称

  • 资源类型

  • 用户名称

所有属性是可选的。

lookup-events 命令包含以下选项:

  • --max-items <integer> — 命令输出中要返回的项目总数。如果可用的总项目数超过指定的值,则命令的输出中会提供 NextToken。要恢复分页,请在后续命令的 starting-token 参数中提供 NextToken 值。请勿在 Amazon CLI之外直接使用 NextToken 响应元素。

  • --start-time <timestamp> — 指定仅返回在指定时间之后或指定时间发生的事件。如果指定的开始时间晚于指定的结束时间,则将返回错误。

  • --lookup-attributes <integer> — 包含查找属性列表。目前,列表只能包含一个项目。

  • --generate-cli-skeleton <string> — 在不发送API请求的情况下将JSON骨架打印到标准输出。如果未提供任何值或值输入,则打印可用作参数的示例输入JSON--cli-input-json。同样,如果提供 yaml-input,它将打印一个可以与YAML一起使用的示例输入。--cli-input-yaml如果提供了值输出,它将验证命令输入并返回该命令的示例输出JSON。生成的JSON骨架在各版本之间不稳定, Amazon CLI 并且生成的JSON骨架中没有向后兼容性保证。

  • --cli-input-json <string> — 从提供的JSON字符串中读取参数。该JSON字符串遵循--generate-cli-skeleton参数提供的格式。如果在命令行中提供了其他参数,则这些值将覆盖JSON提供的值。不可能使用JSON提供的值传递任意二进制值,因为字符串将按字面意思处理。这不能与 --cli-input-yaml 参数一起指定。

有关使用 Amazon 命令行界面的一般信息,请参阅《Amazon Command Line Interface 用户指南》

先决条件

  • 要运行 Amazon CLI 命令,必须安装 Amazon CLI。有关信息,请参阅入门 Amazon CLI

  • 确保您的 Amazon CLI 版本高于 1.6.6。要验证CLI版本,请在命令行aws --version上运行。

  • 要为会 Amazon CLI 话设置帐户 Amazon Web Services 区域、和默认输出格式,请使用aws configure命令。有关更多信息,请参阅配置 Amazon 命令行界面

注意

这些 CloudTrail Amazon CLI 命令区分大小写。

获取命令行帮助

要查看 lookup-events 的命令行帮助,请键入以下命令:

aws cloudtrail lookup-events help

查找事件

重要

每个区域每个账户查找请求的速率限制为每秒两次。如果超过此限制,则会出现节流错误。

要查看最新的 10 个事件,请键入以下命令:

aws cloudtrail lookup-events --max-items 10

返回的事件看起来类似于以下虚构示例(为便于阅读,该示例已经过格式编排):

{ "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-items <integer>

可能的值介于 1 和 50 之间。以下示例返回一个事件。

aws cloudtrail lookup-events --max-items 1

按时间范围查找事件

可查找过去 90 天发生的事件。要指定时间范围,请键入以下命令:

aws cloudtrail lookup-events --start-time <timestamp> --end-time <timestamp>

--start-time <timestamp>在中UTC指定仅返回在指定时间之后或指定时间发生的事件。如果指定的开始时间晚于指定的结束时间,则将返回错误。

--end-time <timestamp>在中UTC指定仅返回在指定时间之前或指定时间发生的事件。如果指定的结束时间早于指定的开始时间,则将返回错误。

默认开始时间为过去 90 天内提供数据的最早日期。默认结束时间为在最接近当前时间发生事件的时间。

所有时间戳都显示在中。UTC

按属性查找事件

要按属性进行筛选,请键入以下命令:

aws cloudtrail lookup-events --lookup-attributes AttributeKey=<attribute>,AttributeValue=<string>

您只能为每个 lookup-events 命令指定一个属性密钥/值对。AttributeKey 的有效值如下所示。值的名称区分大小写。

  • AccessKeyId

  • EventId

  • EventName

  • EventSource

  • ReadOnly

  • ResourceName

  • ResourceType

  • Username

的最大长度AttributeValue为 2000 个字符。在 2000 个字符限制中,以下字符(_ ,'、' \\n '、'、')算作两个字符。

属性查找示例

以下示例命令返回区域 cn-northwest-1 中的事件,这允许您查看全球服务事件。Replace(替换) 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

以下示例命令返回指定的事件 CloudTrailEventId

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 CLI 对于某些 Amazon 服务,有两个参数--cli-input-json,即--generate-cli-skeleton和,可用于生成JSON模板,您可以修改该模板并将其用作--cli-input-json参数的输入。本部分介绍如何将这些参数和 aws cloudtrail lookup-events 结合使用。有关更多常规信息,请参阅Amazon CLI 骨架和输入文件

通过从文件中获取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": "2023-11-01", "EndTime": "2023-12-12", "MaxResults": 10 }
  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 条目,则不再返回结果。