

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

# CloudTrail 使用验证日志文件的完整性 Amazon CLI
<a name="cloudtrail-log-file-validation-cli"></a>

要使用验证日志 Amazon Command Line Interface，请使用 CloudTrail `validate-logs`命令。此命令使用提交到 Amazon S3 存储桶的摘要文件执行验证。有关摘要文件的信息，请参阅 [CloudTrail 摘要文件结构](cloudtrail-log-file-validation-digest-file-structure.md)。

 Amazon CLI 允许您检测以下类型的更改：
+ 修改或删除 CloudTrail 日志文件
+ 修改或删除 CloudTrail 摘要文件
+ 上述两者的修改或删除

**注意**  
仅 Amazon CLI 验证摘要文件引用的日志文件。有关更多信息，请参阅 [检查特定文件是否由 CloudTrail](#cloudtrail-log-file-validation-cli-validate-logs-check-file)。

## 先决条件
<a name="cloudtrail-log-file-validation-cli-prerequisites"></a>

要使用验证日志文件的完整性 Amazon CLI，必须满足以下条件：
+ 您必须联机连接到 Amazon。
+ 您必须拥有包含摘要文件和日志文件的 Amazon S3 存储桶的读取访问权限。
+ 摘要和日志文件不得从 CloudTrail 交付它们的原始 Amazon S3 位置移出。
+ 执行命令的角色必须有权为跟踪引用的每个 S3 存储桶调用 `ListObjects`、`GetObject` 和 `GetBucketLocation`。

**注意**  
 Amazon CLI无法验证下载到本地磁盘的日志文件。有关自行创建验证工具的指南，请参阅 [CloudTrail 日志文件完整性验证的自定义实现](cloudtrail-log-file-custom-validation.md)。

## validate-logs
<a name="cloudtrail-log-file-validation-cli-validate-logs"></a>

### 语法
<a name="cloudtrail-log-file-validation-cli-validate-logs-syntax"></a>

`validate-logs` 采用下面的语法形式。括号内为可选参数。

`aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [--end-time <end-time>] [--s3-bucket <amzn-s3-demo-bucket>] [--s3-prefix <prefix>] [--account-id <account-id>] [--verbose]` 

**注意**  
`validate-logs` 命令与特定区域相关。必须指定`--region`全局选项才能验证特定日志的日志 Amazon Web Services 区域。

### 选项
<a name="cloudtrail-log-file-validation-cli-validate-logs-options"></a>

`validate-logs` 提供以下命令行选项。`--trail-arn` 和 `--start-time` 为必需选项。组织跟踪还需要 `--account-id` 选项。

`--start-time`  
指定将验证在指定 UTC 时间戳值当时或之后提交的日志文件。示例：`2015-01-08T05:21:42Z`。

`--end-time`  
（可选）指定将验证在指定 UTC 时间戳值当时或之前提交的日志文件。默认值为当前 UTC 时间（`Date.now()`）。示例：`2015-01-08T12:31:41Z`。  
对于指定的时间范围，`validate-logs` 命令只检查其对应的摘要文件引用的日志文件。不检查 Amazon S3 存储桶中的任何其他日志文件。有关更多信息，请参阅 [检查特定文件是否由 CloudTrail](#cloudtrail-log-file-validation-cli-validate-logs-check-file)。

`--s3-bucket`  
（可选）指定存储摘要文件的 Amazon S3 存储桶。如果未指定存储桶名称，则 Amazon CLI 将通过调用来检索存储桶名称`DescribeTrails()`。

`--s3-prefix`  
（可选）指定表示摘要文件存储位置的 Amazon S3 前缀。如果未指定，则 Amazon CLI 将通过调用来检索它`DescribeTrails()`。  
仅在当前前缀不同于指定时间范围期间使用的前缀时，才应使用此选项。

`--account-id`  
也可选择指定用于验证日志的账户。组织跟踪需要此参数来验证组织内特定账户的日志。

`--trail-arn`  
指定要验证的跟踪的 Amazon 资源名称（ARN）。跟踪 ARN 遵循的格式。  

```
arn:aws:cloudtrail:us-east-2:111111111111:trail/MyTrailName
```
要获取跟踪的 ARN，您可以先使用 `describe-trails` 命令，然后再运行 `validate-logs`。  
如果在您指定的时间范围内日志文件被提交到多个存储桶，而您需要将对日志文件的验证限制在一个存储桶，则除了跟踪 ARN，您可能还需要指定存储桶的名称和前缀。

`--verbose`  
（可选）输出指定时间范围内的每个日志文件或摘要文件的验证信息。输出指示文件保持不变还是发生过修改或已删除。在非详细模式（默认）下，仅当验证失败时才返回信息。

### 示例
<a name="cloudtrail-log-file-validation-cli-validate-logs-example"></a>

下面的示例验证从指定起始时间到当前时间的日志文件，使用为当前跟踪配置的 Amazon S3 存储桶并指定详细输出。

```
aws cloudtrail validate-logs --start-time 2015-08-27T00:00:00Z --end-time 2015-08-28T00:00:00Z --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/my-trail-name --verbose
```

### `validate-logs` 的工作原理
<a name="cloudtrail-log-file-validation-cli-validate-logs-how-it-works"></a>

`validate-logs` 命令从验证指定时间范围内最新的摘要文件开始。首先，它验证摘要文件是否已从其声明的所属位置下载。换句话说，如果 CLI 从 S3 位置 `p1` 下载摘要文件 `df1`，则 validate-logs 会验证 `p1 == df1.digestS3Bucket + '/' + df1.digestS3Object`。

如果摘要文件的签名有效，则它检查摘要文件中引用的每个日志的哈希值。之后，此命令按时间倒序连续验证之前的摘要文件及其引用的日志文件。它继续进行这一操作，直到到达指定的 `start-time` 值或摘要链结束为止。如果有摘要文件缺失或无效，则此命令在输出中指出无法验证的时间范围。该`validate-logs`命令首先在标准摘要链上运行。完成标准摘要验证后，它会验证回填摘要文件（如果存在）。回填摘要形成一个单独的验证链，并且独立于标准摘要进行处理。

## 验证结果
<a name="cloudtrail-log-file-validation-cli-results"></a>

验证结果从摘要头开始，采用以下格式：

```
Validating log files for trail trail_ARN  between time_stamp and time_stamp
```

主输出的每一行都包含以下格式的单个摘要或日志文件的验证结果。前缀为前缀的行`(backfill)`表示回填摘要文件，这些文件与标准摘要文件形成单独的验证链。

```
<optional (backfill)> <Digest file | Log file> <S3 path> <Validation Message>
```

下表描述了可能会出现的日志文件和摘要文件的验证消息。


****  

| 文件类型 | 验证消息 | 说明 | 
| --- | --- | --- | 
| Digest file | valid | 摘要文件签名有效。可以检查所引用的日志文件。仅详细模式包含此消息。 | 
| Digest file | INVALID: has been moved from its original location | 检索摘要文件的 S3 存储桶或 S3 对象与摘要文件中记录的 S3 存储桶或 S3 对象位置不匹配。 | 
| Digest file | INVALID: invalid format | 摘要文件格式无效。无法验证与摘要文件表示的时间范围对应的日志文件。 | 
| Digest file | INVALID: not found | 找不到摘要文件。无法验证与摘要文件表示的时间范围对应的日志文件。 | 
| Digest file | INVALID: public key not found for fingerprint fingerprint | 找不到与摘要文件中记录的指纹对应的公有密钥。无法验证摘要文件。 | 
| Digest file | INVALID: signature verification failed | 摘要文件签名无效。摘要文件无效，无法验证其引用的日志文件，也无法确定其中所列的 API 活动。 | 
| Digest file | INVALID: Unable to load PKCS \$11 key with fingerprint fingerprint | 无法加载含有指定指纹的 DER 编码公有密钥（PKCS \$11 格式），无法验证摘要文件。 | 
| Log file | valid | 日志文件已验证且自提交以来未发生过修改。仅详细模式包含此消息。 | 
| Log file | INVALID: hash value doesn't match | 日志文件的哈希值不匹配。日志文件自 CloudTrail 提交后发生过修改。 | 
| Log file | INVALID: invalid format | 日志文件格式无效。无法验证日志文件。 | 
| Log file | INVALID: not found | 找不到日志文件，无法验证。 | 

输出包含有关返回结果的摘要信息。

## 示例输出
<a name="cloudtrail-log-file-validation-cli-results-examples"></a>

### 详细
<a name="cloudtrail-log-file-validation-cli-results-verbose"></a>

下面的示例 `validate-logs` 命令使用 `--verbose` 标志并生成后面的示例输出。`[...]` 表示示例输出已省略。

```
aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2015-08-31T22:00:00Z --end-time 2015-09-01T19:17:29Z --verbose
```

```
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2015-08-31T22:00:00Z and 2015-09-01T19:17:29Z
                                       
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/09/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T201728Z.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1925Z_WZZw1RymnjCRjxXc.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1915Z_POuvV87nu6pfAV2W.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1930Z_l2QgXhAKVm1QXiIA.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1920Z_eQJteBBrfpBCqOqw.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1950Z_9g5A6qlR2B5KaRdq.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1920Z_i4DNCC12BuXd6Ru7.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1915Z_Sg5caf2RH6Jdx0EJ.json.gz	valid
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/09/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T191728Z.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1910Z_YYSFiuFQk4nrtnEW.json.gz	valid
[...]
Log file       s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T1055Z_0Sfy6m9f6iBzmoPF.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T1040Z_lLa3QzVLpOed7igR.json.gz	valid

Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T101728Z.json.gz	INVALID: signature verification failed

Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T091728Z.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T0830Z_eaFvO3dwHo4NCqqc.json.gz	valid
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T081728Z.json.gz	valid
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T071728Z.json.gz	valid
[...]
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2245Z_mbJkEO5kNcDnVhGh.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2225Z_IQ6kXy8sKU03RSPr.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2230Z_eRPVRTxHQ5498ROA.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2255Z_IlWawYZGvTWB5vYN.json.gz	valid
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/08/31/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150831T221728Z.json.gz	valid

Results requested for 2015-08-31T22:00:00Z to 2015-09-01T19:17:29Z
Results found for 2015-08-31T22:17:28Z to 2015-09-01T20:17:28Z:

22/23 digest files valid, 1/23 digest files INVALID
63/63 log files valid
```

以下示例`validate-logs`命令在存在回填摘要文件的时段上使用该`--verbose`标志，并生成以下示例输出。回填摘要以`(backfill)`前缀显示，并且与标准摘要链分开验证。 `[...]`表示样本输出已被缩短。

```
aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2024-07-31T22:00:00Z --end-time 2024-08-01T19:17:29Z --verbose
```

```
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2024-07-31T22:00:00Z and 2024-08-01T19:17:29Z

Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2024/08/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T201728Z.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/08/01/111111111111_CloudTrail_us-east-2_20240801T1925Z_Xm3pK9vN2wQ5rT8h.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/08/01/111111111111_CloudTrail_us-east-2_20240801T1915Z_Bj7cL4nM6pR9sU2v.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/08/01/111111111111_CloudTrail_us-east-2_20240801T1930Z_Fy1dG8kN3qT6wX0z.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/08/01/111111111111_CloudTrail_us-east-2_20240801T1920Z_Hn5jM2pQ7sV9yB4e.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/08/01/111111111111_CloudTrail_us-east-2_20240801T1950Z_Kp8rN1tW4xZ7aC3f.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/08/01/111111111111_CloudTrail_us-east-2_20240801T1920Z_Mq6sP9uX2yB5dE8g.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/08/01/111111111111_CloudTrail_us-east-2_20240801T1915Z_Rt4vQ7wZ0aC3fG6h.json.gz	valid
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2024/08/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T191728Z.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/08/01/111111111111_CloudTrail_us-east-2_20240801T1910Z_Uw9xR2yB5dH8jK1m.json.gz	valid
[...]
Log file       s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2024/08/01/144218288521_CloudTrail_us-east-2_20240801T1055Z_Vz3aS6cE9fL2nP5q.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2024/08/01/144218288521_CloudTrail_us-east-2_20240801T1040Z_Xy7bT0dG3hM6pR9s.json.gz	valid

Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T101728Z.json.gz	INVALID: signature verification failed

Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T091728Z.json.gz	valid
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T081728Z.json.gz	valid
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T071728Z.json.gz	valid
[...]
Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2024/07/31/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240731T221728Z.json.gz	valid
(backfill) Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2024/08/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T201728Z_backfill.json.gz	valid
(backfill) Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2024/08/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T191728Z_backfill.json.gz	valid
[...]

(backfill) Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T101728Z_backfill.json.gz	INVALID: signature verification failed

(backfill) Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T091728Z_backfill.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2024/08/01/144218288521_CloudTrail_us-east-2_20240801T0830Z_Rn6uk0wY5aD9fJ3n.json.gz	valid
(backfill) Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T081728Z_backfill.json.gz	valid
(backfill) Digest file    s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T071728Z_backfill.json.gz	valid
[...]
(backfill) Digest file    s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2024/07/31/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240731T221728Z_backfill.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/07/31/111111111111_CloudTrail_us-east-2_20240731T2145Z_Sp3vm7xZ2bE6gK0p.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/07/31/111111111111_CloudTrail_us-east-2_20240731T2125Z_Tq0wn4ya9cF3hL7q.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/07/31/111111111111_CloudTrail_us-east-2_20240731T2130Z_Ur7xp1zb6dG0jM4r.json.gz	valid
Log file       s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2024/07/31/111111111111_CloudTrail_us-east-2_20240731T2155Z_Vs4yq8ac3eH7kN1s.json.gz	valid

Results requested for 2024-07-31T22:00:00Z to 2024-08-01T19:17:29Z
Results found for 2024-07-31T22:17:28Z to 2024-08-01T20:17:28Z:

22/23 digest files valid, 1/23 digest files INVALID
22/23 backfill digest files valid, 1/23 backfill digest files INVALID
63/63 log files valid
```

### 非详细
<a name="cloudtrail-log-file-validation-cli-results-non-verbose"></a>

下面的示例 `validate-logs` 命令不使用 `--verbose` 标志。在后面的示例输出中，出现一个错误。只返回了头、错误和摘要信息。

```
aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2015-08-31T22:00:00Z --end-time 2015-09-01T19:17:29Z
```

```
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2015-08-31T22:00:00Z and 2015-09-01T19:17:29Z

Digest file	s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T101728Z.json.gz	INVALID: signature verification failed

(backfill) Digest file	s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2024/08/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20240801T101728Z_backfill.json.gz	INVALID: signature verification failed

Results requested for 2015-08-31T22:00:00Z to 2015-09-01T19:17:29Z
Results found for 2015-08-31T22:17:28Z to 2015-09-01T20:17:28Z:

22/23 digest files valid, 1/23 digest files INVALID
22/23 backfill digest files valid, 1/23 backfill digest files INVALID
63/63 log files valid
```

## 检查特定文件是否由 CloudTrail
<a name="cloudtrail-log-file-validation-cli-validate-logs-check-file"></a>

要检查存储桶中的特定文件是否由传送 CloudTrail，请在包含该文件的时间段内以详细模式运行`validate-logs`。如果文件出现在的输出中`validate-logs`，则该文件由传送 CloudTrail。