安全组最佳实践是什么
安全组是云上的主机级防火墙,也是最容易积累「配置债」的地方:规则只加不删、来源写 0.0.0.0/0、命名随心所欲。治理并不复杂,关键是几个固定习惯——默认拒绝、最小开放、层间引用、规范命名、变更留痕、定期审计。坚持半年,暴露面事故会明显减少。
六个固定习惯
- 默认姿态:入方向默认拒绝,只放业务必需端口
- 最小开放:来源能写安全组就不写 IP,能写网段就不写 0.0.0.0/0
- 分层引用:web 指向 app、app 指向 db 逐层引用,禁止跨层直连
- 命名规范:环境-角色-用途,如 prod-web-sg,禁止 test1、sg-new 这类名字
- 变更留痕:规则变更记录时间、原因、操作人
- 季度审计:全量导出 0.0.0.0/0 规则逐条复核
基本信息
| 作用范围 | 主机级有状态防火墙,支持入方向与出方向规则 |
|---|---|
| 引用方式 | 来源或目的可写 CIDR,也可写另一个安全组 ID |
| 默认行为 | 新建安全组默认拒绝所有入方向流量 |
| 数量限制 | 每个实例可绑多个安全组,规则总数有配额上限 |
| 三厂名称 | 阿里云安全组;腾讯云安全组;华为云安全组 |
审计导出与复核
审计导出与复核
aliyun ecs DescribeSecurityGroups --RegionId cn-hangzhou --PageSize 50
# 先列出全部安全组,核对命名是否规范
aliyun ecs DescribeSecurityGroupAttribute --RegionId cn-hangzhou \
--SecurityGroupId sg-xxxx # 逐组导出规则做复核
# 重点筛出 SourceCidrIp=0.0.0.0/0 的入方向规则常见反模式与后果
| 反模式 | 后果 |
|---|---|
| 来源写 0.0.0.0/0 放行全部端口 | 主机几乎等同无防火墙 |
| 安全组命名无意义 | 出事时无法判断规则归属,误删风险高 |
| 规则只加不删 | 历史放行变成长期后门 |
| 所有层共用一个安全组 | 无法实施分层最小权限 |
| 数据库端口对公网开放 | 数天内就会被扫描并尝试爆破 |
安全组配置债积累得很慢、爆发得很快。把审计做成季度例行任务,并沉淀成一份可见的规则清单,比出事后再清理便宜得多。
删除或收紧安全组规则前,先确认没有业务依赖该规则:用流量日志或连接监控确认来源后,再分批次收敛,避免一刀切造成业务中断。