我的AWS控制台中有多个EC2实例,我想通过添加防火墙规则/策略来保护这些实例。我看到AWS提供了Network ACLs和Security Groups来实现同样的功能。
从我所读到的,我对两者都有了基本的认识。
我的问题是:
考虑到我有多个实例,我想知道是将它们全部添加到VPC并创建一个Network ACL,还是为每个实例分配一个Security Group。
对于类似的场景,需要有最佳实践的建议和参考。
非常感谢!
发布于 2020-09-13 17:34:01
虽然这些可能看起来非常相似,但实现和功能集对两者都不一样。
首先,安全组是最容易理解和实现的,它们被附加在ENI (弹性网络接口)级别,并在资源的物理主机上进行评估,然后才允许通过。
它们有一个有限的特性集,但是NACL的一个很好的特性是您可以通过另一个资源安全组或前缀列表来评估一个源/目的地。这使您能够过滤特定资源的流量,而不是CIDR范围内的任何内容。安全组也是有状态的,这意味着如果流量可以在一个方向说话,它将能够返回相反的方向。
另一方面,NACL位于子网级别,因此它对在同一子网中相互通信的通信量没有任何影响。与安全组不同,虽然它同时包含显式拒绝(安全组只支持对任何未包含的内容使用拒绝)和顺序规则计算(安全组将查找允许入站访问的规则,NACL的计算值将从最低到最高)。
在实现NACLs时,了解哪些流量将从哪个范围(IPv4和IPv6)流、所使用的端口以及入站和出站流量(NACLS是无状态的)非常重要。在将这些规则转发到物理主机本身之前,或者在它们离开物理主机后,根据移动的方向对它们进行评估。另外,一定要考虑临时端口。
如果您想提供最封闭的环境,我建议使用这两种方法,但是在实现NACLS之前,请确保通过NACL对允许的通信量进行彻底的规划。要识别/调试这两个方面的问题,还请看一下VPC流量日志。
发布于 2020-09-13 16:58:15
在这里适用的一个重要的安全概念是深度防御。这个概念建议在整个信息技术系统中放置多层安全控制,从而更好地保护给定的资产。
这两个控件一起使用将提供一个比任何单个保护层都要好得多的安全体系结构。尽管如此,任何应用程序的正确安全态势都取决于数据的性质--它有多敏感,以及您对风险的偏好。
安全组是最简单和最基本的安全元素,是基线安全的首选。当您的应用程序完成并准备好生产时,或者您有敏感的个人可识别信息(PII),您可以(应该)将NACL添加到您的安全体系结构中。
https://stackoverflow.com/questions/63872895
复制相似问题