【发布时间】:2020-03-31 18:14:03
【问题描述】:
我已经设置了一个 Amazon linux AMI,它安装并配置了 Kinesis 代理,以将日志发送到 Firehose。 EC2 实例已附加具有 KinesisFirehoseFullAccess 权限的 IAM 角色。但是,我在发送数据时收到权限不足错误。
我知道我提供了最高级别的 IAM Kinesis 权限,但我现在面临着一堵空白的墙。当然,我稍后会削减权限,但我首先需要让这个概念验证工作。
从 AWS Firehose 向 S3 存储桶发送了测试。这工作正常。 通过假日志生成器创建日志。然后我运行了服务。服务已启动并正在运行。
用户:arn:aws:sts::1245678012:assumed-role/FirstTech-EC2-KinesisFireHose/i-0bdf3adc7a4d97afa 无权执行:firehose:PutRecordBatch 资源:arn:aws: firehose:ap-southeast-1:1245678012:deliverystream/firsttech-ingestion-weblogs(服务:AmazonKinesisFirehose;状态代码:400;错误代码:AccessDeniedException;
localhost (Agent.MetricsEmitter RUNNING) com.amazon.kinesis.streaming.agent。代理:进度:已解析 900 条记录(220430 字节),0 条记录成功发送到目的地。正常运行时间:840058ms
【问题讨论】:
-
我将首先登录实例并测试分配给实例的 IAM 角色的权限。例如,使用 AWS CLI 运行
aws firehose list-delivery-streams ...以确认它具有 Firehose 权限。尝试手动aws firehose put-record-batch ...命令查看权限是否正确。另外,在阅读Writing to Amazon Kinesis Data Streams Using Kinesis Agent - Amazon Kinesis Data Streams 时,我建议也给予kinesis:PutRecord权限,看看是否有帮助。 -
不高兴。我新建了一个 Role 并添加了 PutRecord 和 PutRecordBatch 权限,还是一样...:(
-
您是否尝试按照我上面评论中的建议通过 AWS CLI 发送数据?结果如何?
-
有更新....
-
经过大量修改后,我设法让数据被解析、转换并发送到 Kinesis Firehose,尽管这不是我想要的设置方式。这就是我所做的。我已经创建了一个 EC2 实例配置文件角色并将 KinesisFirehoseFullAccess 权限附加到该角色并将其附加到该实例,但它仍然发出该错误。所以:- 1.为EC2角色添加了KinesisFullAccess权限,仍然没有乐趣。 2. 删除了 Kinesis 和 Firehose 完全访问权限,并附加了具有 Kinesis PutRecord 和 PutRecordBatch 权限的自定义策略,不高兴。
标签: amazon-web-services amazon-kinesis