AWS创建托管实例关联IAM角色后SSM无法查询到实例
SSM实例列表为空的高频排查方向
- 核对命令执行区域:执行
aws ssm describe-instance-information时,CLI默认绑定的配置区域必须和EC2实例实际部署的区域完全一致,跨区域查询不会返回其他区域的实例信息,会直接输出空列表。 - 校验IAM实例配置的有效性:
创建EC2时传入的IamInstanceProfile参数,要求填写实例配置文件(Instance Profile)的ARN,而非IAM角色本身的ARN。即使控制台显示角色已关联,也要在实例详情页确认,关联的实例配置文件确实挂载了绑定AmazonSSMManagedInstanceCore策略的目标角色,避免ARN错配导致权限未实际生效。 - 排查网络连通性问题:
SSM Agent是通过主动出站HTTPS(443端口)连接AWS后端服务的,不需要开放入站端口,只要满足以下任一网络条件即可通信:- 公有子网实例:关联的路由表存在指向互联网网关的0.0.0.0/0路由,实例安全组出站规则允许443端口访问SSM服务公共端点
- 私有子网实例:必须在对应VPC内创建关联目标子网的VPC终端节点,打通
ssm、ssmmessages、ec2messages三个SSM关联服务的私有访问通道,无终端节点的纯私有子网实例无法连通SSM后端。
- 登录实例验证SSM Agent运行状态:
对应Ubuntu 20.04的官方AMI默认预装SSM Agent,但可能存在服务未自启、版本过旧的问题:- 执行
systemctl status amazon-ssm-agent确认服务运行状态,未启动则执行systemctl start amazon-ssm-agent手动拉起 - 若服务启动失败,可查看日志路径
/var/log/amazon/ssm/amazon-ssm-agent.log定位具体报错 - 版本过旧时可通过执行
sudo snap install amazon-ssm-agent --classic升级到最新版,重启服务后等待1-2分钟即可同步到SSM控制台列表
- 执行
- 注意实例类型兼容性:使用m1.small这类已进入平台停用阶段的老旧实例类型时,可能出现底层硬件与新版SSM Agent不兼容的问题,可临时替换为当前通用的实例类型做验证。
内容的提问来源于stack exchange,提问作者Keiros
相关产品推荐
相关产品推荐

