安全组和网络ACL是云平台中常见的安全控制功能。
其中安全组工作于虚拟机层面,可用于对某一特定虚拟机的出入流量进行控制,通常是有状态的。
网络ACL工作于子网层面,可以用作防火墙控制进出子网的数据流,通常无状态。
有些云平台同时提供了这两种数据安全控制功能,也有些云平台只提供了其中的一种。
1. 安全组使用流程
对于提供了VPC功能的云平台来说,用户在创建VPC时,系统通常会自动为VPC创建一个默认安全组。
用户不能删除默认安全组,但可以创建和删除自定义安全组。
用户删除VPC时,默认安全组同时被删除。
例如AWS:
腾讯云:
为用户提供了3个默认安全组,分别设置成了不同的使用场景。
华为云:
VPC默认安全组可以被删除。
不提供VPC功能的云平台也通常会为每个租户设置一个默认安全组,不可被删除。
例如Unitedstack:
青云:
也提供了相似的功能,但命名为防火墙,除了可以对出入主机的流量进行控制以外,还可以与路由器进行关联,进行流量控制。
安全组通过安全组规则来对出入流量进行控制。
默认安全组包含一组默认规则,常见的情况是使用白名单方式,对入方向流量拒绝,出方向流量放行。
有些云平台的默认安全组允许用户添加、编辑、删除规则,放行某些特定的流量。
例如AWS:
有些云平台的默认安全组不允许用户对规则进行修改。
例如腾讯云:
用户也可以自己创建安全组,并编辑规则。
阿里云:
Unitedstack:
用户在创建云主机时,可以为其选择所属的安全组,不做选择的则与默认安全组关联。
云主机与安全组的关联关系为N:N,具体数值各云平台有所不同。
有些云平台还提供了查看与某一安全组关联的云主机列表的功能。
腾讯云:
2. 网络ACL使用流程
网络访问控制列表(ACL)是一个可选安全层,可用作防火墙来控制进出一个或多个子网的流量。
网络ACL是无状态的,用户需要单独设定入站和出站规则。
有些云平台在创建VPC时提供了默认的网络ACL,新建的子网自动与默认ACL关联。
例如AWS:
用户也可以自行创建网络ACL。
例如AWS:
腾讯云:
与安全组类似,网络ACL也通过规则来对出入流量进行控制。用户可以自己创建规则。
AWS:
腾讯云:
网络ACL需要与子网关联才能生效。子网与网络ACL的关联关系为N:1。
AWS:
AWS的VPC中的每个子网都必须与一个网络ACL相关联。如果没有明确地将子网与网络ACL相关联,则子网将自动与默认网络ACL关联。用户可以使用新的自定义网络ACL来与子网关联,关联新的网络ACL将自动解除子网与之前的网络ACL的关联。