Graylog CloudWatch/Kinesis输入配置失败:IAM权限问题求助
解决Graylog CloudWatch/Kinesis输入配置失败问题
核心排查与修复步骤
确认EC2实例关联的IAM角色权限
你的EC2实例必须绑定具备权限的IAM角色(而非仅依赖SSM角色):- 进入EC2控制台,找到目标t3.large实例
- 切换到「安全」标签,查看实例关联的IAM角色
- 确保该角色已附加你提供的Graylog策略,且信任关系允许
ec2.amazonaws.com作为主体
修正Graylog-Cloudwatch_role的信任策略
该角色必须允许EC2实例的IAM角色进行Assume操作,示例信任策略:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::你的AWS账号ID:role/EC2实例绑定的IAM角色名" }, "Action": "sts:AssumeRole" } ] }验证权限链有效性
在EC2实例上通过Session Manager执行AWS CLI命令,测试角色切换:aws sts assume-role --role-arn arn:aws:iam::你的AWS账号ID:role/Graylog-Cloudwatch_role --role-session-name test-graylog-session若命令报错,根据提示补全缺失的权限(比如
sts:AssumeRole)修复Graylog输入页面角色不更新问题
- 配置输入时,确保选择的是
Graylog-Cloudwatch_role的完整ARN - 若选择后角色显示无变化,清除浏览器缓存或使用无痕模式重新配置
- 配置输入时,确保选择的是
精简权限(可选)
原策略包含大量创建类权限(如iam:CreateRole),仅读取数据时可精简为:{ "Version": "2012-10-17", "Statement": [ { "Sid": "GraylogKinesisCloudWatchReadOnly", "Effect": "Allow", "Action": [ "kinesis:GetRecords", "kinesis:GetShardIterator", "kinesis:ListShards", "kinesis:ListStreams", "kinesis:DescribeStream", "logs:DescribeLogGroups", "logs:GetLogEvents" ], "Resource": "*" } ] }
关键提醒
- 区分SSM角色(用于Session Manager连接)和EC2实例IAM角色(用于Graylog调用AWS服务),二者权限用途不同
- 容器化部署时,确保Graylog容器能访问EC2元数据服务获取IAM凭证
内容的提问来源于stack exchange,提问作者jpbn43
相关产品推荐
相关产品推荐

