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 实例的网络流量:

  • 使用安全组限制实例访问。配置 Amazon EC2 实例安全组以允许 Amazon EC2 实例所需的最小网络流量,并且仅允许从已定义、预期和批准的位置进行访问。例如,如果 Amazon EC2 实例是 IIS Web 服务器,请将其安全组配置为仅允许入站 HTTP/HTTPS、Windows 管理流量和最少出站连接。

  • 使用安全组作为用于控制对 Amazon EC2 实例的网络访问的主要机制。必要时,尽量少使用网络 ACL,以提供无状态的粗略网络控制。安全组比网络 ACL 更为通用,因为它们能够执行有状态数据包筛选和创建引用其他安全组的规则。不过,网络 ACL 作为一项辅助控制,可以有效地拒绝特定流量子集或提供高级子网护栏。此外,由于网络 ACL 将应用于整个子网,因此,可以将它用作深度防御措施,以防实例在没有正确安全组的情况下意外启动。

  • 使用组策略对象 (GPO) 集中管理 Windows 防火墙设置,以便进一步增强网络控制。通常,客户将使用 Windows 防火墙来进一步查看网络流量并对安全组筛选器进行补充,创建高级规则来阻止特定应用程序访问网络或筛选来自子集 IP 地址的流量。例如,Windows 防火墙可以将对 EC2 元数据服务 IP 地址的访问限制为特定的白名单用户或应用程序。或者,面向公众的服务可能使用安全组来限制特定端口的流量,而 Windows 防火墙则维护显式阻止的 IP 地址的黑名单。

  • 在管理 Windows 实例时,限制对几个明确定义的集中式管理服务器或堡垒主机的访问可减小环境的攻击面。此外,使用安全管理协议,如通过 SSL/TLS 进行的 RDP 封装。Remote Desktop Gateway Quick Start 提供了有关部署远程桌面网关(包括将 RDP 配置为使用 SSL/TLS)的最佳实践。

  • 使用 Active Directory 或 AWS Directory Service 严格集中地控制和监控对 Windows 实例的交互式用户和组访问,并避免本地用户权限。此外,请避免使用域管理员,而是创建更精细的、应用程序特定的基于角色的账户。利用 Just Enough Administration (JEA),可以在没有交互式访问或管理员访问的情况下管理对 Windows 实例进行的更改。此外,JEA 使组织能够锁定对实例管理所需的 Windows PowerShell 命令子集的管理访问权限。有关更多信息,请参阅 AWS 安全最佳实践白皮书中关于“管理 Amazon EC2 的操作系统级访问权限”的部分。

  • 系统管理员应使用带有限访问权限的 Windows 账户执行日常活动,并且仅在有必要执行特定配置更改时提升访问权限。此外,仅在绝对必要时直接访问 Windows 实例。相反,利用中央配置管理系统(例如 EC2 Run Command、Systems Center Configuration Manager (SCCM)、Windows PowerShell DSC 或 Amazon EC2 Systems Manager (SSM))将更改推送到 Windows 服务器。

  • 使用所需的最少网络路由配置 Amazon VPC 子网路由表。例如,仅将需要 Internet 的直接访问权限的 Amazon EC2 实例放置到带互联网网关路由的子网中,并且仅将需要内部网络的直接访问权限的 Amazon EC2 实例放置到带虚拟私有网关路由的子网中。

  • 考虑使用其他安全组或 ENI,独立于常规应用程序流量来控制和审计 Amazon EC2 实例管理流量。此方法可让客户实施用于更改控制的特殊 IAM 策略,从而更轻松地审计对安全组规则或自动规则验证脚本进行的更改。此外,多个 ENI 为您控制网络流量带来了其他选择,其中包括能够创建基于主机的路由策略或利用基于 ENI 分配的子网的其他 VPC 子网路由规则。

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

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

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

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

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

  • 许多 Windows 操作系统角色和 Microsoft 业务应用程序还提供了增强功能,例如 IIS 中的 IP 地址范围限制、Microsoft SQL Server 中的 TCP/IP 筛选策略以及 Microsoft Exchange 中的连接筛选策略。应用层中的网络限制功能可以为关键业务应用程序服务器提供额外的防御层。

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

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