首页/云/云与容器速查/安全组规则模型

安全组规则模型

安全组规则五要素:方向、协议、端口、来源/目的、允许或拒绝;连接是有状态的(放行入方向后返回流量自动允许),默认入拒绝、出允许。

云与容器速查云更新于 2026-10-13

安全组规则模型是什么

一条安全组规则由五个要素描述:方向、协议、端口范围、来源或目的、允许或拒绝;规则按优先级排序,数字越小越优先。连接是有状态的,放行了入方向的请求,这条连接的返回报文会自动放行,不需要再补反向规则。

基本信息

方向入方向控制进入实例的流量,出方向控制离开实例的流量
状态有状态:已建立连接的返回报文不受规则限制,无需配反向规则
默认策略入方向默认拒绝全部,出方向默认允许全部(主流厂商口径)
优先级按优先级数字排序,越小越优先,同端口可先拒绝后允许
来源类型地址段、其他安全组、前缀列表或特定实例;组引用比地址白名单更好维护

典型使用场景

  • 收敛公网暴露面:只放行业务必需端口,其余一律拒绝,规则本身就是资产清单
  • 按角色分层授权:Web 组对全网开放,应用组只接受 Web 组来源,数据组只接受应用组来源
  • 临时排障放行:针对特定来源地址临时开一个端口,问题解决后立即撤销
  • 限制出方向:对数据外发敏感的业务收紧出方向,只放行必要的目标地址与端口
  • 跨环境引用:用安全组作为来源,测试环境无法直接连到生产数据层
  • 审计与巡检:把规则导出成表,按端口与来源统计出公网开放清单

一条规则的五个要素

要素取值示例说明
方向入控制进入实例的流量
协议TCP也可选 UDP、ICMP 或全部协议
端口范围443/443用起始与结束表示范围
来源0.0.0.0/0 或某安全组地址段、安全组 ID 均可
策略允许与拒绝规则同时存在时按优先级判定

规则排查命令

规则排查命令
aliyun ecs DescribeSecurityGroupAttribute --RegionId cn-hangzhou --SecurityGroupId sg-xxxx   # 导出当前规则
aliyun ecs DescribeSecurityGroups --RegionId cn-hangzhou --PageSize 100                     # 列出全部安全组
# 把规则导出后按端口排序,检查是否有多余的公网放行
有状态特性容易被误解:出方向全部拒绝时,本机主动发起的请求,它的返回报文依然能回来;但对方主动发起的连接会被拒绝。
拒绝规则与允许规则同时命中同一端口时,按优先级判定;规则写反的表现是『配了没生效』或『该拦的没拦住』,排查时要把整张表按优先级重排一遍。
用安全组作为来源比写地址段更稳:实例扩容、换地址都不需要改规则,也避免了遗漏某台机器的经典故障。

规则设计与维护

  • 给规则写清用途说明:端口、来源、为什么开,半年后回头看仍然读得懂
  • 按用途分组:同类服务的规则放在同一个安全组里,避免一个组混装所有端口
  • 用安全组引用替代地址段:实例扩缩容与地址变化都不需要改规则
  • 定期给规则瘦身:不再使用的放行逐条核对后删除,公网暴露面才会真正收敛
  • 变更前先导出当前规则作为快照,误改时可以快速比对并恢复

与其他规则的关系

  • 网络访问控制列表与安全组层级不同,两层都要核对
  • 系统内防火墙的命令与云上规则互不影响,排障时要分别确认
  • 来源用安全组引用时可读性更好,也更容易做审计

易错点

  • 误以为返回流量需要单独放行,于是把相反方向的规则配得一团乱,最终越配越宽
  • 同一端口同时存在拒绝与允许规则,优先级写反导致误拦截或误放行
  • 用地址段做来源白名单:扩容的新机器忘了加进去,业务直接连不上
  • 规则数量长期不清理,谁也不敢删,公网暴露面逐年扩大
  • 把安全组当成唯一防线,系统内的防火墙与服务监听状态从不核对

数据来源与参考

  • 阿里云文档:安全组规则
  • 腾讯云文档:安全组规则
  • 华为云文档:安全组规则

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌