You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置IAM角色为新创建的EC2实例启用SSM功能?

故障根因确认

从你提供的SSM Agent日志中的错误信息EC2RoleRequestError: no EC2 instance role found可直接判定,核心问题是创建EC2实例时未绑定带SSM访问权限的IAM实例配置文件,导致SSM Agent无法从EC2元数据服务获取权限凭证,无法与AWS SSM服务端建立连接,因此SSM接口识别不到该实例,发送命令时提示InstanceId无效。

正确配置IAM角色与实例配置文件步骤

1. 创建SSM专用IAM角色

首先创建信任EC2服务的IAM角色,附加AWS托管的SSM基础权限策略AmazonSSMManagedInstanceCore,CLI操作命令如下:

# 创建角色信任策略文件
cat > ssm-trust-policy.json << EOF
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {"Service": "ec2.amazonaws.com"},
            "Action": "sts:AssumeRole"
        }
    ]
}
EOF

# 创建IAM角色
aws iam create-role --role-name EC2SSMRole --assume-role-policy-document file://ssm-trust-policy.json

# 附加SSM托管权限策略
aws iam attach-role-policy --role-name EC2SSMRole --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

2. 创建IAM实例配置文件并关联角色

IAM角色不能直接挂载到EC2,需要先封装为实例配置文件:

# 创建实例配置文件
aws iam create-instance-profile --instance-profile-name EC2SSMInstanceProfile

# 将之前创建的角色加入实例配置文件
aws iam add-role-to-instance-profile --instance-profile-name EC2SSMInstanceProfile --role-name EC2SSMRole

# 等待配置传播,避免延迟导致挂载失败
sleep 15

3. 挂载实例配置文件到EC2实例

已创建的实例支持动态挂载,不需要重启实例:

# 替换为你实际的实例ID值
aws ec2 associate-iam-instance-profile --instance-id $INSTANCEID --iam-instance-profile Name=EC2SSMInstanceProfile

如果是后续新建EC2实例,直接在run-instances命令中增加--iam-instance-profile Name=EC2SSMInstanceProfile参数即可。
挂载完成后等待2~3分钟,SSM Agent会自动获取权限重新连接服务,此时执行aws ssm describe-instance-information即可查询到实例信息。

其他可能的故障原因排查

你当前日志中无其他致命错误,以下是通用排查点:

  • 网络配置:公有子网实例需要有公网IP,安全组出站方向允许443端口访问公网;私有子网实例需要在VPC中配置SSM、ssmmessages、ec2messages三个服务的VPC端点,且安全组允许实例访问端点的443端口。
  • 元数据服务配置:确认EC2实例的IMDS服务未被强制禁用,SSM Agent需要访问元数据服务获取角色凭证。
  • 日志中的WARN级别错误:/etc/amazon/ssm目录不存在、seelog.xml配置文件缺失属于非致命警告,不影响SSM Agent正常运行,不需要额外处理。

内容的提问来源于stack exchange,提问作者Vadim Kantorov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:54:00