配置自定义 S3 存储桶来源 - Amazon CloudWatch

配置自定义 S3 存储桶来源

借助 CloudWatch 管道,您可以处理存储在 S3 存储桶中的任意日志。

先决条件

要将 Amazon S3 用作管道来源,请先创建 S3 存储桶。有关说明,请参阅《Amazon S3 用户指南》中的创建通用存储桶

注意

如果管道中用作来源的 S3 存储桶位于其他 AWS 账户中,则还需要对存储桶启用跨账户读取权限。这样管道将可读取和处理数据。要启用跨账户权限,请参阅 Amazon S3 用户指南中的存储桶拥有者授予跨账户存储桶权限

如果您的 S3 存储桶位于多个账户中,请使用 bucket_owners 映射。有关示例,请参阅 OpenSearch 文档中的跨账户 S3 访问

要设置 S3-SQS 处理,还需要执行以下步骤:

配置管道角色

与其他将数据推送到管道的源插件不同,S3 源插件采用基于读取的架构,管道从源中拉取数据。因此,为使管道能够从 S3 读取,必须在管道的 S3 源配置中指定一个可以同时访问 S3 存储桶和 Amazon SQS 队列的角色。管道将担任此角色,以便从队列中读取数据。

您可以在特定于来源的 IAM 策略中找到示例角色权限。请注意,此角色必须与 CloudWatch 管道服务原则具有信任关系。您可以在信任关系中找到管道角色的示例信任策略配置。

创建管道

设置权限后,您可以根据 Amazon S3 使用案例配置管道。

在 CloudWatch 控制台的摄取下的管道选项卡中选择创建管道。按照管道向导步骤进行操作,并在出现提示时提供 SQS 队列 ARN 和所需的管道 IAM 角色。(可选)在 CloudWatch Logs 中提供要附加到日志组目标的数据来源名称和类型。

如果目标日志组尚未配置 CloudWatch Logs 资源策略,请务必配置该策略,然后在审核并创建步骤中选择创建管道。如果成功,将创建管道,然后数据将在 5 分钟内开始流动。

将 Amazon S3 跨账户作为源

您可以向 Amazon S3 授予跨账户访问权限,让 CloudWatch 管道能够访问作为来源的其他账户中的 S3 存储桶。要启用跨账户访问,请参阅《Amazon S3 用户指南》中的 Bucket owner granting cross-account bucket permissions。授予访问权限后,请确保您的管道角色具有所需的权限。

然后可以使用 bucket_owners 创建管道,从而对作为来源的 Amazon S3 存储桶启用跨账户访问。

自定义来源配置

为自定义来源创建管道时:

  • 解析器必须是管道中的第一个处理器

  • 您可以为自定义日志管道指定任何支持的处理器