若安全组规则对全网段(0.0.0.0/0)开放22(SSH服务)、3389(RDP)等高危风险端口,将会给系统带来严重的安全隐患。您可借助Terraform创建配置审计规则持续检测安全组配置并自动修复不合规的配置项,确保系统安全。
应用背景
在企业的云环境中,安全组作为网络流量的核心管控手段,通常用于定义服务器实例的访问规则。然而,在复杂的多实例场景下,因运维疏忽或策略设计缺陷,安全组规则可能存在以下典型风险配置:
-
高危端口全网段暴露:例如,面向公网(
0.0.0.0/0)开放SSH(22端口)、RDP(3389端口)或数据库服务端口(如3306、6379),导致实例直接暴露于互联网,成为暴力破解、数据泄露等攻击的首要目标。 -
内网与公网服务混淆:未区分实例业务属性(如公网Web服务与内网数据库),错误对非公网实例开放全量IP访问权限,形成内部网络横向渗透风险。
解决方案
通过阿里云Terraform创建配置审计服务规则,实现对安全组规则变更的持续监控,并设置规则检测诸如22、3389、3306等高危端口是否对外开放。一旦发现新增或修改安全组规则允许这些端口对公网开放,即触发合规审计。此时,配置审计将自动启动函数计算执行自定义修复逻辑,利用阿里云SDK调整安全组设置,例如删除风险规则。修复后,系统会重新评估相关规则以确认修复效果。此外,用户可以通过配置审计控制台查看不合规资源的修正详情,整个过程透明且可追溯,有效防止未经授权的公网访问。此方案不仅提高了运维效率,减少了人工干预,还确保资源配置始终符合安全与合规要求,增强了环境的安全性和稳定性。
创建配置审计及函数计算修复规则
本方案通过Terraform创建配置审计规则,并结合函数计算实现不合规资源的自动修复,从而达成云资源合规性的自动化检测与管理。
如果当前操作用户为RAM用户时,请为RAM用户授予以下权限。详细信息请参见管理RAM用户的权限。
本教程所含示例代码支持一键运行,您可以直接运行代码。 一键运行
本方案中采用直接删除不合规安全组方式实现自动修正,可能会影响业务的连续性,请根据实际业务修改函数计算中的修正代码。
创建结果展示
-
登录配置审计控台查看创建规则。
规则列表中显示已创建的规则 SPM0014安全组不允许对全部网段开放高风险端口,运行状态为 应用中,不合规资源数为 2,风险等级为 高风险,创建渠道为 配置审计。
-
登录函数计算控台查看创建函数。
在函数列表中,可以看到已成功创建的函数 HHM-FC-TEST,运行环境为 Python 3.10。
查看修正结果
修正前
-
配置审计不合规资源展示。
规则SPM0014安全组不允许对全部网段开启风险端口的检测结果显示,审计的3个安全组资源中有2个不合规。不合规资源为
sg-bp1lilp19h7x4gz4dfm9(sg-20250411)和sg-bp1hcnsurijy302b8bpi(sg-20230520),即这两个ECS安全组存在对全部网段开放22或3389端口的风险配置。 -
登录ECS安全组查看。
在左侧导航栏选择网络与安全 > 安全组,进入安全组详情页查看入方向访问规则。当前安全组存在 6 条入方向规则,协议类型均为自定义 TCP,端口范围分别为 23/23、1433/1433、3389/3389、1/65535、6379/6379、3306/3306,授权对象均为
0.0.0.0/0(所有 IPv4 地址),授权策略均为允许。
修正后
-
配置审计自动修正详情展示。
在规则详情页中,单击修正详情页签,可查看修正配置及执行结果。修正类型为自定义修正,修正执行方式为自动触发,修正模板为
acs:fc:cn-shenzhen:1595149171858855:functions/HHM-FC-TEST。执行结果列表显示三条Ecs安全组资源的修正执行结果均为运行成功。
-
修正后ECS安全组查看。
在左侧导航栏单击安全组,选择地域华东1(杭州),进入安全组
sg-bp1hcnsuvijy302b8bpi详情页。在入方向规则列表中显示暂无数据,表示当前未配置任何入方向访问规则。
相关文档
-
配置审计创建规则,请参见创建规则。
-
更多安全组配置案例,请参见安全组应用指导和案例。
-
当您选择从模板创建规则或自定义创建规则时,均可以设置自定义修正,通过函数计算FC修正不合规资源具体操作,请参见设置自定义修正。