如何为 GuardDuty 配置 EventBridge 规则,才能发送针对特定亚马逊云科技服务事件类型的自定义 SNS 通知?

1 分钟阅读
0

我创建了一个 Amazon EventBridge 规则来触发 Amazon GuardDuty 的服务事件类型,但响应是 JSON 格式。我想收到包含自定义通知的电子邮件响应。

简短描述

使用包含 EventBridge 规则的自定义事件模式来匹配特定的调查结果类型。然后,将响应路由到 Amazon Simple Notification Service (Amazon SNS) 主题。

解决方法

此示例使用 Amazon GuardDuty 事件类型 UnauthorizedAccess:EC2/MaliciousIPCaller.Custom

注意: 您可以将服务名称和事件类型替换为您的具体亚马逊云科技服务。

  1. 如果您尚未创建 Amazon SNS 主题,请按照 Amazon SNS 入门中的说明进行操作。

**注意:**Amazon SNS 主题必须与您的 Amazon GuardDuty 服务在同一个区域。

  1. 打开 EventBridge 控制台

  2. 选择创建规则

  3. 为您的规则输入名称。您也可以选择输入描述

  4. 选择事件应用于的总线。

  5. 规则类型中,选择具有事件模式的规则。然后,选择下一步

  6. 事件模式下,为事件源选择亚马逊云科技服务。然后,为亚马逊云科技服务选择 GuardDuty

  7. 对于事件类型,选择 GuardDuty 调查结果

  8. 事件模式预览部分中,选择编辑模式

  9. 复制以下代码,将其粘贴到事件模式预览部分中,然后选择保存

{
  "source": [
    "aws.guardduty"
  ],
  "detail": {
    "type": [
      "UnauthorizedAccess:EC2/MaliciousIPCaller.Custom"
    ]
  }
}
  1. 选择下一步

  2. 对于目标类型,选择亚马逊云科技服务

  3. 对于选择目标,选择 SNS 主题。然后,从下拉列表中选择您的主题。

  4. (可选)要配置输入转换器,请选择其他设置下拉列表。
    配置目标输入下拉列表中,选择输入转换器
    选择配置输入转换器。目标输入转换器部分下的输入路径中,粘贴以下 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> "

然后,选择确认

  1. 选择下一步
(可选)向您的规则添加标签,然后选择**下一步**。
  1. 查看规则的详细信息,然后选择创建规则

  2. 选择页面底部的创建

  3. 如果触发了事件类型,则您会在 SNS 端点收到 SNS 通知。

相关信息

创建对事件做出反应的 Amazon EventBridge 规则

教程:使用输入转换器自定义 EventBridge 向事件目标传递的内容

如何排除 GuardDuty 自定义 Amazon SNS 通知未送达的问题?

AWS 官方
AWS 官方已更新 1 年前