AWS中的私有子网选项

时间:2016-10-28 13:29:11

标签: amazon-web-services amazon-vpc vpc

几天前我开始讨论aws,我有一个关于VPC的问题。 我正在考虑两个选项来制作"私人"一个子网,我想知道你的意见:

选项1:
带有ig的子网(真正的公共子网),其ACL只允许来自VPC的流量 优点:便宜!
缺点:每个实例的公共IP(这是一个真正的问题吗?),每个实例都有不同的公共IP(对于ip的白名单来说是一种混乱的东西)

选项2:
没有使用nat网关连接的ig的子网。
优点:更安全?,每个实例都有相同的公共IP 缺点:更贵。

我认为选项2是最好的技术解决方案,只是稍贵一点。但是,你认为选项1是一种不好的做法吗?还有更多我没有看到的陷阱吗?

1 个答案:

答案 0 :(得分:2)

您的要求似乎是:

  • 运行一些Amazon EC2实例
  • 让他们从互联网“私密”(无法从互联网直接访问实例)
  • 允许实例访问Internet(例如,下载更新或与AWS API端点通信)

您的选项1 是一个公有子网,通过修改网络ACL以允许仅在子网内的流量而成为私有子网。您正在为实例提供公共IP地址,可能是因为他们可以访问Internet。 这不起作用。限制访问VPC的网络ACL也会阻止从实例到Internet的流量。

您的选项2 是一个私有子网,实例通过NAT网关访问Internet。 无需为这些实例分配公共IP地址,因为它们位于私有子网中。是的,这将有效,但是,正如您所注意到的,NAT网关(或NAT实例)需要额外费用。

另一种方法是使用具有安全组的公共子网

  • 使用公有子网并为实例自动分配公共IP地址。这将允许他们访问互联网。 (注意:这与弹性IP地址不同,每个AWS账户每个区域限制为5个。)
  • 在每个实例上使用安全组来阻止入站访问。实例仍然可以启动出站访问到Internet(并且响应将返回,因为安全组有状态

请参阅文档:Amazon EC2 Security Groups for Linux Instances

当然,由于实例现在会阻止入站流量,因此您需要一种方法来连接它们。这通常通过在公有子网中启动堡垒服务器(跳转框)来完成。您可以通过公共IP地址连接到堡垒服务器,然后通过其私有IP地址连接到私人服务器。要允许此操作,请将私有实例上的安全组配置为允许来自VPC的IP范围或与Bastion Server关联的安全组的入站流量。