

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

# 配置 Amazon SNS 通知 CloudTrail
<a name="configure-sns-notifications-for-cloudtrail"></a>

 当您向 Amazon S3 存储桶 CloudTrail 发布新的日志文件时，您会收到通知。您可以使用 Amazon Simple Notiﬁcation Service（Amazon SNS）管理通知。

通知是可选的。如果您需要通知，则可以配置 CloudTrail 为在发送新日志文件时向 Amazon SNS 主题发送更新信息。要接收这些通知，可使用 Amazon SNS 订阅该主题。作为订阅者，您可将更新发送到 Amazon Simple Queue Service（Amazon SQS）队列，这使您能够以编程方式处理这些通知。

**Topics**
+ [

## 配置 CloudTrail 为发送通知
](#configure-cloudtrail-to-send-notifications)

## 配置 CloudTrail 为发送通知
<a name="configure-cloudtrail-to-send-notifications"></a>

在 CloudTrail 控制台上，您可以在[创建](cloudtrail-create-a-trail-using-the-console-first-time.md#creating-a-trail-in-the-console)或[更新](cloudtrail-update-a-trail-console.md)跟踪时启用 SNS **通知传送选项，将跟踪配置为使用 Amazon SNS** 主题。如果您选择使用新主题，则会为您 CloudTrail 创建 Amazon SNS 主题并附加相应的策略，以便该主题 CloudTrail 有权发布该主题。

借助 AWS CLI，您可以通过[为参数指定值来创建](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/create-trail.html)或[更新](https://docs.aws.amazon.com/cli/latest/reference/cloudtrail/update-trail.html)跟踪以使用 Amazon SNS 主题。`--sns-topic-name`您可以指定 Amazon SNS 主题的名称或 ARN。

您在创建 SNS 主题名称时，该名称必须满足以下要求：
+ 介于 1 到 256 个字符之间
+ 包含大写和小写 ASCII 字母、数字、下划线或连字符 

当您为多区域跟踪配置通知时，来自所有区域的通知都会发送到您指定的 Amazon SNS 主题。如果您有一个或多个区域特定的跟踪，须为每个区域分别创建一个主题，并单独订阅每个主题。

要接收通知，请订阅使用的一个或多个 Amazon SNS 主题。 CloudTrail 您可以使用 Amazon SNS 控制台或 Amazon SNS CLI 命令执行此操作。有关更多信息，请参阅《Amazon Simple Notification Service 开发人员指南》**中的[订阅 Amazon SNS 主题](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)。

**注意**  
CloudTrail 当日志文件写入 Amazon S3 存储桶时会发送通知。有效账户可以生成大量通知。如果您使用电子邮件或 SMS 进行订阅，可能会收到大量消息。建议您使用 Amazon Simple Queue Service（Amazon SQS）进行订阅，以便能以编程方式处理通知。有关更多信息，请参阅 *Amazon Simple Queue Service 开发人员指南*中的[将 Amazon SQS 队列订阅到 Amazon SNS 主题（控制台）](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-subscribe-queue-sns-topic.html)。

Amazon SNS 通知包含一个 JSON 对象，该对象包括一个 `Message` 字段。此 `Message` 字段列出了日志文件的完整路径，如以下示例所示：

```
{
    "s3Bucket": "amzn-s3-demo-bucket","s3ObjectKey": ["AWSLogs/123456789012/CloudTrail/us-east-2/2013/12/13/123456789012_CloudTrail_us-west-2_20131213T1920Z_LnPgDQnpkSKEsppV.json.gz"]
}
```

如果多个日志文件都传输到了 Amazon S3 存储桶，则一条通知中可能包括多个日志，如以下示例所示：

```
{
    "s3Bucket": "amzn-s3-demo-bucket",
    "s3ObjectKey": [
        "AWSLogs/123456789012/CloudTrail/us-east-2/2016/08/11/123456789012_CloudTrail_us-east-2_20160811T2215Z_kpaMYavMQA9Ahp7L.json.gz",
        "AWSLogs/123456789012/CloudTrail/us-east-2/2016/08/11/123456789012_CloudTrail_us-east-2_20160811T2210Z_zqDkyQv3TK8ZdLr0.json.gz",
        "AWSLogs/123456789012/CloudTrail/us-east-2/2016/08/11/123456789012_CloudTrail_us-east-2_20160811T2205Z_jaMVRa6JfdLCJYHP.json.gz"
    ]
}
```

如果您选择通过电子邮件接收通知，则电子邮件的正文将包含 `Message` 字段的内容。有关 JSON 结构的信息，请参阅《*Amazon Simple Notification Service 开发人员指南*》中的 [Fanout to Amazon SQS queues](https://docs.aws.amazon.com/sns/latest/dg/sns-sqs-as-subscriber.html)。只有该`Message`字段显示 CloudTrail 信息。其他字段包含来自 Amazon SNS 服务的信息。

如果您使用 CloudTrail API 创建跟踪，则可以通过[https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html)或[https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html](https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html)操作指定要 CloudTrail 向其发送通知的现有 Amazon SNS 主题。您必须确保该主题存在，并且该主题具有允许 CloudTrail 向其发送通知的权限。请参阅[Amazon SNS 主题政策适用于 CloudTrail](cloudtrail-permissions-for-sns-notifications.md)。

### 其他资源
<a name="cloudtrail-notifications-more-info-4"></a>

有关 Amazon SNS 主题和订阅这些主题的更多信息，请参阅 [https://docs.aws.amazon.com/sns/latest/dg/](https://docs.aws.amazon.com/sns/latest/dg/)。