配置自定义 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 存储桶启用跨账户访问。
自定义来源配置
为自定义来源创建管道时:
-
解析器必须是管道中的第一个处理器
-
您可以为自定义日志管道指定任何支持的处理器