启用IMDSv2的EC2 Windows实例SSM Agent故障求助
修复跨可用区快照恢复的Windows EC2实例SSM Agent IMDSv2超时问题
问题分析
报错核心是SSM Agent无法访问EC2实例元数据服务(IMDS)获取实例ID,超时失败。跨可用区快照恢复的实例可能因IMDS配置继承、本地网络异常导致IMDSv2访问受阻。
修复步骤
1. 通过EC2控制台调整实例元数据选项(无需CLI权限)
- 登录EC2控制台,定位目标实例
- 右键选择实例设置 > 修改实例元数据选项
- 将元数据版本从「仅IMDSv2」改为可选(IMDSv1和IMDSv2),保存设置后重启实例
- 验证SSM Agent是否恢复正常,若恢复可后续再调整回强制IMDSv2(需确保实例内部IMDSv2访问正常)
2. 本地实例网络与IMDSv2测试(需RDP登录权限)
若能通过RDP登录实例,执行以下操作:
- 检查防火墙规则:
打开Windows Defender防火墙高级设置,确认出站规则未阻止169.254.0.0/16网段的流量 - 手动测试IMDSv2访问:
以管理员身份打开PowerShell,执行:
若执行超时,说明本地网络到IMDS服务的连接存在异常# 获取IMDSv2令牌 $token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token # 获取实例ID Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Uri http://169.254.169.254/latest/meta-data/instance-id - 重置TCP/IP栈:
执行以下命令后重启实例:netsh int ip reset netsh winsock reset - 更新SSM Agent:
检查当前版本:
下载最新Windows版SSM Agent手动安装,覆盖现有版本"C:\Program Files\Amazon\SSM\amazon-ssm-agent.exe" -version
3. 检查子网路由表(需管理员协助)
联系有权限的管理员,确认实例所在子网的路由表中存在目标为169.254.169.254/32的本地路由(AWS默认自动添加,跨可用区恢复可能出现异常丢失)
内容的提问来源于stack exchange,提问作者Teh__docco
相关产品推荐
相关产品推荐

