问题描述
在AWS Config仪表板中有一组规则,并希望在Config检测到不合规资源时触发AWS CloudWatch警报。计划是将该警报链接到一个SNS主题,以便在出现不合规事件/资源时向团队发送电子邮件通知。用户想知道是否有一种直接的方法来实现这一点,或者是否有一个解决方法可以达到相同的效果。他在CloudWatch仪表板中查看了可用的指标,但没有找到与AWS Config相关的内容。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1:使用AWS Config规则触发CloudWatch报警
目前,AWS Config并没有直接从中创建报警的指标,但你可以通过以下步骤设置AWS CloudWatch警报,以便在Config检测到不合规资源时触发:
创建Lambda函数: 首先,你需要创建一个Lambda函数,以便在Config规则评估时执行。可以根据你的需求,编写Lambda函数代码来触发CloudWatch警报。你可以在AWS Config文档中找到一个示例Node.js代码来帮助你开始。
设置Config规则: 在AWS Config中,设置适当的规则,以便在不合规资源被检测到时触发Lambda函数。可以根据你的需求,选择不同的资源类型和条件来定义规则。
创建CloudWatch警报: 在CloudWatch控制台中,创建一个新的CloudWatch警报。将Lambda函数执行作为警报目标,并设置触发条件。这些条件应该与你在Config规则中定义的不合规条件相匹配。例如,你可以设置警报在特定时间段内,当Lambda函数的执行次数超过某个阈值时触发。
方案2:直接使用AWS Config发布到SNS主题
如果你更倾向于简化的方法,AWS Config可以直接将评估规则的结果发布到SNS主题,从而实现在不合规事件发生时发送电子邮件通知。
设置SNS主题: 首先,你需要创建一个SNS主题,用于接收通知。
配置AWS Config规则: 在AWS Config中,为你的规则选择要发布到SNS主题的通知。根据你的需求,设置合适的通知类型和目标SNS主题。
这种方法可以更加直接地满足你的需求,而无需手动编写Lambda函数。
方案3:基于CloudTrail事件的CloudWatch报警
另一种方法是基于CloudTrail事件创建CloudWatch报警,这需要一些深入的操作。
配置CloudTrail: 首先,确保你的AWS账户已经启用了CloudTrail,并且正在记录与资源合规性相关的事件。
创建CloudWatch指标过滤器: 在CloudWatch控制台中,创建一个指标过滤器,以便从CloudTrail事件中提取出与资源合规性有关的信息。
创建CloudWatch警报: 基于从CloudTrail事件中提取的指标,创建一个CloudWatch警报。根据你的需求,设置触发条件,以便在特定的不合规事件发生时触发警报。
请注意,这种方法涉及一些复杂性,需要对CloudTrail、CloudWatch和事件过滤器有一定的了解。
以上三种方案中,你可以根据你的需求和偏好选择其中之一来实现AWS Config规则中的不合规事件的监控和警报。