本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
限制 VPC 的出站流量
使用安全组限制 VPC 的出站流量
评估架构的出站流量要求后,开始修改 VPC 的安全组规则以满足组织的安全需求。确保将所有必要的端口、协议和目标 IP 地址添加到安全组的允许列表中。
有关其说明,请参阅 Amazon VPC 用户指南中的使用安全组控制到资源的流量。
重要提示
在测试环境中更新 VPC 的安全组规则后,请务必确认您的应用程序仍按预期运行。有关更多信息,请参阅本指南的使用 VPC 流日志分析您的 VPC 出站流量的最佳实践部分。
特定 AWS 服务的关键安全组注意事项
亚马逊弹性计算云(亚马逊 EC2)
创建 VPC 时,它带有一个允许所有出站流量的默认安全组。除非您创建自己的自定义安全组,否则亚马逊弹性计算云 (Amazon EC2) 实例使用此默认安全组。
重要提示
要降低您的 Amazon EC2 实例无意中使用默认安全组的风险,请移除该组的所有出站规则。有关更多信息,请参阅 Amazon VPC 用户指南中使用安全组规则部分中的删除安全组规则。
Amazon Relational Database Service(Amazon RDS)
除非数据库充当客户端,否则所有 Amazon RDS DB 实例的出站安全组规则都可以删除。有关更多信息,请参阅 Amazon RDS 用户指南中的 VPC 安全组概述。
Amazon ElastiCache
除非该实例充当客户端,否则可以删除亚马逊 ElastiCache (Redis OSS) 和亚马逊 ElastiCache (Memcached) 实例的所有出站安全组规则。有关更多信息,请参阅下列内容:
-
安全组: EC2-Classic(亚马逊 ElastiCache (Redis OSS)用户指南)
-
了解 ElastiCache 和亚马逊 VPCs(亚马逊 ElastiCache (Memcached) 用户指南)
使用 AWS Network Firewall 和 DNS 主机名限制 VPC 的出站流量
当应用程序使用动态 IP 地址时,最佳实践是使用 DNS 主机名来筛选其 VPC 的出站流量,而不是使用 IP 地址。例如,如果应用程序正在使用应用程序负载均衡器,则该应用程序的关联 IP 地址将发生变化,因为节点会不断扩展。在这种情况下,使用 DNS 主机名筛选出站网络流量比使用静态 IP 地址更安全。
您可以使用 AWS Network Firewall
有关更多信息和 Network Firewall 策略规则示例,请参阅 AWS Network Firewall 开发者指南中的域筛选。有关详细说明,请参阅以下 AWS Prescriptive Guidance(APG)模式:使用 Network Firewall 从出站流量的服务器名称指示(SNI)捕获 DNS 域名。
注意
SNI 是 TLS 的扩展,在流量中保持未加密状态。它表示客户端试图通过 HTTPS 访问的目标主机名。
重要提示
在测试环境中更新 Network Firewall 状态规则后,请确保您的应用程序仍按预期运行。确保 SNI 提供的必需的 DNS 域名均未被阻止。
架构示例
下图显示了使用 AWS Network Firewall DNS 主机名过滤 VPC 出站流量的示例架构:

图表显示了以下工作流:
-
出站请求从私有子网内发出,然后发送到受保护子网中的 NAT 网关。
-
NAT 网关收到的 HTTPS 流量将路由到公有子网中的 AWS Network Firewall 终端节点。
-
AWS Network Firewall 检查请求并应用配置的防火墙策略规则来接受或拒绝传递到 Internet 网关的请求。
-
经批准的出站请求将发送到互联网网关。
-
来自互联网网关的经批准的流量将被发送到互联网以访问预期的 URL(由 SNI 在非加密的 HTTPS 标头中提供)。