aws:通过nat网关访问公共网络,但不提供对入站连接的完全访问权限

时间:2016-03-21 13:29:12

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

我正在使用

配置基础架构
  • 1 VPC
  • 2个子网(1个私人(A)(10.0.1.0/24)+ 1个私人(B)(10.0.2.0/24)+ 1个公共(10.0.99.0/24))

两个子网都是子项目,我需要隔离子网之间的访问。

由于子网需要访问互联网,我已经创建了一个NAT网关,它位于公共子网下。

子网A的NACL - 下面的10.0.1.0/24;

* inbound
ALLOW:  10.0.99.0/24
DENY: ALL
* outbound:
ALLOW: ALL

使用此当前配置,当我将入站规则更改为ALLOW:ALL(或ALLOW:8.8.8.8)时,私有网络实例不会连接到公共网络。 (是的,入境)

所以问题是,如何在不允许所有传入连接的情况下允许所有传出连接。

PS。有大约10个子网,所以我不能指定来自其他子网的传入连接来阻止,我想阻止除异常之外的一切。

2 个答案:

答案 0 :(得分:1)

允许临时端口从外部返回流量(即1024-65536)并允许从服务端口上的私有端口传出(即80,443)

NACL不是状态防火墙,因此您必须执行此类操作才能使其正常工作。如果您在可能处于短暂范围内的较高端口上运行服务,那么使用安全组规则阻止这些服务可能是最简单的

参见http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_NACLs.html方案2

答案 1 :(得分:0)

我找到了解决方案,基本上是在允许来自当前子网和vpn公共子网的内部连接之后,为所有vpc设置拒绝规则并在之后放入临时端口。

这是一个例子;

首先说明

VPC:  10.0.0.0/16
project1-subnet-A: 10.0.2.0/24
project1-subnet-B: 10.0.3.0/24
project2-subnet-A: 10.0.4.0/24
project2-subnet-B: 10.0.5.0/24
management-subnet-A: 10.0.98.0/24

NACL for project1-subnet-A

对规则的解释;

 10 - allow all traffic inside subnet (not required)
 11 - allow all traffic from project1-B-subnet (same project, second availability zone)
 50 - allow all traffic from management subnet A (vpn)
 51 - allow all traffic from management subnet B(vpn)
 100- deny all traffic from VPC (except above networks)
 200- accept return traffic
 201-accept ICMP packages for connectivity test (not required)
 500-service related