我创建了一个 Amazon EventBridge 规则来响应 Amazon GuardDuty 的服务调查发现类型,但响应是 JSON 格式。我想收到包含自定义 Amazon Simple Notification Service (Amazon SNS) 通知的电子邮件回复。
解决方案
先决条件:创建 Amazon SNS 主题。Amazon SNS 主题必须与您的 GuardDuty 服务位于同一个 AWS 区域。
要为 GuardDuty 配置 EventBridge 规则以发送自定义 SNS 通知,请完成以下步骤:
-
打开 EventBridge 控制台。
-
在 Buses(总线)部分下,选择 Rules(规则)。
-
选择 Create rule(创建规则),然后完成以下步骤来配置规则:
输入名称和描述。
对于 Event bus(事件总线),选择 default(默认)。
对于 Rule type(规则类型),选择 Rule with an event pattern(具有事件模式的规则)。
-
选择 Next(下一步)。
-
在 Event pattern(事件模式)下,完成以下步骤:
对于 Event source(事件源),请选择 AWS services(AWS 服务)。
对于 AWS service(AWS 服务),请选择 GuardDuty。
对于 Event type(事件类型),选择 GuardDuty Finding(GuardDuty 调查发现)。
-
在 Event pattern(事件模式)预览部分中,选择 Edit pattern(编辑模式)。
-
在 JSON 文本框中,输入以下代码:
{
"source": ["aws.guardduty"],
"detail": {
"type": ["Backdoor:EC2/C&CActivity.B!DNS"]
}
}
**注意:**将 Backdoor:EC2/C&CActivity.B!DNS 替换为您的调查发现类型。要测试 Backdoor:EC2/C&CActivity.B!DNS 调查发现类型,请从 Amazon Elastic Compute Cloud (Amazon EC2) 实例向 guarddutyc2activityb.com 测试域发出 DNS 请求。您可以在 Linux 上运行 dig 命令或在 Windows 上运行 nslookup 命令。调查发现将在几分钟内生成。
-
选择 Next(下一步)。
-
对于 Target types(目标类型),选择 AWS service(AWS 服务)。
-
对于 Select a target(选择目标),选择 SNS topic(SNS 主题)。
-
对于 Topic(主题),选择您的主题。
-
(可选)配置输入转换器。
在 Target input transformer(目标输入转换器)部分中,对于 Input path(输入路径),在文本框中输入以下 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"
}
对于 Template(模板),在文本框中输入以下字符串模板:
"You have a new GuardDuty alert. View finding in console - https://console.aws.amazon.com/guardduty/home?REGION=#/findings?search=id%3DFINDING_ID "
**注意:**在模板中,保留 FINDING_ID 后的尾随空格,以免右引号破坏 SNS 通知中的 URL。输入路径使用 GuardDuty 调查发现中的特定属性。有关可用筛选器的详细信息,请参阅 GuardDuty 中的属性筛选器。
选择 Next(下一步)。
(可选)为您的规则添加标签,然后选择 Next(下一步)。
查看规则详细信息,然后选择 Create rule(创建规则)。
当 GuardDuty 生成调查发现类型时,EventBridge 会在 5 分钟内将 SNS 通知发送到您的指定端点。要为所有 GuardDuty 调查发现类型设置 SNS 通知,请参阅使用 Amazon EventBridge 处理 GuardDuty 调查发现。
相关信息
在 Amazon EventBridge 中创建对事件做出响应的规则
教程: 使用输入转换器在 EventBridge 中转换事件
如何对 GuardDuty 自定义 Amazon SNS 通知未送达的问题进行故障排除?