安全组一充当虚拟防火墙对于关联实例,在实例级别控制入站和出站流量。
网络访问控制列表(NACL)一充当防火墙关联子网,在子网级别控制入站和出站流量。
在专有网络中,安全组和网络ACL(NACL)一起帮助构建分层网络防御。
安全组在实例级别操作,nacl在子网级别操作。
安全组
- 安全组(SG):访问控制列表和网络通信规则
- 基于ip通信五元组规则定义:源端口、目的端口、源ip、目的ip及协议
- 可分成入站和出站规则
- 受控的Internet访问
- 安全组 充当实例的虚拟防火墙以控制入站和出站流量。
在实例级别而不是子网级别操作
- 子网中的每个实例都可以分配一组不同的安全组
- 一个实例可以分配5个安全组,每个安全组具有 60条规则
- 允许对入站和出站流量使用单独的规则
- 可以只指定允许规则,但不指定拒绝规则。Aws安全组特点 只能指定允许规则,不能指定拒绝规则。阿里云、腾讯云等其他云可以。
- 可以授予对特定IP、CIDR范围或VPC或对等VPC中的另一个安全组的访问权限(需要VPC对等连接)
- 是作为一个整体或累积的规则来评估以最宽松的规则为准例如,如果您有一个允许从IP地址203.0.113.1访问TCP端口22(SSH)的规则和另一个允许所有人访问TCP端口22的规则,则最后结果是每个人都可以访问TCP端口22。
- 安全组是有状态的,因为它们使用连接跟踪来跟踪进出实例的流量信息。例如:安全组设置允许80端口出站,而没有设置入站80端口。信息通过80端口发出又通过80端口返回到服务器,称为 有状态。
重点:
- 可以指定允许规则,但不可指定拒绝规则。
- 可以为入站和出站流量指定单独规则。
- 安全组规则允许您根据协议和端口号筛选流量,
- 安全组是有状态的 - 如果您从实例发送一个请求,则无论入站安全组规则如何,都将允许该请求的响应流量流入。如果是为响应已允许的入站流量,则该响应可以出站,此时可忽略出站规则。
- 安全组是立即生效的。安全组 可以在任何时候更改,并且立即生效。
网络访问控制列表NACL
- 网络ACL(NACL)是VPC的可选安全层,它充当防火墙用于控制进出一个或多个子网的流量。
- NACL是在子网级别分配的适用于该子网中的所有实例。
- 入站规则和出站规则各有不同允许或拒绝流量。
- 默认ACL允许所有入站和出站流量。
- 新创建的ACL拒绝所有入站和出站流量,
- 可以关联具有多个子网的网络ACL。
- 是规则的编号列表按顺序评估从编号最低的规则开始,以确定是否允许流量进出与网络ACL关联的任何子网例如,如果您有一个规则100和110,100为AIow AII,110为Deny Al,则Alow AII优先,所有流量都将被允许。
- 是无状态的;对允许的入站流量的响应受制于出站流量的规则(反之亦然)例如,如果从特定的IP地址在端口22上启用入站SSH,则还需要为响应添加出站规则。
对比:
|----------------------------|--------------------|
| 安全组 | NACL |
| 在实例级别运行 | 在子网级别上运行 |
| 支持仅允许规则 | 支持允许和拒绝规则 |
| 是有状态的:不论任何规则如何,返回流量都会自动被允许 | 是无状态的:规则必须明确允许返回流量 |
| 在决定是否允许流量之前对所有规则进行评估 | 在决定是否允许通过时按顺序评估的规则 |
| 仅适用于与安全组明确关联的实例 | 自动适用于启动到相关子网中的所有实例 |