更新时间:2024-04-18 GMT+08:00

安全组和安全组规则

安全组

安全组是一个逻辑上的分组,为具有相同安全保护需求并相互信任的云服务器、云容器、云数据库等实例提供访问策略。安全组创建后,用户可以在安全组中定义各种访问规则,当实例加入该安全组后,即受到这些访问规则的保护。

安全组规则

  • 安全组中包括入方向规则和出方向规则,用来控制安全组内实例的入方向和出方向的网络流量。
    • 入方向规则:控制外部请求访问安全组内的实例,即流量流入实例。
    • 出方向规则:控制安全组内实例访问外部的请求,即流量从实例流出。
  • 安全组规则由协议端口、源地址/目的地址等组成,关键信息说明如下:
    • 类型:支持设置IPv4和IPv6协议的规则。
    • 协议端口:包括网络协议类型和端口范围。
      • 网络协议:匹配流量的协议类型,支持TCP、UDP、ICMP和GRE协议。
      • 端口范围:匹配流量的目的端口,取值范围为:1~65535。
    • 源地址或目的地址:在入方向中,匹配流量的源地址。在出方向中,匹配流量的目的地址。

安全组及规则的工作原理

  • 安全组是有状态的。如果您从实例发送一个出站请求,且该安全组的出方向规则是放通的话,那么无论其入方向规则如何,都将允许该出站请求的响应流量流入。同理,如果该安全组的入方向规则是放通的,那无论出方向规则如何,都将允许入站请求的响应流量可以流出。
  • 安全组使用连接跟踪来标识进出实例的流量信息,入方向安全组的规则变更,对原有流量立即生效。出方向安全组规则的变更,不影响已建立的长连接,只对新建立的连接生效。

    当您在安全组内增加、删除、更新规则,或者在安全组内添加、移出实例时,系统会自动清除该安全组内所有实例入方向的连接,详细说明如下:

    • 由入方向流量建立的连接,已建立的长连接将会断开。所有入方向流量立即重新建立连接,并匹配新的安全组入方向规则。
    • 由出方向流量建立的连接,已建立的长连接不会断开,依旧遵循原有安全组规则。出方向流量新建立的连接,将会匹配新的安全组出方向规则。

对于已建立的长连接,流量断开后,不会立即建立新的连接,需要超过连接跟踪的老化时间后,才会新建立连接并匹配新的规则。比如,对于已建立的ICMP协议长连接,当流量中断后,需要超过老化时间30s后,将会新建立连接并匹配新的规则,详细说明如下:

  • 不同协议的连接跟踪老化时间不同,比如已建立连接状态的TCP协议连接老化时间是600s,ICMP协议老化时间是30s。对于除TCP和ICMP的其他协议,如果两个方向都收到了报文,连接老化时间是180s,如果只是单方向收到了报文,另一个方向没有收到报文,则连接老化时间是30s。
  • TCP协议处于不同状态下的连接老化时间也不相同,比如TCP连接处于ESTABLISHED(连接已建立)状态时,老化时间是600s,处于FIN-WAIT(连接即将关闭)状态时,老化时间是30s。

安全组的限制

  • 默认情况下,一个安全组最多只允许拥有50条安全组规则。
  • 默认情况下,一个云服务器或扩展网卡最多只能被添加到5个安全组中,安全组规则取并集生效。
  • 建议一个安全组关联的实例数量不应超过6000个,否则会引起安全组性能下降。
  • 在一个安全组中,对于入方向规则来说,源地址是安全组的规则数量+源地址是IP地址组的规则数量+端口是不连续端口号的规则数量 ≤ 128条,否则超过数量的安全组规则将不生效。出方向的限制和入方向一致。
    • 源地址是安全组时,包括本安全组和其他安全组。
    • 不连续端口号取值示例为22,25,27。