首页/安全/安全加固速查/安全组规则导出评审与定期复核
防火墙与访问控制50 条

安全组规则导出评审与定期复核

把全部安全组导出为清单,按“端口×来源×实例”做定期评审,删除无人认领的放行——暴露面治理本质是台账治理。

安全加固速查安全更新于 2026-10-13

安全组为什么会失控

云安全组相当于分布式的状态防火墙,特点是创建成本极低:业务上线先加一条放行,测试临时再开一个端口,事后没人回收。几年下来,一个账号里躺着一堆 0.0.0.0/0 的放行,其中相当一部分对应的实例早已下线。暴露面治理在云上基本等同于规则台账治理。

基本信息

适用平台公有云账号级(阿里云、腾讯云、AWS 等安全组/网络 ACL)
导出方式云 CLI 或 SDK 遍历安全组,输出为结构化清单
评审周期建议每季度一次,重大变更后追加
必备字段规则、方向、端口、来源、业务用途、责任人

典型使用场景

  • 季度自查:把全部安全组导出成统一格式,按端口与来源排序逐条过
  • 高危端口收口:筛出对全网放行的 22、3389、3306、6379 等端口
  • 业务下线核对:与资产台账比对,删除已释放实例仍保留的规则
  • 合规举证:安全组清单是「边界访问控制」条款最直接的证据材料

批量导出思路

批量导出思路
# 阿里云示例:先取安全组 ID 列表,再逐个导出规则
aliyun ecs DescribeSecurityGroups --RegionId cn-hangzhou \
  | jq -r '.SecurityGroups.SecurityGroup[].SecurityGroupId' > sg.list
while read sg; do
  aliyun ecs DescribeSecurityGroupAttribute --RegionId cn-hangzhou --SecurityGroupId "$sg" >> sg-rules.json
done < sg.list
# 与本机监听端口交叉核对,找出「开在云上但本机没监听」的规则
ss -tulnp | awk '{print $5}' | sort -u | head -40

规则四要素读法

要素说明高危特征
方向入方向(被访问)或出方向(主动访问)入方向风险通常更高
端口范围允许的协议与端口/端口段对全网开放的高危端口最需要收口
来源允许访问的来源 IP 或网段0.0.0.0/0 表示对全互联网开放
策略允许或拒绝只写允许而无兜底拒绝,规则语义不完整
评审输三列最有效:规则、业务用途、责任人。三个月内无使用记录且无人认领的放行直接收回,比口头追责可执行得多。
导出结果包含资产编号、内网网段与开放端口,属于敏感信息:按内部资料管理,不要随手发到外部群或个人网盘。

易错点

  • 只导一个账号或一个地域:多账号多 Region 环境漏导是常态,脚本必须遍历全部维度
  • 只看安全组不看网络 ACL:两层规则叠加时,ACL 的隐式拒绝常被误判为组的问题
  • 删规则前不查流量日志:删掉仍在使用的放行,凌晨大面积告警
  • 没有责任人字段:评审会变成讨论会,两个月后再看规则一条没少

数据来源与参考

  • 云安全运营实践:规则治理
  • 等保 2.0:变更管理与审计

相关工具

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