EC2 Instance Connect 免除 SSH 密钥管理 - 通过浏览器和 CLI 安全连接

解析 EC2 Instance Connect 的无密钥 SSH 连接、基于 IAM 的访问控制以及 Endpoint 的使用方法。

EC2 Instance Connect 概述

EC2 Instance Connect 是无需预先分发 SSH 密钥即可安全连接 EC2 实例的服务。传统 SSH 连接中密钥对的创建、分发、轮换和丢失处理是运维负担,而 Instance Connect 使用临时公钥,免除了密钥管理。

Endpoint 与私有连接

EC2 Instance Connect Endpoint 是在 VPC 内创建的端点,无需公有 IP 或堡垒机即可连接私有子网中的实例。通过 IAM 策略控制 ec2-instance-connect:OpenTunnel 操作,限制对特定实例或子网的连接。连接时临时 SSH 公钥在实例元数据中放置 60 秒,连接建立后自动删除,不会留下持久密钥。

EC2 Instance Connect Endpoint

使用 EC2 Instance Connect Endpoint(EIC Endpoint),无需公有 IP 地址或堡垒机即可通过 SSH/RDP 连接私有子网中的实例。在 VPC 内创建 EIC Endpoint,通过 IAM 策略控制允许连接的用户和目标实例。连接通过 AWS PrivateLink 隧道传输,因此无需在实例安全组中开放入站 SSH 端口。可通过 CloudTrail 审计谁在何时连接了哪个实例,且无需管理 SSH 密钥。一个 EIC Endpoint 可连接 VPC 内多个子网的实例,不产生额外费用。 如需系统学习 SSH 连接,相关书籍 (Amazon)也可参考。

连接方式比较与选择

EC2 的连接方式有 EC2 Instance Connect、Systems Manager Session Manager 和传统 SSH 密钥对三种。Instance Connect 通过元数据服务注入临时公钥,无需管理持久 SSH 密钥。Session Manager 基于代理,不使用 SSH 协议,完全无需开放端口,适合最严格的安全要求。传统 SSH 密钥对与现有工作流兼容性高,但密钥轮换和分发的运维负担是挑战。开发环境适合 Instance Connect 的便捷性,生产环境适合 Session Manager 的审计性和安全性。

EC2 Instance Connect 费用

EC2 Instance Connect 免费使用。浏览器 SSH 连接、CLI 连接和 Instance Connect Endpoint 的使用均不产生额外费用。Session Manager(Systems Manager)也免费,无论选择哪种,连接本身的成本为零。使用 Instance Connect Endpoint 可在无公有 IP 的情况下连接私有子网实例,减少 NAT Gateway 或堡垒机的成本。

总结

EC2 Instance Connect 是免除 SSH 密钥管理、提供基于 IAM 访问控制的服务。通过 EIC Endpoint 无需公有 IP 或堡垒机即可连接私有子网实例,CloudTrail 记录连接审计日志。结合 Session Manager 的使用,可为开发环境和生产环境选择合适的连接方式。