如何限制同一 VPC 内子网之间的访问?

How do you restrict access between Subnets within the same VPC?

所以我一直在关注一些 VPC 架构师 guide(s),这鼓励我按层对子网进行分区(而不是简单地 public/private 个子网)

然后我决定我将拥有这些子网:

现在我想禁止 elb-* 子网中的任何内容到达 database 子网。默认情况下,VPC 内的所有内容都可以通过路由表中的本地路由相互访问,而 AWS 不允许删除这些路由,这不是我想要的行为。

在我上面链接的文章中,有一种方法可以将所有内容拆分到 VPC 并将它们与 VPC 对等连接起来,因此在其他方面限制 VPC 之间的访问我可以简单地不对等。但是这种方法对我来说似乎有点复杂,我希望找到一种不需要我将任何东西拆分到 VPC 的解决方案。

如何实现提到的用例?

网络 ACL 将满足您的需要。请记住,它们是无状态的,因此您必须允许临时端口。 https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html

最佳做法是使用网络 ACL 定义哪些子网可以相互通信的粗略规则,然后使用安全组根据特定服务器的 application/role 定义更细粒度的规则。 https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html

该指南记录了非常 "strict" 的安全设计。比较复杂。

如果您的应用程序较小,您可以改用 安全组 来仅使用一个子网(或者您可能更喜欢一个 public 和一个私有子网)。

传统网络只能在子网之间放置防火墙,但安全组可以为每个单独的资源提供防火墙。