

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon EventBridge 處理 GuardDuty 問題清單
<a name="guardduty_findings_eventbridge"></a>

GuardDuty 會自動將調查結果作為事件發佈 （傳送） 至 Amazon EventBridge （先前稱為 Amazon CloudWatch Events)，這是一種無伺服器事件匯流排服務。EventBridge 將近乎即時的資料從應用程式和服務串流傳送至目標，例如 Amazon Simple Notification Service (Amazon SNS) 主題、 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，而 GuardDuty 會使用唯一的調查結果 ID 為每個調查結果建立 EventBridge 事件。如需彙總如何在 GuardDuty 中運作的詳細資訊，請參閱 [GuardDuty 調查結果彙總](finding-aggregation.md)。

除了自動化監控和處理之外，EventBridge 的使用也可讓您長期保留問題清單資料。GuardDuty 會將調查結果存放 90 天。使用 EventBridge，您可以將問題清單資料傳送到您偏好的儲存平台，並隨心所欲地存放資料。若要保留更長的調查結果，GuardDuty 支援 [將產生的調查結果匯出至 Amazon S3](guardduty_exportfindings.md)。

**Topics**
+ [GuardDuty 中的 EventBridge 通知頻率](#eventbridge-freq-notifications-gdu)
+ [設定 Amazon SNS 主題和端點](#guardduty-eventbridge-set-up-sns-and-endpoint)
+ [搭配 GuardDuty 使用 EventBridge](#eventbridge_events)
+ [建立 EventBridge 規則](#guardduty_eventbridge_severity_notification)
+ [多帳戶環境的 EventBridge 規則](#guardduty_findings_eventbridge_multiaccount)

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

本節說明透過 EventBridge 接收問題清單通知的頻率，以及如何更新後續問題清單出現的頻率。

**具有唯一問題清單 ID 的新產生問題清單通知**  
GuardDuty 會在產生具有唯一問題清單 ID 的問題清單時，近乎即時地傳送這些通知。通知包含在通知產生程序期間此調查結果 ID 的所有後續出現次數。  
新產生的調查結果通知頻率近乎即時。根據預設，您無法修改此頻率。

**後續出現的調查結果的通知**  
GuardDuty 會將在 6 小時間隔內發生之特定調查結果類型的所有後續出現彙總為單一事件。只有管理員帳戶可以更新後續問題清單出現的 EventBridge 通知頻率。成員帳戶無法更新自己帳戶的此頻率。例如，如果委派的 GuardDuty 管理員帳戶將頻率更新為一小時，則所有成員帳戶也會有一個小時的通知頻率，通知後續的問題清單出現次數會傳送到 EventBridge。如需詳細資訊，請參閱[Amazon 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 Simple Queue Service (Amazon SQS)、HTTP/S 和電子郵件地址。

**注意**  
您可以在建立規則期間或之後，將 Amazon SNS 主題新增至您偏好的 EventBridge 事件規則。

 **建立 Amazon SNS 主題**  
若要開始，您必須先在 Amazon SNS 中設定主題並新增端點。若要建立主題，請執行《*Amazon Simple Notification Service 開發人員指南*》中的[步驟 1：建立主題](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 開發人員指南》中的步驟 2：建立 Amazon SNS 主題的訂閱](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。主題 ARN 看起來類似以下內容：

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

1. 關於**通訊協定**，請選擇**電子郵件**。

1. 針對**端點**，輸入您要接收來自 Amazon SNS 通知的電子郵件地址。

   建立訂閱之後，您需要透過電子郵件用戶端進行確認。

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

**在聊天應用程式用戶端 - Slack 中設定 Amazon Q Developer**

在您 之後[Create an Amazon SNS topic](#guardduty-set-up-sns-topic-eventbridge)，下一個步驟是設定 Slack 的用戶端。

在*聊天應用程式管理員指南中的 Amazon Q Developer 中*，執行[教學課程：開始使用 Slack](https://docs.aws.amazon.com/chatbot/latest/adminguide/slack-setup.html) 下的步驟。

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

**在聊天應用程式用戶端 - Chime 中設定 Amazon Q Developer**

在您 之後[Create an Amazon SNS topic](#guardduty-set-up-sns-topic-eventbridge)，下一個步驟是設定 Amazon Q Developer for Chime。

在*聊天應用程式管理員指南中的* [Amazon Q 開發人員中，執行教學課程：開始使用 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 Events 是相同的基礎服務和 API。不過，EventBridge 包含其他功能，可協助您從軟體即服務 (SaaS) 應用程式和您自己的應用程式接收事件。由於基礎服務和 API 相同，GuardDuty 調查結果的事件結構描述也相同。

**GuardDuty 中封存和非封存的問題清單如何使用 EventBridge**

對於您手動封存的問題清單，這些問題清單的初始和所有後續出現 （在封存完成後產生） 會根據特定通知頻率傳送至 EventBridge。如需詳細資訊，請參閱[了解 GuardDuty 中的 EventBridge 通知頻率](#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 用來判斷是否將事件傳送至目標的資料。GuardDuty 的 EventBridge 事件具有下列格式：

```
{
         "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 詳細資訊，而不是傳回整個*調查結果*回應語法，該語法支援陣列中的多個調查結果。

如需 中包含的所有參數的完整清單`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 規則。此規則會偵測使用 GuardDuty 調查結果的事件結構描述和模式的 EventBridge 事件，並將這些事件傳送至 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 管理主控台 ，並在 https：//[https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/) 開啟 Amazon EventBridge 主控台。

1. 在導覽窗格中的**匯流排**下，選擇**規則**。

1. 在 **Rules** (規則) 區段中，選擇 **Create Rule** (建立規則)。

1. 在**定義規則詳細資訊**頁面上，執行下列動作：

   1. 對於 **Name** (名稱)，請輸入規則的名稱。

   1. （選用） 針對**描述**，輸入規則的簡短描述。

   1. 針對**事件匯流排**，請確定已選取**預設值**，且**已開啟所選事件匯流排上的啟用規則**。

   1. 針對**規則類型**，選擇**具有事件模式的規則**。

   1. 完成後，請選擇**下一步**。

1. 在**建置事件模式**頁面上，執行下列動作：

   1. 在**事件來源**欄位中，選擇 **AWS 事件或 EventBridge 合作夥伴事件**。

   1. （選用） 對於**範例事件**，請檢閱 GuardDuty 的調查結果事件範例，以了解事件可能包含的內容。若要這樣做，請選擇**AWS 事件**。然後，針對**範例事件**，選擇 **GuardDuty 調查結果**。

   1. 

**選項 1 - 使用模式表單，EventBridge 提供的範本**

      在**事件模式**區段中，您可以執行下列動作：

      1. 對於**建立方法**，選取**使用模式表單**。

      1. 在 **Event source (事件來源)**，選擇 **AWS 服務**。

      1. 針對 **AWS 服務**，選擇 **GuardDuty**。

      1. 針對**事件類型**，選擇 **GuardDuty 調查結果**。

      完成後，請選擇**下一步**。

   1. 

**選項 2 - 在 JSON 中使用自訂事件模式**

      在**事件模式**區段中，您可以執行下列動作：

      1. 對於**建立方法**，選取**自訂模式 (JSON 編輯器）**。

      1. 對於**事件模式**，請貼上下列自訂 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
             ]
           }
         }
         ```

      完成後，請選擇**下一步**。

1. 

**選項 A - 選取 AWS 服務 AWS Lambda 做為目標**

   在**選取目標 (Select target) **頁面上，執行下列動作：

   1. 對於**目標類型**，請選取 **AWS 服務**。

   1. 對於 **Select a target** (選取目標)，選擇 **Lambda function** (Lambda 函數)。然後，針對 **函數**，選擇您要傳送調查結果事件的 Lambda 函數。

   1. 針對**設定版本/別名**，輸入目標 Lambda 函數的版本或別名設定。

   1. （選用） 對於**其他設定**，輸入自訂設定以指定要傳送至 Lambda 函數的事件資料。您也可以指定如何處理未成功交付至函數的事件。

   1. 完成後，請選擇**下一步**。

1. 

**選項 B - 選取 SNS 主題做為目標**

   在**選取目標 (Select target) **頁面上，執行下列動作：

   1. 對於**目標類型**，請選取 **AWS 服務**。

   1. 對於 **Select a target** (選取目標)，選擇 **SNS topic** (SNS 主題)。然後，針對**目標位置**，根據您的目標位置選取適當的選項。針對**主題**，選擇您建立的 SNS 主題名稱。

   1. 展開 **Additional settings** (其他設定)。針對**設定目標輸入**，選擇**輸入轉換器**。

   1. 選擇**設定輸入轉換器**。

   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 命令來建立 GuardDuty 的 EventBridge 規則和目標。具體而言，程序會說明如何建立規則，讓 EventBridge 將 GuardDuty 產生的所有調查結果的事件傳送至 AWS Lambda 函數，做為規則的目標。

**注意**  
在此範例中，我們使用 Lambda 函數作為觸發 EventBridge 之規則的目標。您也可以將其他 AWS 資源設定為目標以觸發 EventBridge。GuardDuty 和 EventBridge 支援下列目標類型：Amazon EC2 執行個體、Amazon Kinesis 串流、Amazon ECS 任務、 AWS Step Functions 狀態機器、 `run`命令和內建目標。如需詳細資訊，請參閱《*Amazon EventBridge API 參考*》中的 [PutTargets](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutTargets.html)。

**建立規則和目標**

1. 若要建立讓 EventBridge 為 GuardDuty 產生的所有調查結果傳送事件的規則，請執行下列 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]}}"
   ```

   要達成此目的，您可以使用可在 GuardDuty 調查結果之 JSON 中取得的任何屬性值。

1. 若要連接 Lambda 函數作為您在步驟 1 中建立之規則的目標，請執行下列 CloudWatch CLI 命令。

   ```
   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`中的 取代為 GuardDuty 事件的實際 Lambda 函數。

1. 若要新增調用目標所需的許可，請執行以下 Lambda CLI 命令。

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

   請務必將上述命令`your_function`中的 取代為 GuardDuty 事件的實際 Lambda 函數。

------

## GuardDuty 多帳戶環境的 EventBridge 規則
<a name="guardduty_findings_eventbridge_multiaccount"></a>

使用委派的 GuardDuty 管理員帳戶時，您可以檢視成員帳戶中產生的事件，並使用其他應用程式和服務採取行動。管理員帳戶中的 EventBridge 規則將根據成員帳戶中的適用調查結果觸發。如果您在管理員帳戶中透過 EventBridge 設定調查結果通知，您將收到來自您帳戶和成員帳戶的調查結果通知。例如，您可以使用 EventBridge 將特定類型的問題清單傳送至 Lambda 函數，該函數會處理資料並將其傳送至您的安全事件和事件管理 (SIEM) 系統。

您可以使用調查結果 JSON 詳細資訊的 `accountId` 欄位來識別 GuardDuty 調查結果源自的成員帳戶。若要為特定成員帳戶建立自訂事件規則，請建立新的規則，並在**事件模式中**使用以下範本。將 *123456789012* 取代為您要觸發事件`accountId`之成員帳戶的 。

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

**注意**  
此範例會建立符合指定帳戶 ID 中所有調查結果的規則。您可以依照 JSON 語法，以逗號分隔多個帳戶 IDs。