

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

# 使用递归日志记录抑制递归事件
<a name="cloudtrail-trail-recursive-logging"></a>

## 什么是递归日志？
<a name="cloudtrail-recursive-logging-overview"></a>

当将日志文件 CloudTrail 传送到跟踪的目的地时，这些传送操作本身可以记录为事件。目标包括 Amazon S3 存储桶或 CloudWatch 日志日志组。例如，当将日志文件 CloudTrail 传输到您的 Amazon S3 存储桶时，它会执行 `PutObject` API 调用。如果您的跟踪配置为记录 Amazon S3 数据事件，则此传输操作将记录为事件，然后将其传送到您的存储桶，生成另一个事件，依此类推。这些事件称为*递归事件*。

您可以使用该`RecursiveLogging`设置来抑制这些事件。

## 递归日志抑制的工作原理
<a name="cloudtrail-recursive-logging-how-it-works"></a>

当您设置`RecursiveLogging`为 `false` on a trail 时，会 CloudTrail抑制递归交付事件。 CloudTrail 筛选出其中 `userIdentity.invokedBy` is `cloudtrail.amazonaws.com` 和 the 的事件，`eventSource`并`eventName`匹配以下任一项：
+ `eventSource`是`s3.amazonaws.com`和`eventName`是 `PutObject`
+ `eventSource`是`logs.amazonaws.com`和`eventName`是 `PutLogEvents`

此设置仅抑制调用服务 CloudTrail 所在的事件。所有其他活动均按预期交付。

## 配置递归日志
<a name="cloudtrail-recursive-logging-configure"></a>

您可以在创建或更新跟踪时配置该`RecursiveLogging`设置。

### 禁用递归日志（抑制递归事件）
<a name="cloudtrail-recursive-logging-disable"></a>

要在创建跟踪时抑制递归事件，请使用以下`--no-recursive-logging`选项：

```
aws cloudtrail create-trail \
    --name {{my-trail}} \
    --s3-bucket-name {{my-bucket}} \
    --no-recursive-logging
```

要抑制现有跟踪上的递归事件，请执行以下操作：

```
aws cloudtrail update-trail \
    --name {{my-trail}} \
    --no-recursive-logging
```

### Re-enabling 递归日志
<a name="cloudtrail-recursive-logging-enable"></a>

要重新启用递归日志（传送递归事件），请执行以下操作：

```
aws cloudtrail update-trail \
    --name {{my-trail}} \
    --recursive-logging
```

## 默认 行为
<a name="cloudtrail-recursive-logging-defaults"></a>

默认情况下，`RecursiveLogging`在所有路径`true`上均设置为。这意味着会记录递归交付事件。如果您未明确设置`RecursiveLogging`为`false`，则您的跟踪将继续接收所有事件，包括 CloudTrail 交付操作生成的事件。