適用於私有子網路的 AWS VPC ACL

適用於私有子網路的 AWS VPC ACL

我使用 VPC 精靈建立了一個具有兩個子網路(公有子網路和私有子網路)的 VPC,並在私人子網路前面有一個 NAT。

檢視子網路的 ACL,有一條規則允許 的所有入站流量0.0.0.0/0。我想禁止任何不是來自 NAT(IP 10.0.0.8)的入站流量,因此我將 ACL 更改為與Scenario 2中的類似http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Appendix_NACLs.html

也就是說,ALLOW來自 的所有連接埠上的所有協議10.0.0.0/16,不允許0.0.0.0/0

這似乎無法正常工作,因為我的實例沒有網路存取權限。我還需要設定/更改其他內容才能使其正常工作嗎?

答案1

公用可路由 IP 位址在通過 NAT 實例時不會被重寫。

您需要在網路 ACL 中的私有子網路上保留允許的整個公用 Internet 位址空間。如果私有子網路缺少 Internet 閘道且其預設路由指向 NAT 實例,則公用 Internet 位址將只能透過 NAT 實例間接到達。

VPC 網路ACL 對於限制VPC 內實例之間的存取很有用,但它們的無狀態性質使得它們對於您描述的配置類型來說很麻煩:它不會追蹤與允許的出站規則匹配的連接以允許相應的入站流量,因此您被迫透過允許入站流量的臨時連接埠範圍來進行近似。

更靈活的方法是結合使用 VPC 路由、私有子網路上沒有 Internet 網關以及iptablesNAT 實例中的良好配置來控制進出公共可路由 IP 空間的流量,同時將網路 ACL 留給私有預設情況下,子網路實例允許公用可路由IP 空間。在這種環境中,放置在私有子網路中足以保護執行個體免受 NAT 執行個體未通過的任何外部流量的影響。

相關內容