如果特定 AWS 服務事件類型觸發,如何為 GuardDuty 設定 EventBridge 規則以傳送自訂 SNS 通知?

上次更新日期:2022 年 1 月 10 日

我建立了 Amazon EventBridge 規則來觸發 Amazon GuardDuty 的服務事件類型,但回應卻是以 JSON 格式來呈現。我要如何收到具有自訂通知的電子郵件回應?

簡短描述

使用具有 EventBridge 規則的自訂事件模式來比對特定的問題清單類型。然後,將回應路由傳送至 Amazon Simple Notification Service (Amazon SNS) 主題。

解決方案

本範例使用 Amazon GuardDuty 事件類型 UnauthorizedAccess:EC2/MaliciousIPCaller.Custom

注意:您可以取代特定 AWS 服務的服務名稱和事件類型。

1.    如果您尚未建立 Amazon SNS 主題,請依照 Amazon SNS 入門的指示來操作。

注意:Amazon SNS 主題必須與您的 Amazon GuardDuty 服務位於相同區域。

2.    開啟 EventBridge 主控台

3.    選取 Create rule (建立規則)。

4.    輸入規則的 Name (名稱)。您也可以選擇輸入 Description (描述)。

5.    在 Define pattern (定義模式) 中,選取 Event pattern (事件模式)。

6.    選取 Pre-defined pattern by service (依服務預先定義的模式)。

7.    對於 Service provider (服務供應商),選擇 AWS

8.    對於 Service name (服務名稱),選擇 GuardDuty

9.    對於 Event type (事件類型),請選擇 GuardDuty Finding (GuardDuty 問題清單)。

10.    在 Event pattern (事件模式) 預覽部分中,選取 Edit (編輯)。

11.    複製下列程式碼,將程式碼貼上 Event pattern (事件模式) 預覽部分中,然後選擇 Save (儲存)。

{
  "source": [
    "aws.guardduty"
  ],
  "detail": {
    "type": [
      "UnauthorizedAccess:EC2/MaliciousIPCaller.Custom"
     ]
  }
}

12.    在 Select event bus (選取事件匯流排) 中,選取 AWS default event bus (AWS 預設事件匯流排)。

13.    在 Select targets (選取目標) 中,選擇 SNS topic (SNS 主題),然後選擇先前建立的 SNS 主題。

14.    展開 Configure input (設定輸入),然後選擇 Input Transformer (輸入轉換器)。

15.    複製下列程式碼。然後,將程式碼貼上 Input Path (輸入路徑) 中。

{
    "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"
}

16.    複製下列程式碼。然後,將程式碼貼上 Input Template (輸入範本) 中。

"You have a severity <severity> GuardDuty finding type <Finding_Type> for the EC2 instance <instanceId> in the region <region> as the <Finding_description> on the port <port>. The first attempt was on <eventFirstSeen> and the most recent attempt on <eventLastSeen> . The total occurrence is <count>. For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?region=<region>#/findings?search=id%3D<Finding_ID>"

17.    捲動至頁面底部,然後選取 Create (建立)。

18.    如果事件類型被觸發,您會收到 SNS 電子郵件通知,其中包含填入了來自 step 16 (步驟 16) 的內容之自訂欄位,類似下列內容

"You have a severity 5 GuardDuty finding type UnauthorizedAccess:EC2/MaliciousIPCaller.Custom for the EC2 instance EXAMPLEID in the region EXAMPLEREGION as the EC2 instance EXAMPLE is communicating with a disallowed IP address EXAMPLEREMOTEIP on the EXAMPLELIST on the port EXAMPLEPORT. The first attempt was on EXAMPLEDATE1 and the most recent attempt on EXAMPLEDATE2. The total occurrence is COUNTEXAMPLE. For more details open the GuardDuty console at https://console.aws.amazon.com/guardduty/home?EXAMPLEREGION"