amazon-web-services - 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
解决方案
我让 aws kinesis 代理将数据发送到 kinesis 数据流,以防万一这里的其他人有问题。在将正确的 iam 角色和策略权限附加到需要将记录发送到 kinesis 数据流的 ec2 实例后,我遇到了同样的问题。我刚刚删除了配置文件中对 aws firehose 的引用。您不需要使用嵌入在 ec2 实例本身中的密钥,iam 角色就足够了。
推荐阅读
- android - Flutter:通过android中的文件浏览器看不到在app文档目录中创建的目录
- graphql - GraphQL:查询无法验证
- python - 数组的输出是列表而不是python中的一维数组
- javascript - 我的不和谐机器人代码正在运行,但没有响应我的命令
- java - 我的通知仅在应用程序打开时有效
- javascript - vue 应用在媒体查询时不会增长到 100% 的高度
- dns - 评估和消除不必要子域的简单方法?
- php - 使用 WooCommerce 地理位置或发货国家/地区显示自定义消息
- entity-framework - 在 ASP.NET Core Web API 的已注册 .NET 数据提供程序列表中找不到指定的不变名称“System.Data.sqlClient”
- java - 创建 Java 项目时看不到 .idea 和 src 文件夹