AWS Cloudwatch Logs 订阅过滤器以将日志发送到跨账户 Kinesis Stream

问题描述 投票:0回答:1

目前有一个设置,我们通过订阅过滤器将日志数据管道传输到运动流,以进一步分析应用程序的任何意外行为或调试任何错误。这是在同一个账户中(日志组和 Kinesis 流在同一个账户中)。目前我们有一个新账户和一个应用程序,需要类似的功能,但我们想将日志发送到原始账户中的同一个运动流,这样我们就不需要设置基础设施(运动数据是进一步通过管道传输到 firehose,然后在新帐户中再次传输到 S3(datalake))。所以我只是尝试创建一个带有选项作为交叉帐户的订阅过滤器,并将运动流的 arn 作为目标,但它失败并显示错误 Invalid ARN。在做了一些研究文档(https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CreateDestination.html)后,它解释了如何创建与 Kinesis 流共享的跨帐户日志。但我并不完全相信,正如它所说的那样,也要在目标帐户中创建一个日志组,但我不确定为什么除了接收日志的 Kinesis Stream 之外,它还需要在目标帐户中创建一个。如果您遇到过类似的挑战或知道,请指出我是否遗漏了什么。非常感谢。

amazon-web-services amazon-cloudwatch amazon-kinesis
1个回答
0
投票

要设置 CloudWatch Logs 订阅过滤器以将日志发送到不同 AWS 账户中的 Kinesis 流,请执行以下步骤:

在生成 CloudWatch Logs 的 AWS 账户中创建一个 IAM 角色,该角色有权发布到其他 AWS 账户中的 Kinesis 流。该角色应附加以下策略: { "版本": "2012-10-17", “陈述”: [ { "效果": "允许", “动作”:“运动:PutRecord”, “资源”:“arn:aws:kinesis:::stream/” } ] }

替换为Kinesis流所在的区域,Kinesis流所在的AWS账户ID,以及Kinesis流的名称。

在Kinesis流所在的AWS账户中,创建一个IAM角色,该角色有权从CloudWatch Logs订阅过滤器接收数据。该角色应附加以下策略: { "版本": "2012-10-17", “陈述”: [ { "效果": "允许", “动作”:“运动:PutRecord”, “资源”:“arn:aws:kinesis:::stream/” } ] }

替换为Kinesis流所在的区域,Kinesis流所在的AWS账户ID,以及Kinesis流的名称。

在生成 CloudWatch Logs 的 AWS 账户中,创建一个 CloudWatch Logs 订阅过滤器,将日志发送到另一个 AWS 账户中的 Kinesis 流。要创建订阅过滤器,请转到 CloudWatch Logs 控制台并按照以下步骤操作: 选择要为其创建订阅过滤器的日志组。 单击“操作”按钮并选择“创建订阅过滤器”。 输入订阅过滤器的名称。 在“目标”下,选择“Kinesis 流”并在其他 AWS 账户中输入 Kinesis 流的 ARN。 在“IAM 角色”下,选择您在第 1 步中创建的 IAM 角色。 在您创建订阅过滤器后,CloudWatch Logs 将开始将日志发送到其他 AWS 账户中的 Kinesis 流。您可以通过创建将日志传输到 S3 存储桶的 Kinesis Data Firehose 传输流来监控日志,或者使用 Kinesis Data Analytics 应用程序或自定义应用程序直接使用来自 Kinesis 流的日志。

© www.soinside.com 2019 - 2024. All rights reserved.