VPC访问控制概述
- 安全组对实例进行防护,将实例加入安全组内后,该实例将会受到安全组的保护。
- 网络ACL对整个子网进行防护,将子网关联至网络ACL,则子网内的所有实例都会受到网络ACL保护。相比安全组,网络ACL的防护范围更大。
- 云防火墙(Cloud Firewall,CFW)对VPC边界网络防护,可以对不同VPC之间、VPC和公网之间、VPC与云下IDC之间的流量防护,实现业务互访活动的可视化与安全防护。相比安全组和网络ACL,防护范围更大。
- 安全组:使用安全组Sg-A和安全组Sg-B,来防护安全组内ECS的流量。
- 网络ACL:使用网络ACL Fw-A防护子网Subnet-A01内所有ECS的流量,网络ACL Fw-B防护子网Subnet-A02和子网Subnet-B01内所有ECS的流量,网络ACL和安全组一起使用,双层防护提升安全保障。
- 云防火墙:
- 防护VPC和公网之间的流量:ECS通过EIP-A访问公网,从EIP-A送达公网的流量需要经过云防火墙CFW-A的清洗。
- 防护不同VPC之间的流量:通过ER-X连通VPC-A和VPC-B的网络,VPC之间互访的流量需要经过云防火墙CFW-B清洗。
- 防护VPC和云下IDC之间的流量:通过ER-X和DC-A,连通VPC-A和云下IDC之间的网络,VPC-A去往DC-A的流量需要经过云防火墙CFW-B清洗,最终确保通过DC-A送至IDC的流量安全。
VPC访问控制策略的区别说明
对比项 |
安全组 |
网络ACL |
云防火墙 CFW |
---|---|---|---|
防护范围 |
实例级别:防护安全组内的实例,比如弹性云服务器、数据库、云容器实例等。 |
子网级别:防护整个子网,子网内的所有实例都会受到网络ACL的保护。 |
VPC边界网络防护:支持不同VPC之间、VPC和公网之间、VPC与云下IDC之间的流量防护,实现业务互访活动的可视化与安全防护。 |
是否必选 |
必选,实例必须至少加入到一个安全组内。 |
非必选,您可以根据业务需求选择是否为子网关联网络ACL。 |
非必选,您可以根据业务需求选择是否开启VPC边界防火墙防护。 |
是否收费 |
不收取费用 |
不收取费用 |
收取费用 |
有无状态 |
有状态,允许入站请求/出站请求的响应流量出入实例,不受规则限制。 |
有状态,允许入站请求/出站请求的响应流量出入子网,不受规则限制。 |
有状态,允许入站请求/出站请求的响应流量出入公网、VPC或者云专线,不受规则限制。 |
规则策略 |
安全组支持设置允许和拒绝策略。
|
网络ACL支持设置允许和拒绝策略。
|
云防火墙支持设置允许和拒绝策略。 允许策略:对于匹配成功的流量,允许流入/流出公网、VPC或者云专线。 拒绝策略:对于匹配成功的流量,拒绝流入/流出公网、VPC或者云专线。 |
规则报文组 |
支持报文三元组(即协议、端口和源/目的地址)过滤。 |
支持报文五元组(即协议、源端口、目的端口、源地址和目的地址)过滤。 |
支持报文五元组(即协议、源端口、目的端口、源地址、目的地址)以及域名、IP地理位置、七层应用协议等过滤。 |
规则生效顺序 |
当实例上绑定多个安全组,并且安全组中存在多条规则时,生效顺序如下:
|
一个子网只能绑定一个网络ACL,当网络ACL存在多条规则时,根据规则的生效顺序依次匹配流量。序号越小,排序越靠前,表示流量优先匹配该规则。 |
当云防火墙实例上设置多条防护规则时,根据规则的优先级进行生效。优先级数字越小,规则排序越靠前,越先生效。 |
应用操作 |
|
创建子网没有网络ACL选项,需要先创建网络ACL,添加出入规则,并在网络ACL内关联子网。当网络ACL状态为已开启,将会对子网生效。 |
创建云防火墙(专业版)并配置企业路由器,将流量引至云防火墙,通过防护规则放行或者拦截流量,放行后的流量需要经过入侵防御IPS、病毒防御等功能的多重检测。 |
如果需要使用高阶防护能力(比如通过域名/地理位置/时间计划进行访问控制、IPS入侵检测、反病毒等七层防护能力),或者您的业务有高等级保护要求,推荐您使用云防火墙CFW。
流量匹配安全组和网络ACL 规则的顺序
当安全组和网络ACL同时存在时,流量优先匹配网络ACL的规则,然后匹配安全组规则。如图2所示,以入方向流量为例,为您详细介绍安全组和网络ACL规则的匹配顺序。
- 流量优先匹配网络ACL规则:
- 当流量未匹配上任何自定义网络ACL规则,则流量执行默认网络ACL规则,拒绝流量流入子网。
- 当流量匹配上自定义网络ACL规则,则根据网络ACL规则策略决定流量走向。
- 当策略为拒绝时,则拒绝该流量流入子网。
- 当策略为允许时,则允许该流量流入子网。
- 当流量通过网络ACL进入子网时,流量进一步匹配安全组规则:
- 当实例关联多个安全组时,流量按照安全组的顺序进行匹配。首先匹配第一个安全组内的规则。
- 当流量未匹配上任何安全组规则时,则拒绝该流量进入实例。
- 当流量匹配上安全组规则,则根据安全组规则策略决定流量走向。
- 当策略为拒绝时,则拒绝该流量流入实例。
- 当策略为允许时,则允许该流量流入实例。
- 对于未成功匹配第一个安全组内规则的流量,继续匹配第二个安全组内的规则。
- 当遍历了所有安全组的入方向规则,流量均没有匹配上时,则拒绝该流量流入实例。
- 当实例关联多个安全组时,流量按照安全组的顺序进行匹配。首先匹配第一个安全组内的规则。
- 子网Subnet-A上关联了网络ACL Fw-A。Fw-A中的默认规则不能删除,流量优先匹配已添加的自定义规则,网络ACL规则示例请参见表2。
- 弹性云服务器ECS-A和ECS-B由安全组Sg-A来防护。创建安全组Sg-A时,您可以选择已有模板,模板中会自带部分安全组规则。您可以对系统自带的规则进行修改或者删除,也可以添加自定义规则,安全组规则示例请参见表3。
方向 |
生效顺序 |
类型 |
策略 |
协议 |
源地址 |
源端口范围 |
目的地址 |
目的端口范围 |
说明 |
---|---|---|---|---|---|---|---|---|---|
入方向 |
1 |
IPv4 |
拒绝 |
全部 |
10.0.1.0/24 |
全部 |
0.0.0.0/0 |
全部 |
自定义网络ACL规则A01:拒绝来自特定IP地址10.0.1.0/24网段的流量流入子网内 |
入方向 |
2 |
IPv4 |
允许 |
TCP |
0.0.0.0/0 |
全部 |
0.0.0.0/0 |
80-85 |
自定义网络ACL规则A02:允许所有流量访问子网内实例的80-85端口 |
入方向 |
* |
-- |
拒绝 |
全部 |
0.0.0.0/0 |
全部 |
0.0.0.0/0 |
全部 |
默认网络ACL规则:拒绝所有流量流入子网 |
出方向 |
1 |
IPv4 |
允许 |
全部 |
0.0.0.0/0 |
全部 |
0.0.0.0/0 |
全部 |
自定义网络ACL规则A03:允许所有流量从子网流出 |
出方向 |
* |
-- |
拒绝 |
全部 |
0.0.0.0/0 |
全部 |
0.0.0.0/0 |
全部 |
默认网络ACL规则:拒绝所有流量从子网流出 |
方向 |
优先级 |
策略 |
类型 |
协议端口 |
源地址/目的地址 |
描述 |
---|---|---|---|---|---|---|
入方向 |
1 |
允许 |
IPv4 |
自定义TCP:80 |
源地址:0.0.0.0/0 |
安全组规则A01:针对全部IPv4协议,允许所有流量访问安全组内实例的80端口 |
入方向 |
1 |
拒绝 |
IPv4 |
自定义TCP:82-83 |
源地址:0.0.0.0/0 |
安全组规则A02:针对全部IPv4协议,拒绝所有流量访问安全组内实例的82和83端口 |
入方向 |
1 |
允许 |
IPv4 |
全部 |
源地址:当前安全组(Sg-A) |
安全组规则A03:针对全部IPv4协议,确保安全组内实例网络互通 |
入方向 |
1 |
允许 |
IPv6 |
全部 |
源地址:当前安全组(Sg-A) |
安全组规则A04:针对全部IPv6协议,确保安全组内实例网络互通 |
出方向 |
1 |
允许 |
IPv4 |
全部 |
目的地址:0.0.0.0/0 |
安全组规则A05:针对全部IPv4协议,允许所有流量从安全组内实例流出 |
出方向 |
1 |
允许 |
IPv6 |
全部 |
目的地址:::/0 |
安全组规则A06:针对全部IPv6协议,允许所有流量从安全组内实例流出 |
基于以上场景,不同入方向报文对规则的匹配情况如下:
- 报文01:报文01无法匹配上Fw-A中的自定义网络ACL规则,则匹配默认规则,拒绝该报文流入子网。
- 报文02:报文02可匹配上Fw-A中的自定义网络ACL规则A01,根据规则策略,拒绝该报文流入子网。
- 报文03:报文03可匹配上Fw-A中的自定义网络ACL规则A02,根据规则策略,允许该报文流入子网。该报文继续匹配安全组规则,无法匹配上Sg-A的任何入方向规则,拒绝该报文流入实例。
- 报文04:报文04可匹配上Fw-A中的自定义网络ACL规则02,根据规则策略,允许该报文流入子网。该报文继续匹配安全组规则,可匹配上Sg-A的安全组规则A02,根据规则策略,拒绝该报文流入实例。
- 报文05:报文05可匹配上Fw-A中的自定义网络ACL规则02,根据规则策略,允许该报文流入子网。该报文继续匹配安全组规则,可匹配上Sg-A的安全组规则A01,根据规则策略,允许该报文流入实例。