

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 Amazon 处理 GuardDuty 调查结果 EventBridge
<a name="guardduty_findings_eventbridge"></a>

GuardDuty 自动将调查结果作为事件发布（发送）到无服务器事件总线服务 Amazon EventBridge （前身为 Amazon CloudWatch Events）。 EventBridge 将来自应用程序和服务的近乎实时的数据流提供给亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 主题 AWS Lambda 、函数和 Amazon Kinesis 流等目标。有关更多信息，请参阅 [Amazon EventBridge 用户指南](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html)。

EventBridge 支持通过接收[事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/aws-events.html)自动监控和处理 GuardDuty 调查结果。 EventBridge 接收新生成的发现和汇总结果的事件，其中现有发现的后续出现与原始发现相结合。每个 GuardDuty查找结果都被分配一个查找 ID，并使用唯一的查找 ID 为每个发现 GuardDuty 创建一个 EventBridge 事件。有关聚合在中的工作原理的信息 GuardDuty，请参阅[GuardDuty 查找聚合](finding-aggregation.md)。

除了自动监控和处理外，使用 EventBridge 还可以长期保留您的发现数据。 GuardDuty 将发现的结果存储 90 天。使用 EventBridge，您可以将调查结果数据发送到首选存储平台，并根据需要将数据存储多长时间。要将发现结果保留更长的时间，请 GuardDuty 支持[将生成的调查发现导出到 Amazon S3](guardduty_exportfindings.md)。

**Topics**
+ [EventBridge 通知频率为 GuardDuty](#eventbridge-freq-notifications-gdu)
+ [设置 Amazon SNS 主题和端点](#guardduty-eventbridge-set-up-sns-and-endpoint)
+ [EventBridge 与一起使用 GuardDuty](#eventbridge_events)
+ [创建 EventBridge 规则](#guardduty_eventbridge_severity_notification)
+ [EventBridge 多账户环境规则](#guardduty_findings_eventbridge_multiaccount)

## 了解中的 EventBridge 通知频率 GuardDuty
<a name="eventbridge-freq-notifications-gdu"></a>

本节说明您通过多久收到查找通知的频率 EventBridge以及如何更新后续查找事件的频率。

**具有唯一调查发现 ID 的新生成调查发现的通知**  
GuardDuty 当它生成带有唯一查找 ID 的查找结果时，它会近乎实时地发送这些通知。该通知会包括在通知生成过程中此调查发现 ID 后续的所有事件。  
新生成的调查发现的通知频率接近实时。默认情况下，您无法修改此频率。

**后续调查发现事件的通知**  
GuardDuty 将在 6 小时间隔内发生的特定查找类型的所有后续事件汇总为一个事件。只有管理员帐户才能更新后续查找事件的 EventBridge 通知频率。成员账户无法更新自己账户的此频率。例如，如果委派 GuardDuty 管理员账户将频率更新为一小时，则所有成员账户的后续查找事件的通知频率也将为一小时。 EventBridge有关更多信息，请参阅 [亚马逊有多个账户 GuardDuty](guardduty_accounts.md)。  
作为管理员账户，您可以自定义有关后续调查发现事件通知的默认频率。可能的值为 15 分钟、1 小时或 6 小时（默认值）。有关设置通知频率的信息，请参阅 [第 5 步 – 设置导出更新后活动调查发现的频率](guardduty_exportfindings.md#guardduty_exportfindings-frequency)。

有关管理员账户接收成员账户 EventBridge 通知的更多详细信息，请参阅[EventBridge 多账户环境规则](#guardduty_findings_eventbridge_multiaccount)。

## 设置 Amazon SNS 主题和端点（电子邮件、Slack 和 Amazon Chime）
<a name="guardduty-eventbridge-set-up-sns-and-endpoint"></a>

Amazon Simple Notification Service（Amazon SNS）是一项完全托管式服务，提供从发布者至订阅用户的消息传输。发布者通过将消息发送至*主题*实现与订阅用户的异步交流。主题是一种逻辑接入点和通信渠道，允许您对多个终端节点进行分组 AWS Lambda，例如亚马逊简单队列服务 (Amazon SQS)、HTTP/S 和电子邮件地址。

**注意**  
在首选事件规则创建期间或之后，您可以将 Amazon SNS 主题添加到首选 EventBridge 事件规则中。

 **创建 Amazon SNS 主题**  
首先，您必须在 Amazon SNS 中设置一个主题并添加一个端点。要创建主题，请按照《Amazon Simple Notification Service Developer Guide》**中的 [Step 1: Creating a topic](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) 的步骤进行操作。创建主题后，将主题 ARN 复制到剪贴板。后续会需要使用此主题 ARN 继续进行首选设置之一。

选择一种首选方法来确定要将 GuardDuty 查找数据发送到何处。

------
#### [ Email setup ]

**设置电子邮件端点**

[Create an Amazon SNS topic](#guardduty-set-up-sns-topic-eventbridge) 之后，下一步是创建对此主题的订阅。请按照《Amazon Simple Notification Service Developer Guide》**中的 [Step 2: Creating a subscription to an Amazon SNS topic](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html) 的步骤进行操作。

1. 对于**主题 ARN**，请使用在 [Create an Amazon SNS topic](#guardduty-set-up-sns-topic-eventbridge) 步骤中创建的主题 ARN。主题 ARM 类似于以下内容：

   ```
   arn:aws:sns:us-east-2:123456789012:your_topic
   ```

1. 对于**协议**，请选择**电子邮件**。

1. 对于**端点**，输入您要从 Amazon SNS 接收通知的电子邮件地址。

   创建订阅后，您需要通过电子邮件客户端确认订阅。

------
#### [ Slack setup ]

**在聊天应用程序客户端 Slack 中配置 Amazon Q 开发者版**

[Create an Amazon SNS topic](#guardduty-set-up-sns-topic-eventbridge) 之后，下一步是配置 Slack 客户端。

有关任何其他详细信息，请参阅《Amazon Q Developer in chat applications Administrator Guide》**中的 [Tutorial: Get started with Slack](https://docs.aws.amazon.com/chatbot/latest/adminguide/slack-setup.html)。

------
#### [ Chime setup ]

**在聊天应用程序客户端 Chime 中配置 Amazon Q 开发者版**

[Create an Amazon SNS topic](#guardduty-set-up-sns-topic-eventbridge) 之后，下一步是为 Chime 配置 Amazon Q Developer。

有关任何其他详细信息，请参阅《Amazon Q Developer in chat applications Administrator Guide》**中的 [Tutorial: Get started with Amazon Chime](https://docs.aws.amazon.com/chatbot/latest/adminguide/chime-setup.html.html)。

------

## 使用 Amazon EventBridge 获取 GuardDuty 调查结果
<a name="eventbridge_events"></a>

使用 EventBridge，您可以创建规则来指定要监视的事件。这些规则还可以指定在这些事件发生时可以执行自动操作的目标服务和应用程序。[目标](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)是一个目的地（资源或终端节点），当事件与规则中定义的事件模式匹配时，它会将事件 EventBridge 发送到该目的地。每个事件都是一个 JSON 对象，它符合 AWS 事件 EventBridge 架构，并包含发现的 JSON 表示形式。您可以调整规则，使其仅发送那些符合特定条件的事件。有关更多信息，请参阅 [JSON 架构主题]。由于调查结果数据是按[EventBridge事件](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-and-event-patterns.html)结构的，因此您可以使用其他应用程序、服务和工具来监控、处理和处理调查结果。

要接收有关基于事件的 GuardDuty 发现的通知，您必须为创建 EventBridge 规则和目标 GuardDuty。通过此规则 EventBridge ，可以将 GuardDuty 生成的结果通知发送到规则中指定的目标。

**注意**  
EventBridge 和 CloudWatch 事件是相同的底层服务和 API。但是， EventBridge 包括其他功能，可帮助您接收来自软件即服务 (SaaS) 应用程序和您自己的应用程序的事件。由于底层服务和 API 相同，因此 GuardDuty 查找结果的事件架构也相同。

**存档和未存档的调查结果如何与之配合 GuardDuty 使用 EventBridge**

对于手动存档的调查结果，将 EventBridge 根据特定的通知频率将这些发现的初次和所有后续出现的结果（存档完成后生成）发送到。有关更多信息，请参阅 [了解中的 EventBridge 通知频率 GuardDuty](#eventbridge-freq-notifications-gdu)。

对于自动存档的调查结果[抑制规则](findings_suppression-rule.md)，这些发现的初次和所有后续出现的结果（存档完成后生成）都*不会*发送到。 EventBridge您可以在 GuardDuty 控制台中查看这些自动存档的调查结果。

### 事件架构
<a name="guardduty_findings_eventbridge_format"></a>

[事件模式](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-patterns.html)定义了用于确定是否将事件发送到目标的数据 EventBridge 。 EventBridge的事件 GuardDuty 采用以下格式：

```
{
         "version": "0",
         "id": "cd2d702e-ab31-411b-9344-793ce56b1bc7",
         "detail-type": "GuardDuty Finding",
         "source": "aws.guardduty",
         "account": "111122223333",
         "time": "1970-01-01T00:00:00Z",
         "region": "us-east-1",
         "resources": [],
         "detail": {GUARDDUTY_FINDING_JSON_OBJECT}
        }
```

`detail` 值将单个调查发现的 JSON 详细信息作为对象返回，而不是返回整个 *findings* 响应语法，响应语法支持一个数组包含多个调查发现。

有关中包含的所有参数的完整列表`GUARDDUTY_FINDING_JSON_OBJECT`，请参见[GetFindings](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_GetFindings.html#API_GetFindings_ResponseSyntax)。在 `GUARDDUTY_FINDING_JSON_OBJECT` 中显示的 `id` 参数是之前介绍的调查发现 ID。

## 为 GuardDuty 调查结果创建 EventBridge 规则
<a name="guardduty_eventbridge_severity_notification"></a>

以下过程说明了如何使用 Amazon EventBridge 控制台和 [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) 为 GuardDuty 调查结果创建 EventBridge 规则。该规则检测使用 EventBridge事件架构和模式进行 GuardDuty 发现的事件，并将这些事件发送到 AWS Lambda 函数进行处理。

AWS Lambda 是一项计算服务，无需预置或管理服务器即可使用它来运行代码。您可以打包您的代码并将其 AWS Lambda 作为 *Lambda 函数*上传到。 AWS Lambda 然后在函数被调用时运行该函数。您可以手动调用函数，自动调用函数以响应事件，或者响应来自应用程序或服务的请求。有关创建和调用 Lambda 函数的信息，请参阅[《AWS Lambda 开发人员指南》](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)。

选择您的首选方法来创建将您的 GuardDuty发现发送到目标的 EventBridge 规则。

------
#### [ Console ]

按照以下步骤使用 Amazon EventBridge 控制台创建规则，自动将所有 GuardDuty 查找事件发送到 Lambda 函数进行处理。该规则对收到特定事件时运行的规则使用默认设置。有关规则设置的详细信息或要了解如何创建使用自定义设置的[规则，请参阅 *Amazon EventBridge 用户指南*中的创建对事件做出反应](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule.html)的规则。

在创建规则之前，请创建您希望该规则用作目标的 Lambda 函数。创建规则时，需要将此函数指定为规则的目标。目标也可以是您之前创建的 SNS 主题。有关更多信息，请参阅 [设置 Amazon SNS 主题和端点（电子邮件、Slack 和 Amazon Chime）](#guardduty-eventbridge-set-up-sns-and-endpoint)。

**使用控制台创建事件规则**

1. 登录 AWS 管理控制台 并打开 Amazon EventBridge 控制台，网址为[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/)。

1. 在导航窗格中的**总线**下，选择**规则**。

1. 在**规则**部分中，选择**创建规则**。

1. 在**定义规则详细信息**页面上，执行以下操作：

   1. 对于**名称**，输入规则的名称。

   1. （可选）对于**描述**，输入规则的简要描述。

   1. 对于**事件总线**，请确保选择**默认值**，以及**在选定的事件总线上启用该规则**已开启。

   1. 对于**规则类型**，选择**具有事件模式的规则**。

   1. 完成后，选择 **Next (下一步)**。

1. 在**构建事件模式**页面上，执行以下操作：

   1. 对于**事件来源**，选择**AWS 事件或 EventBridge 合作伙伴事件**。

   1. （可选）对于**示例事件**，请查看的示例查找事件 GuardDuty 以了解事件可能包含的内容。为此，请选择 **AWS 事件**。然后，对于**示例事件**，选择**GuardDuty查找**。

   1. 

**选项 1-使用模式表单，即 EventBridge 提供以下内容的模板**

      在**事件模式**部分中，执行以下操作：

      1. 对于**创建方法**，选择**使用模式表单**。

      1. 对于**事件源**，选择 **AWS 服务**。

      1. 对于 **AWS 服务**，选择 **GuardDuty**。

      1. 对于**事件类型**，选择**GuardDuty 查找**。

      完成后，选择 **Next (下一步)**。

   1. 

**选项 2：使用 JSON 格式的自定义事件模式**

      在**事件模式**部分中，执行以下操作：

      1. 对于**创建方法**，选择**自定义模式（JSON 编辑器）**。

      1. 对于**事件模式**，粘贴以下自定义 JSON，该自定义 JSON 将针对中、高和重大严重程度的调查发现创建警报。有关更多信息，请参阅 [调查发现的严重性级别](guardduty_findings-severity.md)。

         ```
         {
           "source": [
             "aws.guardduty"
           ],
           "detail-type": [
             "GuardDuty Finding"
           ],
           "detail": {
             "severity": [
               4,
               4.0,
               4.1,
               4.2,
               4.3,
               4.4,
               4.5,
               4.6,
               4.7,
               4.8,
               4.9,
               5,
               5.0,
               5.1,
               5.2,
               5.3,
               5.4,
               5.5,
               5.6,
               5.7,
               5.8,
               5.9,
               6,
               6.0,
               6.1,
               6.2,
               6.3,
               6.4,
               6.5,
               6.6,
               6.7,
               6.8,
               6.9,
               7,
               7.0,
               7.1,
               7.2,
               7.3,
               7.4,
               7.5,
               7.6,
               7.7,
               7.8,
               7.9,
               8,
               8.0,
               8.1,
               8.2,
               8.3,
               8.4,
               8.5,
               8.6,
               8.7,
               8.8,
               8.9,
               9,
               9.0,
               9.1,
               9.2,
               9.3,
               9.4,
               9.5,
               9.6,
               9.7,
               9.8,
               9.9,
               10,
               10.0
             ]
           }
         }
         ```

      完成后，选择 **Next (下一步)**。

1. 

**选项 A-选择 AWS 服务 - AWS Lambda 作为目标**

   在**选择目标**页面上，执行以下操作：

   1. 对于**目标类型**，选择 **AWS 服务**。

   1. 对于 **Select a target**（选择目标），选择 **Lambda function**（Lambda 函数）。然后，对于**函数**，选择您要将调查发现发送到的 Lambda 函数。

   1. 对于**配置版本/别名**，输入目标 Lambda 函数的版本或别名设置。

   1. （可选）对于**其他设置**，输入自定义设置以指定要向 Lambda 函数发送哪些事件数据。您还可以指定如何处理未成功传递到函数的事件。

   1. 完成后，选择 **Next (下一步)**。

1. 

**选项 B：选择 SNS 主题作为目标**

   在**选择目标**页面上，执行以下操作：

   1. 对于**目标类型**，选择 **AWS 服务**。

   1. 对于 **Select a target**（选择一个目标），选择 **SNS topic**（SNS 主题）。然后，对于**目标位置**，根据您的目标位置选择合适的选项。对于**主题**，选择您创建的 SNS 主题名称。

   1. 展开**其他设置**。对于**配置目标输入**，选择**输入转换器**。

   1. 选择 **Configure input transformer**（配置输入转换器）。

   1. 复制以下代码并粘贴到**目标输入转换器**部分的**输入路径**字段中。

      ```
      {
          "severity": "$.detail.severity",
          "Account_ID": "$.detail.accountId",
          "Finding_ID": "$.detail.id",
          "Finding_Type": "$.detail.type",
          "region": "$.region",
          "Finding_description": "$.detail.description"
      }
      ```

   1. 复制以下代码并粘贴到**模板**字段中，以便格式化电子邮件。

      ```
      "You have a severity <severity> GuardDuty finding type <Finding_Type> in the <region> Region."
      "Finding Description:"
      "<Finding_description>. "
      "For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"
      ```

1. 在**配置标签**页面上，可以选择输入要分配给规则的一个或多个标签。然后选择**下一步**。

1. 在**查看并创建**页面上，查看规则的设置并验证它们是否正确。

   要更改设置，选择包含该设置的部分中的**编辑**，然后输入正确的设置。您也可以使用导航选项卡转到包含设置的页面。

1. 在输入完验证设置后，请选择**创建规则**。

------
#### [ API ]

以下过程说明如何使用 AWS CLI 命令为其创建 EventBridge 规则和目标 GuardDuty。具体而言，该过程向您展示了如何创建规则，该规则 EventBridge 允许将 GuardDuty 生成的所有结果的事件发送给作为规则目标的 AWS Lambda 函数。

**注意**  
在此示例中，我们使用 Lambda 函数作为触发规则的目标。 EventBridge您也可以将其他 AWS 资源配置为要触发的目标 EventBridge。 GuardDuty 并 EventBridge 支持以下目标类型：亚马逊 EC2 实例、Amazon Kinesis 直播、亚马逊 ECS 任务、 AWS Step Functions 状态机、`run`命令和内置目标。有关更多信息，请参阅 *Amazon EventBridge API 参考[PutTargets](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html)*中的。

**创建规则和目标**

1. 要创建允许为 GuardDuty生成的所有发现发送事件的规则，请运行 EventBridge 以下 EventBridge CLI 命令。

   ```
   aws events put-rule --name your-rule-name --event-pattern "{\"source\":[\"aws.guardduty\"]}"
   ```

   您可以进一步自定义规则， EventBridge 使其指示仅针对 GuardDuty生成的结果的子集发送事件。该子集基于规则中指定的一个或多个调查发现属性。例如，使用以下 CLI 命令创建一条规则， EventBridge 允许仅针对严重性为 5 或 8 的 GuardDuty 发现发送事件：

   ```
   aws events put-rule --name your-rule-name --event-pattern "{\"source\":[\"aws.guardduty\"],\"detail-type\":[\"GuardDuty Finding\"],\"detail\":{\"severity\":[5,8]}}"
   ```

   为此，您可以使用 JSON 中可用的任何属性值来查找 GuardDuty 结果。

1. 要附加 Lambda 函数作为您在步骤 1 中创建的规则的目标，请运行以下 CL CloudWatch I 命令。

   ```
   aws events put-targets --rule your-target-name --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:your_function
   ```

   请务必将上述命令`your-target-name`中的事件替换为实际的 Lambda 函数。 GuardDuty 

1. 要添加调用目标所需的权限，请运行以下 Lambda CLI 命令。

   ```
   aws lambda add-permission --function-name your-target-name --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com
   ```

   请务必将上述命令`your_function`中的事件替换为实际的 Lambda 函数。 GuardDuty 

------

## EventBridge GuardDuty 多账户环境规则
<a name="guardduty_findings_eventbridge_multiaccount"></a>

使用委派 GuardDuty 管理员账户时，您可以查看成员账户中生成的事件并使用其他应用程序和服务进行操作。 EventBridge 您的管理员账户中的规则将根据您的成员账户的适用结果触发。如果您在管理员帐户 EventBridge 中设置了查找通知，则您的账户和成员账户都将收到有关查找结果的通知。例如，您可以使用将特定类型的发现发送 EventBridge 到 Lambda 函数，该函数处理数据并将其发送到您的安全事件和事件管理 (SIEM) 系统。

您可以使用 GuardDuty 查找结果的 JSON 详细信息`accountId`字段来识别发现结果的成员账户。要为特定成员账户创建自定义事件规则，请创建新规则并在**事件模式**中使用以下模板。*123456789012*替换为您要触发事件的成员账号。`accountId`

```
{
  "source": [
    "aws.guardduty"
  ],
  "detail-type": [
    "GuardDuty Finding"
  ],
  "detail": {
    "accountId": [
      "123456789012"
    ]
  }
}
```

**注意**  
此示例创建的规则与来自指定账户 ID 的所有调查发现相匹配。您可以 IDs 按照 JSON 语法使用逗号分隔多个账户。