Amazon EC2 中的基础设施安全性 - Amazon Elastic Compute Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

Amazon EC2 中的基础设施安全性

作为一项托管服务,Amazon EC2 由 Amazon Web Services:安全流程概述白皮书中所述的 AWS 全球网络安全流程提供保护。

您可以使用 AWS 发布的 API 调用通过网络访问 Amazon EC2。客户端必须支持传输层安全性 (TLS) 1.0 或更高版本。建议使用 TLS 1.2 或更高版本。客户端还必须支持具有完全向前保密 (PFS) 的密码套件,例如 Ephemeral Diffie-Hellman (DHE) 或 Elliptic Curve Ephemeral Diffie-Hellman (ECDHE)。大多数现代系统(如 Java 7 及更高版本)都支持这些模式。

此外,必须使用访问密钥 ID 和与 IAM 委托人关联的秘密访问密钥来对请求进行签名。或者,您可以使用 AWS Security Token Service (AWS STS) 生成临时安全凭证来对请求进行签名。

网络隔离

Virtual Private Cloud (VPC) 是 AWS 云上您自己的逻辑隔离区域中的虚拟网络。可以使用单独的 VPC 按工作负载或组织实体隔离基础设施。

子网是 VPC 中的 IP 地址范围。在启动实例时,您可以在 VPC 上的子网中启动该实例。可以使用子网隔离单个 VPC 中的应用程序层(例如,Web、应用程序和数据库)。如果不应直接从 Internet 访问实例,请使用私有子网访问。

要从 VPC 中调用 Amazon EC2 API 而不通过公有 Internet 发送流量,请使用 AWS PrivateLink。

物理主机上的隔离

同一物理主机上的不同 EC2 实例彼此隔离,就好像它们位于不同的物理主机上一样。管理程序隔离 CPU 和内存,并为实例提供虚拟化磁盘,而不是访问原始磁盘设备。

在停止或终止实例时,管理程序将清理分配给实例的内存(设置为零),然后再将内存分配给新实例并重置每个存储块。这会确保不会意外向另一个实例泄露数据。

网络 MAC 地址由 AWS 网络基础设施动态分配给实例。IP 地址由 AWS 网络基础设施动态分配给实例,或者由 EC2 管理员通过经过身份验证的 API 请求进行分配。AWS 网络允许实例仅从分配给它们的 MAC 和 IP 地址发送流量。否则,将会丢弃流量。

默认情况下,实例无法接收未明确将其指定为目标地址的流量。如果需要在实例上运行网络地址转换 (NAT)、路由或防火墙服务,您可以为网络接口禁用源/目标检查。

控制网络流量

请考虑使用以下方法来控制到 EC2 实例的网络流量:

  • 使用安全组限制实例访问。例如,您可以仅允许来自公司网络地址范围的流量。

  • 如果不应直接从 Internet 访问实例,请使用私有子网访问。使用堡垒主机或 NAT 网关从私有子网中的实例进行 Internet 访问。

  • 使用 AWS Virtual Private Network 或 AWS Direct Connect 建立从远程网络到 VPC 的私有连接。有关更多信息,请参阅网络到 Amazon VPC 的连接选项

  • 使用 VPC Flow Logs 监控到达实例的流量。

  • 使用 AWS Security Hub 检查来自实例的意外网络访问。

  • 使用 EC2 Instance Connect 通过安全 Shell (SSH) 连接到实例,而无需共享和管理 SSH 密钥。

  • 使用 AWS Systems Manager 会话管理器远程访问实例,而不是打开入站 SSH 端口和管理 SSH 密钥

  • 使用 AWS Systems Manager Run Command 自动执行常见的管理任务,而不是打开入站 SSH 端口和管理 SSH 密钥

除了限制对每个 Amazon EC2 实例的网络访问之外,Amazon VPC 还支持实施额外的网络安全控制,如内联网关、代理服务器和各种网络监控选项。

有关更多信息,请参阅 AWS 安全性最佳实践白皮书。