EC2 Instance Connect 提供了一种安全的方式,通过SSH连接到 Linux 实例。使用 EC2 Instance Connect,可以利用IAM策略控制对实例的 SSH 访问,无需共享和管理 SSH 密钥。所有使用 EC2 Instance Connect 的连接请求都记录到 AWS CloudTrail,便于审计连接请求。

EC2 Instance Connect 是一种现代化的实例访问管理解决方案,它通过以下方式提高了安全性和管理效率:

  1. 消除 SSH 密钥管理:不再需要创建、分发和跟踪 SSH 密钥对
  2. 集成 IAM 权限:利用现有的 AWS IAM 基础设施来控制实例访问
  3. 增强审计能力:所有连接都记录在 CloudTrail 中,便于合规和安全审计
  4. 灵活的连接选项:支持通过浏览器控制台或传统 SSH 客户端连接
  5. 临时凭证:使用短期(60秒)SSH 密钥,减少凭证泄露的风险

这种方法特别适合需要严格访问控制和安全合规记录的企业环境,同时简化了开发人员和系统管理员的日常工作流程。

工作原理

当使用 EC2 Instance Connect 连接实例时,附加到用户的 IAM 策略授权用户将公钥推送到实例元数据,EC2 Instance Connect API 会将 SSH 公钥推送到实例元数据中,该公钥在那里停留60秒。SSH 守护进程使用 AuthorizedKeysCommand 和 AuthorizedKeysCommandUser(安装 EC2 Instance Connect 时配置)从实例元数据中查找公钥进行身份验证,然后将用户连接到实例。

EC2 Instance Connect 无需额外付费。

使用前提条件

  1. 安装 EC2 Instance Connect

    • 可以使用预装 EC2 Instance Connect 的 AMI 启动实例
    • 或在支持的 AMI 上安装 EC2 Instance Connect
  2. 确保网络连接

    • 通过互联网连接:实例必须有公共 IPv4 或 IPv6 地址,位于有通往互联网路由的公共子网中
    • 通过私有 IP 连接:需要建立到 VPC 的私有网络连接(如 AWS Direct Connect、VPN 或 VPC 对等连接)
    • 或考虑使用 EC2 Instance Connect Endpoint 作为替代方案
  3. 允许入站 SSH 流量

    • 使用 EC2 控制台连接:必须允许来自 EC2 Instance Connect 服务的流量(通过前缀列表标识)
    • 使用 CLI 或 SSH 连接:确保安全组允许来自您 IP 地址的入站 SSH 流量
  4. 授予权限

    • 必须向每个使用 EC2 Instance Connect 连接到实例的 IAM 用户授予所需权限