如何用AWS SSM补丁管理器管理本地设备?设备未显示求助
AWS SSM 补丁管理实现指南(EC2实例+本地设备)
一、EC2实例补丁管理配置流程
- 前提校验
- 确保EC2实例已关联包含
AmazonSSMManagedInstanceCore权限的IAM角色,额外添加AmazonSSMPatchAssociation策略以满足补丁管理需求 - 确认实例已预装或手动安装最新版SSM Agent(Amazon Linux/Windows Server默认预装,其他系统需手动部署)
- 实例需能访问SSM服务:可通过公网,或配置VPC端点(
com.amazonaws.<区域>.ssm等)
- 确保EC2实例已关联包含
- 补丁基线配置
- 登录SSM控制台,进入「补丁管理器」→「补丁基线」,创建自定义基线(或使用默认基线):设置补丁批准规则(如批准最近30天发布的安全补丁)、拒绝规则,指定适用的操作系统
- 基线与实例关联
- 在补丁基线详情页点击「关联实例」,通过实例ID、标签筛选目标EC2实例完成关联
- 补丁操作执行
- 手动扫描/安装:在「补丁管理器」中选择「扫描补丁」或「安装补丁」,选定目标实例后执行任务
- 自动化执行:创建SSM维护窗口,关联
AWS-RunPatchBaseline自动化文档,设置周期任务实现定期补丁扫描与安装
二、本地设备(台式机/笔记本)补丁管理配置流程
- 前提校验
- 安装对应系统的SSM Agent:Windows下载官方MSI包,Linux下载对应发行版的RPM/DEB包
- 完成本地实例激活:
- Windows(PowerShell):
aws ssm activate-managed-instance --activation-code <激活码> --activation-id <激活ID> --region <区域> - Linux(终端):
sudo amazon-ssm-agent -register -code <激活码> -id <激活ID> -region <区域>
- Windows(PowerShell):
- 设备需能访问SSM服务端点(公网或代理)
- 补丁管理配置
- 激活完成后,本地设备会以混合托管实例身份出现在SSM控制台「托管实例」列表中
- 参照EC2实例流程,为混合实例关联补丁基线
- 执行补丁扫描/安装操作,步骤与EC2实例一致
三、本地设备未在补丁管理器显示的排查与解决
1. 确认设备是否成功加入托管实例列表
- 登录SSM控制台进入「托管实例」,检查目标设备是否存在:
- 若不存在,排查激活环节:确认激活码/ID有效(默认48小时有效期)、SSM Agent运行状态正常(Windows:
Get-Service AmazonSSMAgent;Linux:sudo systemctl status amazon-ssm-agent) - 测试网络连通性:执行
curl https://ssm.<区域>.amazonaws.com,确认设备能访问SSM服务端点
- 若不存在,排查激活环节:确认激活码/ID有效(默认48小时有效期)、SSM Agent运行状态正常(Windows:
2. 校验IAM角色权限
- 确认本地激活时关联的IAM角色已附加
AmazonSSMManagedInstanceCore和AmazonSSMPatchAssociation策略,确保具备补丁管理相关的权限(如ssm:DescribePatchBaselines、ssm:GetPatchBaselineForPatchGroup)
3. 检查补丁管理器筛选条件
- 在补丁管理器的「实例」标签页,清除所有筛选条件(区域、标签、实例状态等),查看是否能显示目标设备
4. 更新SSM Agent版本
- 旧版本Agent可能存在兼容性问题,升级至最新版:
- Windows:通过控制面板的「程序和功能」更新
- Linux:RPM系执行
sudo yum update amazon-ssm-agent,DEB系执行sudo apt-get update amazon-ssm-agent
5. 手动触发补丁扫描
若设备已在托管实例列表但未在补丁管理器显示,手动执行扫描命令:
- Windows(PowerShell):
aws ssm send-command --document-name "AWS-RunPatchBaseline" --parameters '{"Operation":["Scan"]}' --instance-ids <你的实例ID> --region <区域> - Linux(终端):
aws ssm send-command --document-name "AWS-RunPatchBaseline" --parameters '{"Operation":["Scan"]}' --instance-ids <你的实例ID> --region <区域>
执行后等待5-10分钟,再返回补丁管理器查看设备状态
内容的提问来源于stack exchange,提问作者Chandan Sharma
相关产品推荐
相关产品推荐

