AWS:Public 子网 + VPN 网关
AWS: Public subnet + VPN gateway
问题
我们能否制作一条同时具有 igw-id(Internet 网关 ID)和 vgw-id(VPN 网关 ID)的路由 table?如果我们做不到,t/shouldn为什么?
示例
10.0.0.0/16 --> Local
172.16.0.0/12 --> vgw-id
0.0.0.0/0 --> igw-id
参考
https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario3.html
(我主要参考“概述”部分和“备用路由”部分。)
说明
上面的网页显示了一个 VPC 有一个 public 子网、一个私有子网和一个 VPN 网关的情况。在此示例中,始终从私有子网中的实例访问 VPN 网关(意味着其路由 table 没有记录“igw-id”)。我想知道为什么一条路线 table 没有同时具有“igw-id”和“vgw-id”。
是的,您可以拥有一条包含您指定的 3 条路线的路线 table。但是,请记住,使用路由 0.0.0.0/0 --> igw-id
,互联网上的主机可以启动与该子网中的实例的连接。通常,您希望保护子网中的实例,您允许路由到您的内部部署网络,而不是将其暴露给互联网。如果这些实例需要连接到互联网,AWS 建议 NAT devices for your VPC。
虽然这在技术上是可行的,但不这样做的主要原因是网络分段的概念。它基本上遵循“纵深防御”方法,即网络层应分为“public”和“私有”部分(还经常使用更多区域,例如第三层用于数据存储,第四层用于基础设施)管理其他三层)。
由于您的 public 子网直接暴露在互联网上,当您配置错误时,它很可能会被破坏。如果您的 public 子网中有通往您的 VPN 网关的路由,那么攻击者也可以通过一次破坏来攻击您的本地环境。
这就是为什么最好在您的体系结构中添加一个或两个网络层。即使 public 层受到威胁,他们仍然需要进入私有层中的实例才能攻击您的本地环境。
建议您的 public 子网尽可能仅包含弹性负载平衡器或类似设备。这是减少应用程序服务器攻击面的一个很好的方法(减少暴露不需要的端口等的机会)。
可以找到一个很好的指南 here。它确实包含 vpns,但您可以将它们视为应用程序层的一部分。
是的,我们可以同时拥有 igw
和 vgw
。事实上,上面的示例非常适合 public 子网,它可以通过直接连接或站点到站点 VPN 连接到您的公司网络,并且还可以访问互联网并可以从互联网访问。
现在,无论您是否需要,这是一个架构决定。在 AWS 给出的示例场景中,他们尝试通过 public 子网(带有 igw
)来隔离子网,该子网可以包含可从互联网访问的服务和其他后端服务的私有子网(例如:数据库)。可以使用站点到站点 VPN 从公司网络访问这些后端服务,这就是子网具有 vgw
.
的原因
问题
我们能否制作一条同时具有 igw-id(Internet 网关 ID)和 vgw-id(VPN 网关 ID)的路由 table?如果我们做不到,t/shouldn为什么?
示例
10.0.0.0/16 --> Local
172.16.0.0/12 --> vgw-id
0.0.0.0/0 --> igw-id
参考
https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Scenario3.html
(我主要参考“概述”部分和“备用路由”部分。)
说明
上面的网页显示了一个 VPC 有一个 public 子网、一个私有子网和一个 VPN 网关的情况。在此示例中,始终从私有子网中的实例访问 VPN 网关(意味着其路由 table 没有记录“igw-id”)。我想知道为什么一条路线 table 没有同时具有“igw-id”和“vgw-id”。
是的,您可以拥有一条包含您指定的 3 条路线的路线 table。但是,请记住,使用路由 0.0.0.0/0 --> igw-id
,互联网上的主机可以启动与该子网中的实例的连接。通常,您希望保护子网中的实例,您允许路由到您的内部部署网络,而不是将其暴露给互联网。如果这些实例需要连接到互联网,AWS 建议 NAT devices for your VPC。
虽然这在技术上是可行的,但不这样做的主要原因是网络分段的概念。它基本上遵循“纵深防御”方法,即网络层应分为“public”和“私有”部分(还经常使用更多区域,例如第三层用于数据存储,第四层用于基础设施)管理其他三层)。
由于您的 public 子网直接暴露在互联网上,当您配置错误时,它很可能会被破坏。如果您的 public 子网中有通往您的 VPN 网关的路由,那么攻击者也可以通过一次破坏来攻击您的本地环境。
这就是为什么最好在您的体系结构中添加一个或两个网络层。即使 public 层受到威胁,他们仍然需要进入私有层中的实例才能攻击您的本地环境。
建议您的 public 子网尽可能仅包含弹性负载平衡器或类似设备。这是减少应用程序服务器攻击面的一个很好的方法(减少暴露不需要的端口等的机会)。
可以找到一个很好的指南 here。它确实包含 vpns,但您可以将它们视为应用程序层的一部分。
是的,我们可以同时拥有 igw
和 vgw
。事实上,上面的示例非常适合 public 子网,它可以通过直接连接或站点到站点 VPN 连接到您的公司网络,并且还可以访问互联网并可以从互联网访问。
现在,无论您是否需要,这是一个架构决定。在 AWS 给出的示例场景中,他们尝试通过 public 子网(带有 igw
)来隔离子网,该子网可以包含可从互联网访问的服务和其他后端服务的私有子网(例如:数据库)。可以使用站点到站点 VPN 从公司网络访问这些后端服务,这就是子网具有 vgw
.