当前位置: 首页 > news >正文

AWS EC2实例上SSM-Agent的安装与故障排除指南

1. 为什么需要SSM-Agent?

如果你正在使用AWS EC2实例管理服务器,手动通过SSH连接每台机器就像用钥匙开每一扇门——效率低还容易丢钥匙。SSM-Agent就是AWS提供的"智能门禁系统",它能让你在浏览器里直接操作所有EC2实例,无需暴露SSH端口,更不用记密钥对。我管理过上百台游戏服务器,曾经因为密钥泄露导致服务器被入侵,后来全面改用SSM后,运维效率提升了3倍不止。

这个轻量级代理程序默认已安装在Amazon Linux 2等官方镜像中,但当你遇到自定义镜像或特殊环境时,就需要手动安装。更实用的是,它不仅能替代SSH,还能配合Systems Manager实现自动化运维、批量命令执行、补丁管理等功能。上周我就用它同时给50台服务器打上了安全补丁,整个过程只用了5分钟。

2. 安装前的准备工作

2.1 IAM角色配置

我见过太多人卡在权限问题上,其实就像给新员工发门禁卡——没配置正确权限当然进不了办公室。首先到IAM控制台,创建一个新角色(比如命名为SSM-Managed-Instance-Role),关键是要附加这两个策略:

  1. AmazonSSMManagedInstanceCore:基础权限,相当于"办公区通行证"
  2. AmazonEC2RoleforSSM(可选):如果需要与EC2 API交互
# 快速检查当前实例是否已附加角色 aws sts get-caller-identity --query Arn --output text

注意:修改IAM角色后可能需要15分钟才能生效,这是AWS的缓存机制导致的,不是你的操作有问题

2.2 网络连通性验证

有一次我折腾了两小时才发现是VPC端点没配置,所以现在都会先做这个测试:

# 测试SSM服务端点连通性 telnet ssm.ap-northeast-1.amazonaws.com 443

如果无法连接,你需要:

  • 检查安全组出站规则(至少开放443端口)
  • 确认VPC有互联网网关或配置了SSM VPC端点
  • 测试DNS解析是否正常:nslookup ssm.ap-northeast-1.amazonaws.com

3. 详细安装指南

3.1 Amazon Linux 2安装

官方源安装最稳定,我对比过各种方法后推荐这个:

# 一键安装命令 sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm # 启动并设置开机自启 sudo systemctl enable amazon-ssm-agent sudo systemctl start amazon-ssm-agent # 验证状态(看到active/running才算成功) sudo systemctl status amazon-ssm-agent

3.2 Ubuntu/Debian系统

这里有个坑要注意——包名不同:

# 对于Ubuntu 20.04 wget https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb sudo dpkg -i amazon-ssm-agent.deb sudo service amazon-ssm-agent start

3.3 离线环境安装

有次给银行客户部署私有云时总结的方法:

  1. 先在有网络的机器下载rpm包
  2. scp传到目标服务器
  3. 手动安装依赖:
    sudo yum install -y perl-Digest-SHA.x86_64 sudo rpm -ivh amazon-ssm-agent.rpm

4. 故障排除大全

4.1 日志分析技巧

查看实时日志就像读侦探小说,关键线索往往在最后几行:

# 跟踪最新日志(按Ctrl+C退出) sudo tail -f /var/log/amazon/ssm/amazon-ssm-agent.log

常见错误及解决方案:

  1. 403 Forbidden错误

    [ERROR] CredentialRetriever: unable to get credentials - EC2RoleRequestError: no EC2 instance role found

    这说明实例没绑定IAM角色,或者角色没正确配置SSM权限

  2. 404 Not Found

    error calling RequestManagedInstanceRoleToken: AccessDeniedException

    通常是区域配置错误,检查是否在正确的AWS区域操作

4.2 手动注册实例

当自动注册失败时,可以手动注册:

sudo /usr/bin/amazon-ssm-agent -register -code "激活码" -id "激活ID" -region "区域"

激活码和ID可以在Systems Manager的混合激活功能里创建,这个功能特别适合混合云场景。

5. 高级配置技巧

5.1 多账户管理

我们游戏运营有开发、测试、生产三个账户,配置跨账户管理很实用:

  1. 在主账户创建AmazonSSMMasterPolicy
  2. 在子账户创建AmazonSSMMemberPolicy
  3. 通过资源组实现跨账户管理

5.2 性能调优

大规模部署时要调整这些参数(编辑/etc/amazon/ssm/amazon-ssm-agent.json):

{ "Worker": { "NumWorkers": 20, "JobQueueSize": 100 } }

5.3 安全加固

建议增加这些配置:

  • 启用日志加密:"CloudWatchLogs": {"LogGroupName": "SSM-Logs","EncryptionEnabled": true}
  • 限制可执行命令:通过IAM策略限制ssm:SendCommand的权限

有次凌晨三点我被报警叫醒,发现SSM日志里出现大量异常命令记录,后来加了命令审计策略才彻底解决问题。现在所有关键操作都会自动记录到CloudTrail,再配合EventBridge设置异常操作报警,终于能睡个安稳觉了。

http://www.jsqmd.com/news/507808/

相关文章:

  • 人肉防火墙:用生理恐惧阻断DDoS攻击
  • Token 烧钱?OpenClaw 这几个配置让我省了一半开销
  • EasyAnimateV5效果展示:看看这些图片是如何“活”起来的
  • 围棋-html版本
  • 虾皮怎么选品比较好?虾皮选品的方法和技巧分享! - 跨境小媛
  • AMiner Research Labs公测,使用Google NotebookLM交互范式,新增「代码」工具,可一键复现算法论文框架及可供测试使用的伪代码
  • SpringSecurity相关jar包的介绍
  • php方案 PHP的Composer依赖解析
  • 电子资料_定制开发36:3️⃣维比例导引+LSTM目标轨迹预测 资料类型:全m代码 说明:演示了三维比例导引使用;以及采用LSTM网络预测目标轨迹,进而预测拦截命中点的演
  • 2026年太阳能风光互补路灯厂家推荐:学校球场/市政/智慧调光/多功能智慧路灯专业供应 - 品牌推荐官
  • 飞书多维表格与Dify集成实战:从零配置到数据自动填充
  • 2026年尾矿砂烘干机厂家推荐:沙子烘干机/砂石烘干机/烘干沙设备专业供应商精选 - 品牌推荐官
  • Qwen3-0.6B-FP8生产环境:支持服务器重启自动恢复的稳定服务部署
  • advisor复合电源模型。 采用新增构型方法修改的复合电源模型,比advisor书上那种在纯...
  • 卡券回收避坑指南:我用抖抖收的经验告诉你这些骗局要当心 - 抖抖收
  • Uniapp 实现 二手车价格评估 功能
  • Mac端mitmproxy实战:从安装到HTTPS请求监控全解析
  • 【若依框架】ruoyi前端视觉定制全攻略:从登录页到系统Logo的深度改造
  • 降雨量MK检验和Morlet小波分析附Matlab代码
  • 高性价比之选:BW手持测氧测爆仪优质供应商哪家好? - 品牌推荐大师
  • 基于深度强化学习的微能源网能量管理与优化策略研究:基于Q-learning和DQN的智能算法
  • 【datawhale】base-llm-基础-t1
  • AI 编程时代,程序员会被替代吗?我更关心的是如何应对
  • 一个大三学生,如何用 3 天做一个能写进简历的项目
  • CasRel模型内网穿透部署方案:安全提供本地模型服务
  • SEO_本地SEO优化的完整步骤与关键点介绍
  • 基于Arduino与LD3320的智能语音控制系统设计与实现
  • Nanbeige 4.1-3B性能优化:@st.cache_resource缓存机制详解
  • 欧陆平台邀请码的正确填写方法
  • 赶deadline必备!毕业论文全流程神器 —— 千笔·专业论文写作工具