为 CloudTrail 配置 Amazon SNS 通知 - AWS CloudTrail

为 CloudTrail 配置 Amazon SNS 通知

在 CloudTrail 将新的日志文件发布到您的 Amazon S3 存储桶时,您将收到通知。您可以使用 Amazon Simple Notification Service (Amazon SNS) 管理通知。

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

将 CloudTrail 配置为发送通知

您可以配置跟踪以使用 Amazon SNS 主题。您可以使用 CloudTrail 控制台或 aws cloudtrail create-trail CLI 命令创建主题。CloudTrail 可为您创建 Amazon SNS 主题并附加适当的策略,因此 CloudTrail 有权发布到该主题。

您在创建 SNS 主题名称时,该名称必须满足以下要求:

  • 介于 1 到 256 个字符之间

  • 包含大写和小写 ASCII 字母、数字、下划线或连字符

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

要接收通知,请订阅 Amazon SNS 主题或 CloudTrail 使用的主题。您可以使用 Amazon SNS 控制台或 Amazon SNS CLI 命令执行此操作。有关更多信息,请参阅《Amazon Simple Notification Service 开发人员指南》中的订阅 Amazon SNS 主题

注意

CloudTrail 会在日志文件写入 Amazon S3 存储桶时发送通知。有效账户可以生成大量通知。如果您使用电子邮件或 SMS 进行订阅,可能会收到大量消息。建议您使用 Amazon Simple Queue Service (Amazon SQS) 进行订阅,以便能以编程方式处理通知。有关更多信息,请参阅 Amazon Simple Queue Service 开发人员指南中的将 Amazon SQS 队列订阅到 Amazon SNS 主题(控制台)

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。仅 Message 字段显示 CloudTrail 信息。其他字段包含来自 Amazon SNS 服务的信息。

如果您使用 CloudTrail API 创建跟踪,则可通过 CreateTrailUpdateTrail 操作指定您希望 CloudTrail 向其发送通知的现有 Amazon SNS 主题。您必须确保该主题已存在并且有权让 CloudTrail 向其发送通知。请参阅 针对 CloudTrail 的 Amazon SNS 主题策略

其他资源

有关 Amazon SNS 主题和订阅这些主题的更多信息,请参阅 Amazon Simple Notification Service 开发人员指南