问题:配置CloudWatch事件规则推送Connect DeleteUser事件至SNS
解决CloudWatch Events触发SNS自定义消息推送问题
我来帮你搞定这个自定义消息的问题!首先咱们先把事件模式的问题捋清楚,然后再配置自定义消息的规则。
一、修正EventBridge事件模式
CloudTrail推送到CloudWatch的事件是有固定嵌套结构的,你的事件模式需要精准匹配这个结构才能正确触发。正确的事件模式应该是这样的:
{ "source": ["aws.cloudtrail"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["connect.amazonaws.com"], "eventName": ["DeleteUser"] } }
你之前的配置可能没正确嵌套detail字段,或者source/detail-type不匹配——CloudTrail事件的source是aws.cloudtrail,detail-type固定为AWS API Call via CloudTrail,而eventSource和eventName是在detail子节点里的,这一点很容易出错。
二、配置SNS自定义消息内容
解决了事件触发的问题后,咱们来设置自定义消息:
- 在EventBridge事件规则的目标配置中,选择你的SNS主题
- 找到输入转换器选项(别用默认的“匹配事件”),展开它
- 先设置输入路径,用来提取事件里的关键信息,比如:
{ "userName": "$.detail.requestParameters.userName", "eventTime": "$.detail.eventTime", "callerARN": "$.detail.userIdentity.arn" } - 然后设置输入模板,把提取到的信息整合成你想要的邮件内容,比如:
这里的【Connect用户删除告警】 已检测到Connect用户删除操作: - 被删除用户名称:<userName> - 操作时间:<eventTime> - 操作发起者ARN:<callerARN><userName>等占位符会自动替换成输入路径提取到的实际值。
三、测试验证
- 配置完成后,手动调用一次Connect的
DeleteUserAPI,或者在控制台删除一个用户 - 等待几分钟,检查你的邮箱是否收到了自定义格式的告警邮件
内容的提问来源于stack exchange,提问作者Michael98
相关产品推荐
相关产品推荐

