首页 > 解决方案 > AWS Kinesis 代理无权执行:firehose:PutRecordBatch

问题描述

我已经设置了一个安装了 Kinesis 代理并配置为将日志发送到 Firehose 的 Amazon linux AMI。EC2 实例已附加一个具有KinesisFirehoseFullAccess权限的 IAM 角色。但是,在发送数据时,我收到权限不足错误。

我知道我提供了最高级别的 IAM Kinesis 权限,但我现在面临着一堵空白的墙。当然,我稍后会削减权限,但我首先需要让这个概念验证工作。

从 AWS Firehose 发送到 S3 存储桶的测试。这工作正常。通过假日志生成器创建日志。然后我运行了服务。服务已启动并正在运行。

用户:arn:aws:sts::1245678012:assumed-role/FirstTech-EC2-KinesisFireHose/i-0bdf3adc7a4d97afa无权执行:firehose:PutRecordBatch on resource:arn:aws:firehose:ap-southeast-1:1245678012: deliverystream/firsttech-ingestion-weblogs(服务:AmazonKinesisFirehose;状态代码:400;错误代码:AccessDeniedException;

本地主机(Agent.MetricsEmitter RUNNING)com.amazon.kinesis.streaming.agent。代理:进度:已解析 900 条记录(220430 字节),0 条记录成功发送到目的地。正常运行时间:840058ms

标签: amazon-web-servicesamazon-kinesis

解决方案


我让 aws kinesis 代理将数据发送到 kinesis 数据流,以防万一这里的其他人有问题。在将正确的 iam 角色和策略权限附加到需要将记录发送到 kinesis 数据流的 ec2 实例后,我遇到了同样的问题。我刚刚删除了配置文件中对 aws firehose 的引用。您不需要使用嵌入在 ec2 实例本身中的密钥,iam 角色就足够了。

在此处输入图像描述


推荐阅读