我们的目标是让我们的Elastic Beanstalk设置通过NAT网关路由流量,因为我们需要连接到需要IP白名单的API的某些流量。我没有修改当前的设置,而是创建了一个单独/隔离的VPC& EC2实例熟悉并测试设置。但是我还没有让设置按预期工作。
以下是设置
路线表设置
10.0.0.0/16 local
0.0.0.0/0 igw-4d4b212a
通过上述设置,我可以登录服务器并发出curl请求以获取服务器的公共IP地址(curl icanhazip.com)。一旦我将路由表中的规则添加到网址已解析的IP以通过NAT网关路由,我就无法ping或请求curl请求,因为它会超时。
添加到路由表中的规则不起作用
45.63.64.111/32 nat-00bb49204627de7e6
144.202.71.30/32 nat-00bb49204627de7e6
不确定我是否忽略了某些内容,或者我误解了NAT网关的概念和用例?
答案 0 :(得分:1)
这是公共IP 45.63.64.111。您需要IGW才能达到此流量。
缺少指导IGW部分。
Nat网关用于私有子网中的EC2(没有连接IGW)。在上面的场景中,EC2在公共子网中,因此理想情况下它不需要NAT。
以下是我要做的使用NAT- 1.将EC2置于私人区域。并有一个路由表,其中所有传出流量到nat-gateway。 2.公共子网中的Nat-gateway会将您的流量转发给IGW。
答案 1 :(得分:1)
好像你误解了NAT的目的。
其目的是为私有子网中的实例提供出站Internet访问,而不允许任何入站连接 - 即路由表没有条目的子网:
0.0.0.0/0 igw-4d4b212a
如果要限制从EC2实例到特定IP地址的访问,请将NAT放在公有子网中,创建私有子网,并将实例放在私有子网中。然后将两条路由添加到与私有子网关联的路由表中:
45.63.64.111/32 nat-00bb49204627de7e6
144.202.71.30/32 nat-00bb49204627de7e6
如果您只想限制EC2实例访问几个IP地址,则只能为这些地址创建路由:
45.63.64.111/32 igw-4d4b212a
144.202.71.30/32 igw-4d4b212a
请注意,使用此最后一个选项,如果您的安全组中已打开规则,则可以从Internet访问您的实例。