最稳方式是直接用云厂商官方sdk调api,核心三步:查规则(统一用sdk拉取入向规则)、判风险(按端口+源ip组合识别高危规则)、改配置(删旧加新并备份),全程可脚本化、定时执行、集成巡检流水线。

直接用云厂商官方 SDK 调 API 是最稳的方式,不拼签名、不踩参数坑,还能自动重试和错误分类。核心就三件事:查规则、判风险、改配置——全程可脚本化、可定时、可集成进巡检流水线。
查:用 SDK 拉取全量安全组入向规则
别手写 requests 拼签名,容易因时间戳偏移、参数顺序错、编码不一致报 SignatureDoesNotMatch。各平台统一做法:
-
阿里云:用
aliyun-python-sdk-ecs调DescribeSecurityGroupAttribute,传SecurityGroupId和Direction=ingress,返回所有入向规则列表 -
腾讯云:用
tencentcloud-sdk-python调DescribeSecurityGroupPolicies,注意返回结构是嵌套的SecurityGroupPolicySet.Ingress -
AWS:用
boto3的describe_security_groups,过滤IpPermissions字段,记得region_name必须匹配资源所在地域
判:按策略识别高危规则
不是所有开放端口都危险,关键看「端口 + 源 IP」组合。常见高危模式有:
- 22/3389/3306/6379/9200 等端口 + 源 CIDR 是 0.0.0.0/0(全网暴露)
- 非必要端口(如 8080、8000)对公网开放,且无 WAF 或前置网关
- 源 CIDR 是 ::/0(IPv6 全网开放),常被忽略但同样危险
建议把判断逻辑封装成函数,输入一条规则,输出 True(需修复)或 False(合规),方便后续批量处理。
改:删旧规则 + 加新规则(不是“更新”)
安全组规则不支持原地修改,必须先删后加。操作前务必做两件事:
- 备份原始规则:把当前规则列表存为 JSON 文件,便于回滚
-
确认目标安全组 ID 和地域:跨地域调用会直接失败(如阿里云报
InvalidRegionId.NotFound)
具体动作示例(以阿里云为例):
- 调
RevokeSecurityGroupIngress删除匹配的高危规则(需传完整权限字段,少一个就删不掉) - 调
AuthorizeSecurityGroupIngress添加新规则,比如把0.0.0.0/0改成运维跳板机 IP 或 VPC 内网段 - 每条操作后加日志,记录 谁、什么时候、删了哪条、加了哪条、是否成功
自动化闭环:从单次执行到每日巡检
把上面三步串起来,就是一个最小可行巡检脚本。再加点工程细节就可长期运行:
- 用
argparse支持--dry-run参数,先预览不真实操作 - 用
logging输出结构化日志,接入 ELK 或直接写入文件归档 - 配合 Cron 或 GitHub Actions 每日凌晨执行,结果推送到企业微信/钉钉群
- 修复失败时自动触发告警(如调用企业微信 webhook 发送失败详情)
整个过程不需要人工干预,也不依赖控制台,真正实现“发现即修复”。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










