¿Cómo puedo configurar una regla de EventBridge para que GuardDuty envíe notificaciones de SNS personalizadas si se activan tipos específicos de eventos de servicios de AWS?

Última actualización: 10/01/2022

He creado una regla de Amazon EventBridge para activar los tipos de eventos de servicio para Amazon GuardDuty, pero las respuestas están en formato JSON. ¿Cómo puedo recibir una respuesta por email con una notificación personalizada?

Descripción corta

Use un patrón de eventos personalizado con la regla de EventBridge para que coincida con un tipo de búsqueda específico. A continuación, dirija la respuesta a un tema de Amazon Simple Notification Service (Amazon SNS).

Resolución

Este ejemplo utiliza un evento de Amazon GuardDuty de tipo UnauthorizedAccess:EC2/MaliciousIPCaller.Custom.

Nota: Puede reemplazar el nombre del servicio y el tipo de evento para su servicio de AWS específico.

1.    Si aún no ha creado un tema de Amazon SNS, siga las instrucciones de Introducción a Amazon SNS.

Nota: El tema de Amazon SNS debe estar en la misma región que su servicio Amazon GuardDuty.

2.    Abra la consola de EventBridge.

3.    Seleccione Create rule (Crear regla).

4.    Ingrese un nombre para su regla. Si lo desea, puede ingresar una descripción.

5.    En Define pattern (Definir patrón), seleccione Event pattern (Patrón de eventos).

6.    Seleccione Pre-defined pattern by service (Patrón predefinido por servicio).

7.    En Service provider (Proveedor de servicios), elija AWS.

8.    En Service name (Nombre del servicio), elija GuardDuty.

9.    En Event type (Tipo de evento), elija GuardDuty Finding.

10.    En la sección de vista previa de Event pattern (Patrón de eventos), seleccione Edit (Editar).

11.    Copie el siguiente código, péguelo en la sección de vista previa de Event pattern (Patrón de eventos) y, a continuación, elija Save (Guardar).

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

12.    En Select event bus (Seleccionar bus de eventos), seleccione el AWS default event bus (bus de eventos predeterminado de AWS).

13.    En Select targets (Seleccionar destinos), elija SNS topic (Tema de SNS) y, a continuación, elija el tema de SNS creado anteriormente.

14.    Expanda Configure input (Configurar entrada) y, a continuación, elija Input Transformer (Transformador de entrada).

15.    Copie el siguiente código. A continuación, péguelo en Input Path (Ruta de entrada).

{
    "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.    Copie el siguiente código. A continuación, péguelo en Input Template (Plantilla de entrada).

"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.    Desplácese hacia la parte inferior de la página y, a continuación, seleccione Create (Crear).

18.    Si se activa un tipo de evento, recibirá una notificación por email de SNS con los campos personalizados rellenados desde el paso 16 de manera similar a la siguiente:

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