使用AWS安全组和网络ACL的主要用例差异

时间:2016-06-06 21:02:10

标签: security networking amazon-vpc aws-security-group

我知道网络ACL和安全组的有状态/无状态特性;我也知道网络ACL与子网相关联,而安全组则与实例相关联。

以上两点是最明显的区别,我们应该在其中编码我们的安全策略。

但是,是否有任何用例我们可以清楚地看到一个比另一个更好?

例如,现在,我正在考虑锁定堡垒主机的网络安全性。我可以将其编码为安全组sg_A {仅允许来自入口流量的一组已知IP范围的22}并将sg_A关联到堡垒实例。我还可以将其编码为网络ACL net_acl_B {仅允许来自入口流量的一组已知IP范围的22}并将net_acl_B关联到堡垒实例所在的子网。

1 个答案:

答案 0 :(得分:3)

  

我还可以将其编码为网络ACL net_acl_B {仅允许来自入口流量的一组已知IP范围的22}并将net_acl_B关联到堡垒实例所在的子网。

不完全。

默认网络ACL 已经允许所有流量进出。明确允许特定流量不会改变任何东西,因为一切都是开箱即用的。

相反,安全组默认不允许任何入站。

您还必须在安全组中允许堡垒主机访问,因为两个实体都必须允许您要传递的所有流量。两者都不会覆盖另一个的规则“允许“ - 他们必须同意。

网络ACL是无状态的,也必须允许响应流量,而安全组是有状态的,不会。

规则1:使用安全组进行访问控制。基本上没有理由打开安全组,然后转向并使用网络ACL作为唯一的防火墙层。

规则2选项A:仅使用网络ACL仅实施安全组无法实现的限制,例如阻止来自允许的较大子网划分的小子网的流量。

规则2选项B:使用网络ACL复制安全组中规则的逻辑,作为物理优先,逻辑上第二层的防御,防止无意的安全组配置错误。