

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

# 使用查看最近的管理事件 AWS CLI
<a name="view-cloudtrail-events-cli"></a>

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

Lookup 支持管理事件的以下属性：
+ AWS 访问密钥
+ 事件 ID
+ 事件名称
+ 事件源
+ 只读
+ 资源名称
+ 资源类型
+ 用户名

所有属性是可选的。

[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/lookup-events.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/cloudtrail/lookup-events.html) 命令包含以下选项：
+ `--max-items`*<integer>*— 命令输出中要返回的项目总数。如果可用的总项目数超过指定的值，则命令的输出中会提供 `NextToken`。要恢复分页，请在后续命令的 starting-token 参数中提供 `NextToken` 值。请勿在 AWS CLI之外直接使用 `NextToken` 响应元素。
+ `--start-time`*<timestamp>*— 指定仅返回在指定时间之后或指定时间发生的事件。如果指定的开始时间晚于指定的结束时间，则将返回错误。
+ `--lookup-attributes`*<integer>*— 包含查找属性列表。目前，列表只能包含一个项目。
+ `--generate-cli-skeleton`*<string>*— 在不发送 API 请求的情况下将 JSON 框架打印到标准输出。如果未提供任何值或值输入，则打印一个可用作 `--cli-input-json` 参数的示例输入 JSON。同理，如果提供了 yaml 输入，则打印一个可与 `--cli-input-yaml` 一起使用的示例输入 YAML。如果提供了值输出，则验证命令输入并返回该命令的示例输出 JSON。生成的 JSON 框架在各版本之间不稳定， AWS CLI 并且生成的 JSON 框架中没有向后兼容性保证。
+ `--cli-input-json`*<string>*— 从提供的 JSON 字符串中读取参数。JSON 字符串遵循 `--generate-cli-skeleton` 参数提供的格式。如果命令行中提供了其他参数，这些值会覆盖 JSON 提供的值。无法使用 JSON 提供的值传递任意二进制值，因为会按字面意思处理字符串。这不能与 `--cli-input-yaml` 参数一起指定。

有关使用 AWS 命令行界面的一般信息，请参阅《[AWS Command Line Interface 用户指南》](https://docs.aws.amazon.com/cli/latest/userguide/)。

**Contents**
+ [先决条件](#aws-cli-prerequisites-for-aws-cloudtrail)
+ [获取命令行帮助](#getting-command-line-help)
+ [查找事件](#looking-up-events-with-the-aws-cli)
+ [指定要返回的事件数目](#specify-the-number-of-events-to-return)
+ [按时间范围查找事件](#look-up-events-by-time-range)
+ [按属性查找事件](#look-up-events-by-attributes)
  + [属性查找示例](#attribute-lookup-example)
+ [指定下一页结果](#specify-next-page-of-lookup-results)
+ [从文件中获取 JSON 输入](#json-input-from-file)
+ [查找输出字段](#view-cloudtrail-events-cli-output-fields)

## 先决条件
<a name="aws-cli-prerequisites-for-aws-cloudtrail"></a>
+ 要运行 AWS CLI 命令，必须安装 AWS CLI。有关信息，请参阅 [Get started with the AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)。
+ 确保您的 AWS CLI 版本高于 1.6.6。要验证 CLI 版本，请在命令行上运行 **aws --version**。
+ 要为会 AWS CLI 话设置帐户 AWS 区域、和默认输出格式，请使用**aws configure**命令。有关更多信息，请参阅[配置 AWS 命令行界面](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)。

**注意**  
这些 CloudTrail AWS CLI 命令区分大小写。

## 获取命令行帮助
<a name="getting-command-line-help"></a>

要查看 `lookup-events` 的命令行帮助，请键入以下命令：

```
aws cloudtrail lookup-events help
```

## 查找事件
<a name="looking-up-events-with-the-aws-cli"></a>

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

要查看最新的 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": []
        }
    ]
}
```

有关输出中与查找相关的字段的说明，请参阅本文档后面的[查找输出字段](#view-cloudtrail-events-cli-output-fields)部分。有关 CloudTrail 事件中字段的说明，请参阅[CloudTrail 记录管理、数据和网络活动事件的内容](cloudtrail-event-reference-record-contents.md)。

## 指定要返回的事件数目
<a name="specify-the-number-of-events-to-return"></a>

要指定要返回的事件数目，请键入以下命令：

```
aws cloudtrail lookup-events --max-items <integer>
```

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

```
aws cloudtrail lookup-events --max-items 1
```

## 按时间范围查找事件
<a name="look-up-events-by-time-range"></a>

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

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

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

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

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

所有时间戳均采用 UTC 显示。

## 按属性查找事件
<a name="look-up-events-by-attributes"></a>

要按属性进行筛选，请键入以下命令：

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

您只能为每个**lookup-events**命令指定一个属性 key/value 对。`AttributeKey` 的有效值如下所示。值的名称区分大小写。
+ `AccessKeyId`
+ `EventId`
+ `EventName`
+ `EventSource`
+ `ReadOnly`
+ `ResourceName`
+ `ResourceType`
+ `Username`

`AttributeValue` 的最大长度为 2000 个字符。在 2000 个字符限制中，以下字符（“`_`”、“` `”、“`,`”、“`\\n`”）算作两个字符。

### 属性查找示例
<a name="attribute-lookup-example"></a>

以下示例命令返回 `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
```

## 指定下一页结果
<a name="specify-next-page-of-lookup-results"></a>

要从 `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 输入
<a name="json-input-from-file"></a>

 AWS CLI 对于某些 AWS 服务，有两个参数，即`--generate-cli-skeleton`和`--cli-input-json`，可用于生成 JSON 模板，您可以修改该模板并将其用作`--cli-input-json`参数的输入。本部分介绍如何将这些参数和 `aws cloudtrail lookup-events` 结合使用。有关更多常规信息，请参阅 [AWS CLI skeletons and input files](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-skeleton.html)。

**通过从文件中获取 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": ""
   }
   ```

1. 可使用文本编辑器根据需要修改 JSON。JSON 输入只能包含指定的值。
**重要**  
必须先从模板中删除所有空值，然后才能使用该模板。

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

   ```
   {
       "StartTime": "2023-11-01",
       "EndTime": "2023-12-12",
       "MaxResults": 10
   }
   ```

1. 要使用编辑后的文件作为输入，请使用语法 `--cli-input-json file://`*<filename>*，如下例所示：

   ```
   aws cloudtrail lookup-events --cli-input-json file://LookupEvents.txt
   ```

**注意**  
您可在 `--cli-input-json` 所在的命令行中使用其他参数。

## 查找输出字段
<a name="view-cloudtrail-events-cli-output-fields"></a>

**Events**  
基于查找属性和已指定的时间范围的查找事件的列表。该事件列表按时间进行排序，最新的事件排在第一位。每个条目都包含有关查找请求的信息，并包含检索到 CloudTrail 的事件的字符串表示形式。  
以下条目描述每个查找事件中的字段。

**CloudTrailEvent**  
一个包含已返回事件的对象表示形式的 JSON 字符串。有关已返回的每个元素的信息，请参阅[记录正文内容](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html)。

**EventId**  
一个包含已返回事件的 GUID 的字符串。

**EventName**  
一个包含已返回事件的名称的字符串。

**EventSource**  
向其发出请求的 AWS 服务。

**EventTime**  
事件的日期和时间（采用 UNIX 时间格式）。

**资源**  
由已返回的事件引用的资源列表。每个资源条目指定一个资源类型和一个资源名称。

**ResourceName**  
一个包含由事件引用的资源名称的字符串。

**ResourceType**  
一个包含由事件引用的资源类型的字符串。如果无法确定资源类型，则返回 null。

**用户名**  
一个包含已返回事件的账户用户名称的字符串。

**NextToken**  
用于从上一个 `lookup-events` 命令获取下一页结果的字符串。要使用该令牌，参数必须与原始命令中的参数相同。如果输出中未显示任何 `NextToken` 条目，则不再返回结果。