AWS EC2使用SSM会话管理器连接
🧩 前提条件
-
已创建并运行中的 Amazon EC2 实例(Amazon Linux 2023)
-
拥有管理员权限的 AWS 账户
-
已连接到实例(例如通过 EC2 Instance Connect)
第一步:手动安装 SSM Agent
Amazon Linux 2023 默认未安装 amazon-ssm-agent
,我们需要手动安装。
-
安装 SSM Agent:
sudo yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm
✅ 如果看到 active (running)
状态,说明服务已成功启动。
-
启动 SSM Agent 并设置开机启动:
bash
复制编辑
sudo systemctl enable amazon-ssm-agent
sudo systemctl start amazon-ssm-agent
-
检查运行状态:
sudo systemctl status amazon-ssm-agent
第二步:为 EC2 实例创建 IAM 角色并绑定所需权限
为了让 EC2 通过 Systems Manager 管理,必须绑定一个包含所需权限的 IAM 角色。
1. 创建 IAM 角色
-
进入 AWS 控制台,导航到 IAM > 角色
-
点击【创建角色】,选择 可信实体类型为 AWS 服务
-
选择用例为 EC2,点击【下一步
2. 命名角色
-
角色名称示例:
ssm
-
描述(可选):用于允许 EC2 实例调用 SSM 和 CloudWatch 等服务
-
确认无误后点击【创建角色】
3. 添加权限策略
-
搜索并勾选策略:
AmazonSSMManagedInstanceCore
-
如果你需要测试更多权限,可一并选择
AdministratorAccess
-
点击【下一步】
第三步:将 IAM 角色绑定到 EC2 实例
-
回到 EC2 控制台
-
找到你的实例,在【操作】 > 【安全】 > 【修改 IAM 角色】
-
从下拉列表中选择刚刚创建的
ssm
角色 -
点击【更新 IAM 角色】
更新后你会看到实例页面中 IAM 角色已成功绑定。
第四步:为 SSM 服务配置 VPC 终端节点
当 EC2 实例位于私有子网中时,无法直接通过互联网连接 AWS 服务(如 SSM),此时需通过创建 Interface 类型的 VPC Endpoint 来实现私网访问。
✅ 1. 进入 VPC 控制台创建终端节点
-
打开 AWS 控制台,导航至:VPC → 终端节点
-
点击【创建终端节点】
✅ 2. 选择 SSM 相关的服务名称(共3个)
在服务名称中依次搜索并勾选:
-
com.amazonaws.ap-southeast-1.ec2messages
-
com.amazonaws.ap-southeast-1.ssm
-
com.amazonaws.ap-southeast-1.ssmmessages
✅ 注意:这三个是 Systems Manager 正常工作的必需终端节点。
✅ 3. 网络设置
-
选择对应的 VPC
-
勾选所有相关的子网(建议选择所有可用区)
-
勾选使用 IPv4 地址类型
-
选择一个现有的安全组(推荐与实例相同安全组)
✅ 4. 策略设置
选择默认选项:完全访问
然后点击【创建终端节点】。终端节点创建过程通常只需 1 分钟,状态变为 “可用” 即完成。
第五步:使用 Systems Manager Session Manager 无公网连接登录实例
有了 SSM Agent + IAM 角色 + VPC 终端节点支持,就可以完全在内网中访问 EC2 实例,无需公网 IP 和 SSH。
✅ 1. 打开 Systems Manager 控制台
-
导航至:Systems Manager > 会话管理器
-
点击右上角【启动会话】
✅ 2. 启动会话
-
在目标实例列表中选择你绑定了 IAM 角色并安装了 SSM Agent 的实例(例如:
ssm
) -
点击【下一步】,选择默认文档,无需修改
-
最后点击【Start Session(启动会话)】
✅ 3. 登录成功
你会看到一个 WebShell 界面,直接以 shell 用户身份进入 EC2 实例: