我创建了一个 Amazon EventBridge 规则来触发 Amazon GuardDuty 的服务事件类型,但响应是 JSON 格式。我想收到包含自定义通知的电子邮件响应。
简短描述
使用包含 EventBridge 规则的自定义事件模式来匹配特定的调查结果类型。然后,将响应路由到 Amazon Simple Notification Service (Amazon SNS) 主题。
解决方法
此示例使用 Amazon GuardDuty 事件类型 UnauthorizedAccess:EC2/MaliciousIPCaller.Custom。
注意: 您可以将服务名称和事件类型替换为您的具体亚马逊云科技服务。
- 如果您尚未创建 Amazon SNS 主题,请按照 Amazon SNS 入门中的说明进行操作。
**注意:**Amazon SNS 主题必须与您的 Amazon GuardDuty 服务在同一个区域。
-
打开 EventBridge 控制台。
-
选择创建规则。
-
为您的规则输入名称。您也可以选择输入描述。
-
选择事件应用于的总线。
-
在规则类型中,选择具有事件模式的规则。然后,选择下一步。
-
在事件模式下,为事件源选择亚马逊云科技服务。然后,为亚马逊云科技服务选择 GuardDuty。
-
对于事件类型,选择 GuardDuty 调查结果。
-
在事件模式预览部分中,选择编辑模式。
-
复制以下代码,将其粘贴到事件模式预览部分中,然后选择保存。
{
"source": [
"aws.guardduty"
],
"detail": {
"type": [
"UnauthorizedAccess:EC2/MaliciousIPCaller.Custom"
]
}
}
-
选择下一步。
-
对于目标类型,选择亚马逊云科技服务。
-
对于选择目标,选择 SNS 主题。然后,从下拉列表中选择您的主题。
-
(可选)要配置输入转换器,请选择其他设置下拉列表。
在配置目标输入下拉列表中,选择输入转换器。
选择配置输入转换器。
在目标输入转换器部分下的输入路径中,粘贴以下 JSON:
{
"severity": "$.detail.severity",
"Finding_ID": "$.detail.id",
"instanceId": "$.detail.resource.instanceDetails.instanceId",
"port": "$.detail.service.action.networkConnectionAction.localPortDetails.port",
"eventFirstSeen": "$.detail.service.eventFirstSeen",
"eventLastSeen": "$.detail.service.eventLastSeen",
"count": "$.detail.service.count",
"Finding_Type": "$.detail.type",
"region": "$.region",
"Finding_description": "$.detail.description"
}
有关可用筛选器的更多信息,请参阅筛选器属性。
对于模板,粘贴以下字符串模板:
"You have a new GuardDuty alert. View finding in console - https://console.aws.amazon.com/guardduty/home?<region>=#/findings?search=id%3D<Finding\_ID> "
然后,选择确认。
- 选择下一步。
(可选)向您的规则添加标签,然后选择**下一步**。
-
查看规则的详细信息,然后选择创建规则。
-
选择页面底部的创建。
-
如果触发了事件类型,则您会在 SNS 端点收到 SNS 通知。
相关信息
创建对事件做出反应的 Amazon EventBridge 规则
教程:使用输入转换器自定义 EventBridge 向事件目标传递的内容
如何排除 GuardDuty 自定义 Amazon SNS 通知未送达的问题?