NAT 网关高居账单第一的原因
一句话总结
私有资源访问外部共有三条路径,它们的费用和安全性各不相同。 不加思考就使用 NAT,它很可能登上账单费用排行榜前列。
为什么需要了解这些
创建私有子网后,其中的实例默认没有访问外部的路径。但它们仍需要获取软件包更新、上传日志,以及拉取容器镜像。
最简单的答案是部署一个 NAT 网关,因此大多数人都会这样做,之后便再也不检查。私有子网的所有出站流量汇聚到这一处,费用按经过的数据量不断累积。
几个月后按项目拆分账单,NAT 往往位列第一。多数情况下,这些流量并非不必要,只是选错了路径;只要改变路径,费用就会消失。因此要把出站路径分成三类,并预先确定在什么情况下使用哪一种。
三条路径
| 方式 | 定义 | 费用 | 安全性 |
|---|---|---|---|
| 互联网网关(IGW) | 公有子网的双向通道 | 网关本身免费 | 暴露公网 IP |
| NAT 网关 | 私有网络 → 互联网的单向通道 | 按小时 + 数据处理量 | 安全,外部无法主动进入 |
| VPC 端点 | 直达云服务 | 网关型免费 / 接口型收费 | 不经过互联网 |
NAT 费用为何会膨胀
NAT 网关有两种计费方式。
1. 시간당 요금 — 켜 두기만 해도 나간다
2. 처리 데이터 요금 — GB 당. 나가는 것도 들어오는 것도
如果为了可用性在每个可用区分别部署一个,费用还会按数量倍增。3 个可用区就意味着 3 个 NAT。
问题主要出在第二项。如果私有子网中的实例从 S3 读取大量数据,全部流量都会经过 NAT,即使 S3 就位于同一区域。日志归档、备份、容器镜像拉取都会从这里通过。
VPC 端点解决什么问题
端点会在 VPC 内建立一条通往云服务的专用通道。流量既不经过互联网,也不经过 NAT。
- 网关型(S3、DynamoDB)——在路由表中添加路径。不收取费用。 没有不用的理由。
- 接口型(其他大多数服务)——在子网中创建 ENI。虽然按小时和数据量计费,但通常比 NAT 便宜。
仅仅创建 S3 网关端点,就经常能让 NAT 费用降到一半以下。这是优化云成本时最先检查的项目之一。
它在安全方面的收益也很大:可以通过端点策略限制为只能访问本账户的存储桶,从而收窄数据外泄路径。
可替代堡垒机的方案
过去,为了访问私有实例,通常会部署堡垒机(跳板机);如今使用替代方案往往更好。
- 会话管理器类方案——由代理主动向外建立连接,因此无需开放任何入站端口,并且能保留访问记录。
- VPN / 零信任访问控制——提供按用户身份的认证与审计。
堡垒机本身就是需要管理的对象,包括补丁、密钥和日志,而且必须开放 22 端口。如果能够移除,最好就不要保留。
连接本地数据中心
| 方式 | 特点 |
|---|---|
| 站点到站点 VPN | 在互联网之上的加密隧道,部署迅速;带宽和延迟受互联网影响 |
| 专线 | 带宽和延迟稳定;建设需数周到数月,成本高 |
| 中转网关 | 以星形连接多个 VPC 与本地数据中心,简化管理 |
VPC 超过三四个后,用对等连接构建网状拓扑很快就会达到极限(N 个 VPC 需要 N(N-1)/2 条连接)。这时就该引入中转网关。
控制出站路径会带来什么变化
大多数系统都能很好地封锁入站路径。人们开放出站路径的理由是“从内部访问外部是安全的”,但入侵之后的所有步骤都依赖出站通信:下载工具、接收命令、发送数据。
先默认阻止,再只开放必要目标。 不过,一次性全部封锁会让服务停止,因此首先要统计实际访问了哪些外部目标。起点不是统计流日志中的拒绝记录,而是统计允许记录。
允许列表应按名称而不是 IP 管理,才能长期有效。 外部 API 的地址会频繁变化。写死 IP 会在某天悄无声息地断开,而当时为了救急而放宽的规则往往会永久残留。应使用基于名称的策略或代理来管理该列表。
强制经过代理会同时获得两项能力。 系统能够记录流量去向,也能阻止访问列表之外的目标。但代理会成为单点故障,还必须决定如何处理 TLS。若要查看通信内容,就必须在中间替换证书;这会让代理成为能够以明文查看所有通信的位置。多数组织会选择只查看目标名称(SNI),而不检查内容。
访问元数据服务的路径最为特殊。 在云环境中,169.254.169.254 会提供实例凭据。如果应用存在 SSRF 漏洞,攻击者就能让它访问这个地址,从而夺取全部权限。最可靠的防御不是防火墙,而是元数据服务自身的设置,例如强制 IMDSv2 和限制跃点数。
DNS 同样是一条出站路径。 即使阻止所有端口,只要 DNS 查询仍能发出,就可以借此一点点向外传输数据。实际可行的对策是仅允许使用内部解析器,保留解析器的查询日志,并监控不同于平常的查询量。
生产现场会看到什么
- 账单费用第一名是 NAT → 缺少 S3 端点。
- 容器镜像拉取流量经过 NAT → 需要镜像仓库端点或缓存。
- 6 个 VPC 全部使用对等连接 → 共 15 条连接,应改用中转网关整理。
下一步要看什么
名称解析与负载均衡——决定流量实际去向的最后一层。