首页 > 解决方案 > 如何为 AWS 中的所有 ip 设置一个 Nat 网关,并允许返回的流量不通过 NAT 网关?

问题描述

如果他们检测到来自它们的过多流量(反 DOS),我想使用外部服务黑名单 ip。因此,我需要能够为该服务提供特定的 IP,以便他们可以将该 IP 列入白名单。

所以我创建了我的 nat 网关并设置了路由,这样任何流向该服务的流量都通过 nat 网关。

问题是这个服务也是一个云服务,所以它的 IP 地址不是静态的。

所以最好的情况是我可以为所有 IP 地址设置一个过滤器并通过 nat 网关路由它。问题是返回的流量也通过 nat 网关。所以这意味着我不能再通过 ssh 进入我的实例或从外部连接到我的数据库,因为它是一个安全链接,并且需要通过相同的路线返回。

根据我在网络 ACL 配置中看到的内容,我可以将返回流量与发送流量区别对待 - 这是通过端口。但似乎我不能对 nat 网关做同样的事情......

有没有办法不通过 nat 网关发送返回流量?或者这个问题的另一种解决方案?

标签: amazon-web-servicesroutingnat

解决方案


所以这意味着我不能再通过 ssh 进入我的实例或从外部连接到我的数据库

这是唯一的问题,还是外部服务与您的主机建立连接(而不是通过您的主机启动的单个连接进行回复)?

如果是前者,那么您可以做两件事。第一种是使用 VPN,以便您的计算机或网络在逻辑上是 VPC 的一部分。第二个,也是更普遍的小型站点,是使用堡垒主机:一个位于公共子网上的 EC2 实例,并允许通过 SSH 隧道连接到私有子网上的实例。

您还可以使用公共 IP 公开数据库,以避免需要隧道,尽管我真的不推荐这样做。只要您在私有子网上的实例使用 AWS 公开的终端节点(或该终端节点的 Route53 别名),它们就会连接到数据库的私有 IP。


推荐阅读