文档

对安全组规则的合规性进行审计和预警

更新时间:

您可以在配置审计(Config)中创建审计规则,对安全组规则的合规性进行审计,并将审计结果投递到日志服务SLS中。当账号下的安全组规则有不符合审计规则的变更时,您能够通过日志服务SLS收到告警通知。本文以安全组不允许全网段开启22端口和不允许入方向全通两个审计规则为例进行介绍。

效果速览

通过本文的配置,您可以对账号下已有安全组规则进行合规性审计,也能够在安全组规则发生不合规变更时,实时监控和告警。

  • 账号下对已有安全组规则的审计不合规结果,可以在配置审计的控制台查看,例如查看“安全组不允许全网段开启22端口”的审计结果如下:

    image.png

  • 账号下安全组规则的不合规变更,可以通过配置钉钉、短信、电话等不同方式进行不同等级的告警。例如“安全组不允许全网段开启22端口”审计的钉钉告警通知效果如下:告警通知

操作步骤

步骤一:开通配置审计并添加审计规则

开启配置审计和日志服务,并为安全组规则的合规性添加审计规则。

  1. 开通配置审计和日志服务。

  2. 选择配置审计的监控范围。

    1. 登录配置审计控制台

    2. 在左侧导航栏,选择设置 > 服务设置

    3. 监控范围页签中,全部资源处单击修改配置

    4. 选择服务支持的全部资源类型,然后检查确保已选资源类型中包含Ecs 安全组

      监控范围

  3. 配置安全组不允许全网段开启22端口的审计规则。

    1. 在左侧导航栏,单击规则

    2. 规则页面,单击新建规则

    3. 新建规则页面的筛选输入框中输入安全组,筛选出安全组相关的审计规则。

    4. 找到并选中规则名称为安全组不允许对全部网段开启风险端口的托管审计规则,然后单击下一步

      image.png

    5. 设置基本属性页面,设置规则名称、参数期望值、风险等级、触发机制和描述内容等,然后单击下一步

      基本信息内容均为系统默认,您可以根据实际情况进行修改。

      image.png

    6. 设置生效范围页面,已选择资源类型默认为Ecs 安全组,单击下一步

    7. 设置修正页面,单击提交

      对于支持修正设置的托管规则,您可以打开设置修正开关,设置修正方式后再提交。

      说明

      如果您在创建规则时设置了修正,当规则检测到不合规资源时,可以执行修正,快速纠正不合规配置,确保您云上IT系统实现自主持续的合规。更多信息,请参见修正设置

  4. 配置安全组不允许入方向全通的审计规则。

    1. 规则页面,单击新建规则

    2. 新建规则页面的筛选输入框中输入安全组,筛选出安全组相关的审计规则。

    3. 找到并选中规则名称为安全组入网设置有效的托管审计规则,然后单击下一步

      image.png

    4. 设置基本属性页面,设置规则名称、参数期望值、风险等级、触发机制和描述内容等,然后单击下一步

      基本信息内容均为系统默认,您可以根据实际情况进行修改。

      image.png

    5. 设置生效范围页面,已选择资源类型默认为Ecs 安全组,单击下一步

    6. 设置修正页面,单击提交

      对于支持修正设置的托管规则,您可以打开设置修正开关,设置修正方式后再提交。

      说明

      如果您在创建规则时设置了修正,当规则检测到不合规资源时,可以执行修正,快速纠正不合规配置,确保您云上IT系统实现自主持续的合规。更多信息,请参见修正设置

经过以上步骤,您已经建立了两个关于安全组规则的配置审计规则。您可以基于配置审计的托管规则,或者自定义审计规则来建立更多的规则。

image.png

步骤二:将资源不合规事件投递到日志服务

配置审计规则配置后,您可以在配置审计控制台随时查看每条审计规则的检查结果。如果您需要及时收到安全组规则配置不符合审计规则的告警信息,可以基于日志服务SLS来实现。

  1. 将资源不合规事件投递到日志服务。

    1. 登录配置审计控制台

    2. 在左侧导航栏,单击投递

    3. 投递页面,单击左上角的新建投递

    4. 新建投递页面,先输入投递名称,再选择渠道类型为日志服务SLS,然后设置日志服务SLS的相关参数。

      • 接收内容:选中资源不合规事件。当资源的审计结果不合规时,配置审计向日志服务SLS投递资源不合规事件。

      • 日志项目来源:选择本账号中新建日志项目

      • 日志项目地域:选择日志项目所在地域。

      • 日志项目名称:输入日志服务SLS中日志项目的名称,例如config-alarm2

      • 日志库名称:输入日志服务SLS中日志库的名称,例如config-alarm2

      • 指定资源类型事件:选择待投递资源数据的资源类型。关于配置审计支持的资源类型,请参见配置审计支持的资源类型和资源关系

      其他更多参数信息,请参见设置投递数据到日志服务SLS

      image.png

    5. 单击确认

  2. 配置日志服务的日志库索引。

    1. 登录日志服务控制台

    2. 找到新建的日志项目config-alarm2,单击其日志库config-alarm2

    3. 进入索引配置页面,在页面右上角单击开启索引

    4. 单击自动生成索引

      如果提示“当前暂无数据,请确保有数据后再进行操作!”,请先创建安全组并添加不符合审计规则的安全组规则。具体操作,请参见创建安全组修改安全组规则

      修改不符合审计规则的安全组规则,例如配置安全组规则为允许全网段开启22端口或者允许入方向全通,以此来触发一条SLS日志投递。修改安全组规则后,等待约3分钟时间,系统会触发已配置的审计规则,并将不合规事件投递到日志服务中。

    5. 再次单击自动生成索引,日志服务会自动检测日志格式,并生成索引。

    6. 依次单击追加确定,保存索引配置。

      追加索引

      等待约1分钟,日志服务的索引生效。

      说明

      因为索引配置仅对新产生的日志生效,您可以再次修改安全组规则,来触发一个不合规事件,从而在日志服务中查看日志投递。

    7. 单击查询/分析,从config-alarm2日志库中,可以搜索到一条不合规的事件日志。

      image.png

步骤三:配置告警

在日志服务SLS中配置告警,定期检查查询或分析结果,当检查结果满足预设条件时发送告警通知,实现实时的服务状态监控。

  1. 登录日志服务控制台

  2. 找到新建的日志项目config-alarm2,单击其日志库config-alarm2

  3. 在搜索框中输入如下筛选条件,单击查询/分析

    * and eventName: NonCompliant and evaluationResultIdentifier.evaluationResultQualifier.resourceType: SecurityGroup |
    SELECT
    DATE_FORMAT(MAX("evaluationResultIdentifier.evaluationResultQualifier.captureTime")/1000, '%Y-%m-%d %H:%i:%s') captureTime,
    "evaluationResultIdentifier.evaluationResultQualifier.regionId" regionId,
    "evaluationResultIdentifier.evaluationResultQualifier.resourceId" securityGroupId,
    "evaluationResultIdentifier.evaluationResultQualifier.resourceName" securityGroupName,
    "evaluationResultIdentifier.evaluationResultQualifier.configRuleName" configRuleName,
    riskLevel riskLevel
    GROUP BY regionId, securityGroupId, securityGroupName, configRuleName, riskLevel

    您能看到如下所示的筛选结果。

    image.png

  4. 在页面右上角,单击另存为告警,为查询结果设置告警。

  5. 配置告警监控规则。

    • 触发条件选择有数据匹配并设置触发条件为securityGroupId!='null'

      image.png

    • 输出目标选择SLS通知,并单击开启,然后在极简模式下配置告警通知方式。

      image.png

    • 其他参数根据实际情况配置。更多信息,请参见快速设置日志告警通知渠道说明

  6. 单击确定

(条件必选)步骤四:升级告警并优化内容模板

如果您使用的是日志服务的旧版告警,建议将旧版升级为新版。新版本告警相对于旧版告警,在升级原有功能的基础上扩展了告警监控、告警管理、通知(行动)管理的能力。更多信息,请参见旧版与新版区别

  1. 登录日志服务控制台

  2. 找到新建的日志项目config-alarm2,单击其日志库config-alarm2

  3. 在左侧导航栏中,单击告警

  4. 规则/事务页签中,找到目标监控规则,在操作列中单击升级

    如果您是首次使用新版告警,请根据页面提示配置存储中心,然后单击确认

  5. 配置内容模板。

    1. 规则/事务页签,找到目标监控规则,在操作列中单击编辑

    2. 告警规则对话框,单击行动策略后的查看

      查看行动策略

    3. 编辑行动策略对话框,单击内容模板后的查看,找到对应的内容模板。

      内容模板

    4. 编辑内容模板对话框,修改以下内容,并单击确认保存内容模板。

      • 将内容模板的标题修改为[告警] 安全组规则审计预警

      • 将发送内容修改为以下格式,提升告警通知的可读性。

        - **告警名称**: {{ alert.alert_name }}
        - **告警严重度**: {{ alert.severity | format_severity }}
        {% for result in alert.results[0].raw_results %}
        - **安全组Id**: {{ result['securityGroupId'] }}
         >- **规则名称**: {{ result['configRuleName'] }}
         >- **触发时间**: {{ result['captureTime'] }}
         >- **严重程度**: {{ result['riskLevel'] }}
         >- **地域**: {{ result['regionId'] }}
         >- **安全组名称**: {{ result['securityGroupName'] }}
        {% endfor %}

      修改内容模板

步骤五:完成配置与告警测试

  • 您可以在账号下创建一个安全组,并设置不符合审计规则的安全组规则,对告警的可用性进行测试。

  • 完成以上配置后,在安全组规则不符合审计规则时,您就可以收到钉钉机器人的告警通知,如下图所示。从而提升您对于安全组规则变更的感知能力,提升您云上资产的安全性。告警通知

  • 本页导读 (1)