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

Security 使用AWS安全组和网络ACL的关键用例差异,security,networking,amazon-vpc,aws-security-group,Security,Networking,Amazon Vpc,Aws Security Group,我知道网络ACL和安全组的有状态/无状态性质;我还知道网络ACL与子网相关联,而安全组与实例相关联 以上两个是最明显的区别,我们应该在其中编码我们的安全策略 然而,是否有任何用例我们可以清楚地看到一个比另一个好 例如,现在,我正在考虑锁定堡垒主机的网络安全。我可以将它编码到一个安全组sg_a{只允许入口流量的一组已知IP范围中的22个},并将sg_a与bastion实例关联。我还可以将其编码为网络ACL net_ACL_B{只允许从一组已知IP范围中选择22个入口流量},并将net_ACL_B与

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

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

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

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

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

不完全是

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

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

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

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

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

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

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