AWS Systems Manager Session Manager 怎么连接 EC2?权限、网络与日志

不开放 SSH 入站端口也能建立受控会话,但必须先满足 Agent、IAM 和出站连通条件。

讲解 AWS Session Manager 连接 EC2 需要的 SSM Agent、IAM 实例角色、HTTPS 出站或 VPC Endpoint,以及会话权限和日志的安全边界。

AWS Systems Manager Session Manager 适合在不对公网开放 SSH 或 RDP 端口的情况下管理 EC2。它不是“无条件登录”:实例必须成为 Systems Manager managed node,并同时满足 SSM Agent、IAM 实例权限和网络端点连通。

准确入口:在 AWS 中文控制台进入“EC2 → 实例”,选中目标后点“连接 → 会话管理器”。按钮可用之前,实例必须运行 SSM Agent、绑定含所需权限的 IAM 实例角色,并能通过 HTTPS 访问 Systems Manager 服务。建立会话不会删除数据,也无需开放 22 端口;日志存储、KMS、VPC 端点和网络流量可能收费。

AWS IAM 身份、Systems Manager、SSM Agent 和会话审计的图文连接链路
Session Manager 连接依赖身份权限、区域端点和实例内 Agent。

连接前的四项条件

  1. 操作系统受 Systems Manager 支持,并安装可用的 SSM Agent;
  2. EC2 网卡能通过 HTTPS 443 访问 ssmssmmessages 等区域端点,或使用对应的 Interface VPC Endpoint;
  3. 实例关联包含必要权限的 IAM role,常见基础策略是 AmazonSSMManagedInstanceCore
  4. 启动会话的 IAM 身份有目标实例和 Session Manager 文档的访问权限。

为什么实例不出现在节点列表

先查看 SSM Agent 状态和版本,再检查实例角色是否真正关联到当前 EC2。网络方面不能只看安全组入站规则;Session Manager 主要依赖实例向区域端点发起出站连接。私有子网没有 NAT 时,需要规划 VPC Endpoint 和私有 DNS。

会话权限不能只依赖默认策略

SSM Agent 会为会话使用 ssm-user,该用户默认可能具有管理权限。生产环境应用资源标签、IAM 条件、会话文档和操作系统权限同时限制人、实例和可执行动作。

日志和审计怎么做

可将会话记录配置到 CloudWatch Logs 或 S3,并用 CloudTrail 记录启动和结束会话的 API 事件。注意端到端 SSH 或端口转发的内容可能无法按普通 shell 会话方式记录,上线前需用实际会话类型验证审计覆盖。

先判断实例为什么不是“受管节点”

  1. 在实例详情查看 IAM 角色,确认实例配置文件已绑定,而不是只创建了角色名称。
  2. 在 Systems Manager 的节点列表确认目标在线;没有记录时检查 SSM Agent 是否安装、启动和版本可用。
  3. 私有子网需经 NAT 出站,或配置 Systems Manager 所需的接口 VPC 端点、私有 DNS 和安全组 443。
  4. 实例时间和 DNS 必须正常;证书请求失败时不要通过关闭 TLS 验证绕过。

人员权限与实例权限是两回事

实例角色让 Agent 调用服务;登录人的 IAM 权限决定他能否对指定实例执行 ssm:StartSession 等动作。默认按标签、环境和岗位限制目标实例,不给所有人全资源会话权限。需要端口转发或特定会话文档时,再为明确场景授权,不能用管理员策略掩盖资源或文档 ARN 写错。

日志怎样设计才真的可审计

在“Systems Manager → 会话管理器 → 首选项”配置 CloudWatch Logs 或 S3,并按需要使用 KMS 加密。先确认日志目标、密钥策略和操作者权限匹配。Shell 会话日志不能证明所有端口转发内容,涉及审计要求时必须按会话类型验证记录范围,并结合 CloudTrail 查看谁在何时启动、结束了会话。

连接失败对应哪条分支

  • 连接页显示实例不可用:回到 Agent、角色、网络和区域四项,不要先改用户密码。
  • AccessDenied:看报错中的具体动作和资源,分别检查登录人策略、实例角色和 KMS/日志目标策略。
  • 会话建立后命令权限不足:这是操作系统用户与文件权限问题,不应扩大云端 IAM 权限。
  • 日志没有到达:检查首选项、日志组/桶区域、密钥和服务权限,不要把“能登录”当作日志完成。

验收与回退

从一名普通运维账号建立会话,确认只能进入被授权实例;执行 id、查看主机名等只读命令,并核对 CloudTrail 与日志目标。随后从安全组移除公网 22 入站,再次验证会话。保留控制台救援或仅固定来源可用的 SSH 回退方案,直到跨区域、Agent 升级和角色轮换都验证完成。异常时恢复上一条受限规则,不得临时开放 0.0.0.0/0

完成当前任务后继续检查

官方资料

AWS 教程AWS CloudShell 显示账户验证中怎么办?已验证仍无法创建环境的排查2026-09-15AWS 教程AWS EBS 卷卡在 attaching 怎么排查?可用区、挂载限制与设备识别2026-09-01AWS 教程AWS CloudTrail 怎么查操作记录?Event history、Trail 与审计边界2026-08-28

加入开发者交流社区

与全球开发者、运维和工作室一起交流技术、分享经验、配置、账号与最新优惠信息

  • 云平台使用交流
  • 资源优惠信息
  • 最新教程与资讯
  • 开发者经验分享
联系 Telegram 客服
加入开发者交流社区