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

EC2实例安装SSM Agent后无法成为受管实例

我之前也遇到过类似的Windows Server 2012 R2实例无法在SSM Managed Instances中显示的问题,结合AWS官方文档和实际排查经验,给你整理了以下逐步排查的思路——既然相同步骤在其他实例生效,问题大概率集中在这个特定实例的配置或环境细节上:

1. 先验证网络连通性是否正常

SSM Agent必须能和AWS SSM服务的区域端点建立HTTPS(443端口)连接,这是注册的基础:

  • 用PowerShell测试端点连通性:
    Test-NetConnection ssm.<你的AWS区域>.amazonaws.com -Port 443
    
    如果测试失败,先检查实例的安全组/网络ACL是否允许出站443流量到SSM端点;如果用了VPC端点,确认com.amazonaws.<区域>.ssm端点已创建,且实例所在子网关联了正确的端点策略。
  • 排查本地安全软件:企业级杀毒、防火墙可能会拦截出站HTTPS请求,临时禁用后测试是否能注册成功。
2. 确认IAM角色权限与关联状态

哪怕其他实例正常,也别跳过这一步——可能这个实例的IAM角色配置有疏漏:

  • 确保实例关联的IAM角色包含AmazonSSMManagedInstanceCore托管策略,或者自定义策略覆盖了ssm:RegisterManagedInstance、ssm:UpdateInstanceInformation等核心权限。
  • 验证实例是否正确关联IAM角色:在PowerShell中运行:
    Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/iam/security-credentials/
    
    如果返回空或错误,说明角色未正确关联,需要重新为实例附加IAM角色。
3. 深挖日志找错误线索

日志是排查这类问题的核心,Windows上的关键日志位置:

  • SSM Agent日志:C:\Program Files\Amazon\SSM\Logs\amazon-ssm-agent.log
  • EC2 Config日志:C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt
    重点搜索包含RegisterManagedInstance、Failed、Error的条目,比如如果日志显示“无法获取实例身份文档”,说明实例元数据服务(IMDS)访问有问题;如果是“认证失败”,则指向IAM权限问题。
4. 检查实例元数据服务(IMDS)配置

Windows Server 2012 R2的旧AMI可能存在IMDS配置问题:

  • 在EC2控制台查看实例的「元数据选项」,确保“允许实例元数据访问”处于启用状态。如果用了IMDSv2,可暂时切换为IMDSv1测试(部分旧版本SSM Agent对IMDSv2兼容性不佳)。
  • 测试IMDS访问:
    Invoke-RestMethod -Uri http://169.254.169.254/latest/meta-data/instance-id
    
    若返回实例ID则正常,否则检查IMDS是否被实例内部的防火墙或配置禁用。
5. 手动触发SSM Agent重新注册

有时候自动注册流程未触发,手动重置注册状态可能解决:

  • 停止SSM Agent服务:
    Stop-Service AmazonSSMAgent
    
  • 删除SSM Agent的注册缓存:删除C:\Program Files\Amazon\SSM\var\registration目录下的所有文件(这会清除旧的注册信息,让Agent重新发起注册请求)。
  • 重启SSM Agent服务:
    Start-Service AmazonSSMAgent
    

等待5-10分钟后,再去Managed Instances页面查看是否出现该实例。

6. 验证EC2 Config的配置状态

EC2 Config在Windows Server 2012 R2中负责实例初始化和SSM关联的关键工作:

  • 打开EC2 Config Service控制台(路径:C:\Program Files\Amazon\Ec2ConfigService\Ec2ConfigService.exe),在「Configuration」标签下确认「Enable SSM Agent」已勾选。
  • 检查EC2 Config服务状态:
    Get-Service Ec2ConfigService
    
    如果服务未运行,启动并设置为自动启动:
    Start-Service Ec2ConfigService
    Set-Service Ec2ConfigService -StartupType Automatic
    
7. 检查.NET框架与系统更新

Windows Server 2012 R2的环境依赖可能不满足SSM Agent的运行要求:

  • SSM Agent 2.2.x版本需要.NET Framework 4.5及以上,用以下命令检查版本:
    Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name Version, Release -ErrorAction SilentlyContinue | Where-Object { $_.PSChildName -match '^(?!S)\p{L}' } | Select-Object PSChildName, Version, Release
    
    若版本低于4.5,安装.NET Framework 4.8(Windows Server 2012 R2支持)。
  • 确保实例安装了TLS 1.2相关更新(如KB3192392),因为SSM服务要求使用TLS 1.2通信。若未启用TLS 1.2,可通过注册表手动开启(需管理员权限):
    New-Item 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Force | New-ItemProperty -Name 'SchUseStrongCrypto' -Value '1' -PropertyType DWord
    New-Item 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Force | New-ItemProperty -Name 'SchUseStrongCrypto' -Value '1' -PropertyType DWord
    New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | New-ItemProperty -Name 'DisabledByDefault' -Value '0' -PropertyType DWord
    New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | New-ItemProperty -Name 'Enabled' -Value '1' -PropertyType DWord
    
    修改后重启实例,再测试SSM Agent注册情况。

内容的提问来源于stack exchange,提问作者Ehab Al khashman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:08:19