安全组和安全组规则
安全组
安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器、云容器、云数据库等实例提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当实例加入该安全组后,即受到这些访问规则的保护。
如果您未创建任何安全组,那么在首次创建需要使用安全组的实例时(比如弹性云服务器),系统会自动为您创建一个默认安全组并关联至该实例,关于默认安全组的更多信息,请参见默认安全组。
安全组基本信息
- 安全组是有状态的。如果您从实例发送一个出站请求,且该安全组的出方向规则是放通的话,那么无论其入方向规则如何,都将允许该出站请求的响应流量流入。同理,如果该安全组的入方向规则是放通的,那无论出方向规则如何,都将允许入站请求的响应流量可以流出。
- 安全组使用连接跟踪来标识进出实例的流量信息,入方向安全组的规则变更,对原有流量立即生效。出方向安全组规则的变更,不影响已建立的长连接,只对新建立的连接生效。
当您在安全组内增加、删除、更新规则,或者在安全组内添加、移出实例时,系统会自动清除该安全组内所有实例入方向的连接,详细说明如下:
- 由入方向流量建立的连接,已建立的长连接将会断开。所有入方向流量立即重新建立连接,并匹配新的安全组入方向规则。
- 由出方向流量建立的连接,已建立的长连接不会断开,依旧遵循原有安全组规则。出方向流量新建立的连接,将会匹配新的安全组出方向规则。
对于已建立的长连接,流量断开后,不会立即建立新的连接,需要超过连接跟踪的老化时间后,才会新建立连接并匹配新的规则。比如,对于已建立的ICMP协议长连接,当流量中断后,需要超过老化时间30s后,将会新建立连接并匹配新的规则,详细说明如下:
- 不同协议的连接跟踪老化时间不同,比如已建立连接状态的TCP协议连接老化时间是600s,ICMP协议老化时间是30s。对于除TCP和ICMP的其他协议,如果两个方向都收到了报文,连接老化时间是180s,如果只是单方向收到了报文,另一个方向没有收到报文,则连接老化时间是30s。
- TCP协议处于不同状态下的连接老化时间也不相同,比如TCP连接处于ESTABLISHED(连接已建立)状态时,老化时间是600s,处于FIN-WAIT(连接即将关闭)状态时,老化时间是30s。
安全组规则
参数 |
说明 |
---|---|
协议类型 |
安全组规则中用来匹配流量的网络协议类型。目前支持“All”、“TCP”、“UDP”和“ICMP”等协议。 |
端口范围 |
安全组规则中用来匹配流量的目的端口,取值范围为:1~65535。
|
源地址(入方向) |
|
目的地址(出方向) |
目的地址是出方向规则中,用来匹配内部请求访问的地址,支持多种格式:
|
规则方向 |
协议端口 |
源地址/目的地址 |
描述 |
---|---|---|---|
入方向规则 |
全部 |
源地址:sg-AB |
针对全部IPv4协议,允许本安全组内云服务器的请求进入,即该条规则确保安全组内的云服务器网络互通。 |
入方向规则 |
TCP: 22 |
源地址:0.0.0.0/0 |
针对TCP(IPv4)协议,允许外部所有IP访问安全组内云服务器的SSH(22)端口,用于远程登录Linux云服务器。 |
入方向规则 |
TCP: 3389 |
源地址:0.0.0.0/0 |
针对TCP(IPv4)协议,允许外部所有IP访问安全组内云服务器的RDP(3389)端口,用于远程登录Windows云服务器。 |
入方向规则 |
TCP: 80 |
源地址:10.5.6.30/32 |
针对TCP(IPv4)协议,允许外部IP(10.5.6.30)访问安全组内云服务器的80端口。 |
出方向规则 |
全部 |
目的地址:0.0.0.0/0 |
针对全部IPv4协议,允许安全组内的云服务器可访问外部IP的所有端口。 |
- 在安全组规则中放开某个端口后,为了确保网络正常通信,您还需要确保实例内对应的端口也已经放通。
- 通常情况下,同一个安全组内的实例默认网络互通。当同一个安全组内实例网络不通时,可能情况如下:
- 在入方向规则中,删除了同一个安全组内实例互通对应的规则。
- 不同VPC的网络不通,所以当实例属于同一个安全组,但属于不同VPC时,网络不通。
您可以通过VPC对等连接连通不同区域的VPC。
安全组的限制
- 默认情况下,一个安全组最多只允许拥有50条安全组规则。
- 默认情况下,一个云服务器或扩展网卡最多只能被添加到5个安全组中,安全组规则取并集生效。