网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

AWS中的安全组与网络ACL

更新时间:2026年03月27日   作者:spoto   标签(Tag):

在 AWS 中,保护网络涉及到两个主要的防御层:安全组(Security Groups, SG)和网络访问控制列表(Network Access Control Lists, NACLs)。虽然它们都起到防火墙的作用,但它们分别位于 VPC 的不同层次上,因此它们的运作方式也截然不同。

理解“有状态”与“无状态”过滤之间的区别,是掌握AWS网络安全的关键。

安全组(实例防火墙)

安全组可以充当您系统的虚拟防火墙。EC2实例或者,还可以使用其他资源,比如RDS、Lambda、ELB等。

  • 级别:实例级别。你可以将其分配给特定的资源。
  • 行为:具有状态性。这意味着:如果您发送了一个请求(例如,下载一个补丁),那么无论您的入站规则如何,返回的数据都会被自动允许接收。您不需要为返回流量打开临时端口。
  • 规则:仅允许访问。无法创建“拒绝”规则。如果没有任何规则允许该流量通过,那么该请求就会被自动拒绝。
  • 使用方式:这是你的主要防御手段。每个实例都应拥有一个范围明确的安全组。

2. 网络ACL(子网防火墙)

网络ACL作为整个网络的防火墙功能。子网.

  • 等级:子网级别。它适用于……全部进入或离开该子网的流量。
  • 行为:无状态。这意味着:如果你允许某个请求进入,那么你必须明确允许该请求的响应也能够离开。系统不会“记住”这些连接关系。
  • 规则:允许与拒绝您可以明确阻止某个特定的IP地址(例如,已知的攻击者)。
  • 使用方式:这是属于你的东西。次要的/附属的防御机制通常处于开放状态(允许所有流量通过),或者被用于实现粗粒度访问控制,比如创建DMZ或阻止特定国家的网络访问。

比较矩阵

功能/特点安全组网络访问控制列表(NACL)
范围/规模实例(EC2、RDS、ENI)子网
国家/政府有状态模式(返回流量自动允许)无状态模式(必须允许返回流量)
规则类型仅允许符合规则的请求通过允许与拒绝规则
默认规则拒绝对所有事物的认可(隐式方式)允许所有流量(默认设置)/拒绝所有流量(自定义设置)
订单/请求在做出决定之前,所有规则都需要被评估。按数字顺序进行排序(从最小的数开始)
阻挡/阻止无法明确阻止某个IP地址的访问。可以明确地拒绝某个IP地址的请求。

什么是AWS安全组呢?

安全组就像一道虚拟的防火墙。它包含入站和出站的安全规则,默认情况下,所有入站流量都会被阻止,只能通过私有网络进行传输。AWS EC2它不允许使用某种特定的协议来访问我们的实例。默认情况下,可以使用该规则来阻止所有被拒绝的访问请求。在EC2实例上,存在多个安全组,因此我们无法单独阻止某个特定的访问请求。IP地址使用那个安全组,但同时也使用网络访问列表。通过这种方式,我们可以更轻松地编辑安全组的规则,从而让安全组的作用更加有效。

AWS中的网络ACL是什么?

网络ACL是一种可修改的默认网络配置。它允许所有传入或传出的流量通过。IPv4在这里,我们创建了一种自定义的网络结构。所有的自定义网络ACL都禁止所有入站和出站流量。这种网络是无状态的,且具有独立的入站和出站规则。对于这两种规则来说,默认限制都是20个条目,且按照编号从低到高的顺序来应用这些规则。在VPC中,所有的子网都必须与某个网络ACL关联起来,每次只能与一个网络ACL相关联。这种机制支持规则的创建以及规则的拒绝操作,同时还能在子网级别进行相关操作。

网络访问控制列表(Network ACL)是如何工作的呢?

网络ACL会评估进入或离开您所在子网的流量。VPC(虚拟私有云)。它们按照顺序来处理规则,从编号最低的规则开始。当数据包符合这些规则时,系统会判断该数据包是否可以被允许或拒绝。如果某个规则允许该数据包通过,那么该数据包就会被允许通过。如果多个规则都匹配,那么系统会采用默认的拒绝操作。这个过程有助于实施安全策略,从而保护您的系统。AWS基础设施来自未经授权的访问以及潜在的威胁。

如何使用网络ACL来控制通往子网络的流量?一步步的指南。

以下是使用网络ACL来控制子网间流量的步骤:

步骤1:创建网络ACL

  • 首先,需要在您的VPC中创建一个网络ACL。AWS管理控制台或者使用AWS CLI命令/指令。

步骤2:将网络ACL与子网关联起来

  • 请将网络ACL与那些需要控制流量的子网关联起来。
  • 您还可以将一个NACL与多个设备关联起来。子网不过,每个子网一次只能关联一个网络ACL。

步骤3:定义入站和出站规则

  • 在网络ACL中配置入站和出站规则,以允许或拒绝特定类型的流量。规则的评估顺序是从编号最小的规则开始。

步骤4:对规则进行优先级排序

  • 按照优先级对规则进行排序,将最具体的规则放在最上面,而较为通用的规则则放在下面。这样就能更容易地根据相应的规则来评估这些规则了。

步骤5:配置规则操作

  • 根据您的安全需求,为每条规则指定该操作:是允许还是拒绝该流量。例如:您可以允许该流量。HTTP同时,可以阻止特定IP地址和协议的访问,同时允许HTTPS流量的传输。
  • 请将这些更改应用到网络ACL中。更新后的规则将立即生效,并开始控制进入相关子网的流量。

网络ACL基础

在AWS中,网络ACL(访问控制列表)相当于在子网级别上的虚拟防火墙,用于控制进出网络的流量。这些ACL是无状态的,它们根据其中定义的规则来评估流量。VPC中的每个子网都可以与一个网络ACL关联起来,这样你就可以为网络基础设施的不同部分定制访问控制策略。

网络ACL规则

网络ACL规则定义了进出子网的流量的权限。这些规则按照规则编号从低到高的顺序进行处理,首先应用与流量条件相匹配的规则。根据这些规则,可以允许或拒绝基于IP地址、协议和端口号的流量,从而实现对网络通信的精细控制。

网络ACL以及其他AWS服务

网络ACL与其他AWS服务协同工作,从而增强安全性和网络管理效果。它们通过为子网级别提供额外的防御层,来补充安全组的功能。此外,网络ACL还可以与各种服务进行集成。AWS CloudFormation还有AWS CLI这使得您能够自动化地部署和管理基础设施中的网络访问控制机制。

与网络ACLs进行协作/配合

为了有效使用网络ACL,首先需要了解您的网络流量需求以及安全策略。创建网络ACL,并将其与VPC中的相应子网关联起来。根据您的安全需求来定义和优先处理入站和出站规则。必要时,定期审查并更新这些规则。同时,监控网络流量和性能,以确保网络ACL的配置能够有效地控制访问权限,从而实现您的安全目标。

场景:位于公共子网中的Web服务器

让我们看看,当Web服务器通过端口80接收流量时,它们是如何协同工作的。

安全组配置

  • 入境/到达:允许来自 0.0.0.0/0 的 TCP 80端口的连接。
  • 出站:允许所有访问(默认设置)。
  • 结果:用户已成功连接。SG检测到传入的请求符合规则要求,因此自动允许了该请求。

NACL配置(无状态复杂性)

  • 入境:允许来自 0.0.0.0/0 的 TCP 80端口的连接。
  • 出站:必须允许TCP端口1024到65535对0.0.0.0/0的访问。
  • 为什么?当Web服务器做出响应时,它会将流量发送到用户的随机“临时端口”上。如果你没有明确允许这种出站连接,那么NACL就会阻止该响应,即使该请求本身是被允许的。

最佳实践/最佳做法

  1. 首先,是关于安全组的问题。对于99%的安全需求来说,可以依靠安全组来实现。安全组更易于管理,而且由于它们具有状态感知特性,因此不太容易出现“被锁定”的错误。
  2. 用于拒绝的NACLs:NACLs主要用于……块/区块特定的IP地址或子网(例如,阻止某个僵尸网络的活动,或者限制某个敏感子网与公共子网之间的通信)。
  3. 最低权限原则:请配置安全组,仅授予必要的访问权限(例如,只允许从堡垒主机的安全组中执行SSH操作,而不是允许0.0.0.0/0进行访问)。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料