使用AWS安全组和网络ACL的关键用例差异



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

以上两个是我们应该在中对安全策略进行编码的最明显的区别

然而,有没有任何用例可以让我们清楚地看到一个比另一个更好?

例如,现在,我正在考虑锁定主机的网络安全堡垒。我可以将其编码到安全组sg_a中{只允许入口流量的一组已知IP范围中的22个},并将sg_a与堡垒实例相关联。我还可以将其编码到网络ACL net_ACL_B中{只允许来自入口流量的一组已知IP范围中的22个},并将net_ACL-B与堡垒实例所在的子网相关联。

我还可以将其编码到网络ACL net_ACL_B{只允许入口流量的一组已知IP范围中的22个}中,并将net_ACL-B与堡垒实例所在的子网相关联。

不完全是。

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

相反,安全组默认情况下不允许任何入站操作。

您还必须允许安全组中的堡垒主机访问,因为这两个实体都必须允许您想要通过的所有流量。任何一个实体都不能覆盖另一个实体的"允许"规则——它们必须同意。

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

规则1:使用安全组进行访问控制。本质上,从来没有理由完全开放一个安全组,然后转身使用和网络ACL作为唯一的防火墙层。

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

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

最新更新