He creado una regla de Amazon EventBridge para responder a los tipos de resultados de servicios para Amazon GuardDuty, pero las respuestas están en formato JSON. Quiero recibir una respuesta por correo electrónico con una notificación personalizada de Amazon Simple Notification Service (Amazon SNS).
Solución
Requisito previo: Crea un tema de Amazon SNS. El tema de Amazon SNS debe estar en la misma región de AWS que tu servicio de GuardDuty.
Para configurar las reglas de EventBridge para que GuardDuty envíe notificaciones de SNS personalizadas, sigue estos pasos:
-
Abre la consola de EventBridge.
-
En la sección Buses, selecciona Reglas.
-
Selecciona Crear regla y, a continuación, sigue estos pasos para configurar la regla:
Introduce un nombre y una descripción.
En Bus de eventos, elige predeterminado.
En Tipo de regla, selecciona Regla con un patrón de eventos.
-
Selecciona Siguiente.
-
En Patrón de eventos, sigue estos pasos:
En Origen del evento, elige Servicios de AWS.
En Servicio de AWS, elige GuardDuty.
En Tipo de evento, elige Resultado de GuardDuty.
-
En la sección de vista previa del patrón del evento, elige Editar patrón.
-
En el cuadro de texto JSON, introduce el siguiente código:
{
"source": ["aws.guardduty"],
"detail": {
"type": ["Backdoor:EC2/C&CActivity.B!DNS"]
}
}
Nota: Sustituye Backdoor:EC2/C&CActivity.B!DNS por tu tipo de resultado. Para probar el tipo de resultado Backdoor:EC2/C&CActivity.B!DNS, realiza una solicitud de DNS desde una instancia de Amazon Elastic Compute Cloud (Amazon EC2) al dominio de prueba guarddutyc2activityb.com. Puedes ejecutar el comando dig para Linux o el comando nslookup para Windows. El resultado se genera en pocos minutos.
-
Selecciona Siguiente.
-
En Tipos de objetivo, selecciona Servicio de AWS.
-
En Seleccionar un objetivo, selecciona Tema de SNS.
-
En Tema, selecciona tu tema.
-
(Opcional) Configura un transformador de entrada.
En la sección Transformador de entrada de destino, en Ruta de entrada, introduce la siguiente ruta JSON en el cuadro de texto:
{
"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"
}
En Plantilla, introduce la siguiente plantilla de cadena en el cuadro de texto:
"You have a new GuardDuty alert. View finding in console - https://console.aws.amazon.com/guardduty/home?REGION=#/findings?search=id%3DFINDING_ID "
Nota: En la plantilla, mantén el espacio final después de FINDING_ID para que las comillas de cierre no rompan la URL en la notificación de SNS. La ruta de entrada usa atributos específicos del resultado de GuardDuty. Para obtener más información sobre los filtros disponibles, consulta Filtros de propiedades en GuardDuty.
Selecciona Siguiente.
(Opcional) Agrega etiquetas a la regla y, a continuación, elige Siguiente.
Revisa los detalles de la regla y, a continuación, elige Crear regla.
Cuando GuardDuty genera el tipo de resultado, EventBridge envía la notificación de SNS al punto de enlace especificado en un plazo de 5 minutos. Para configurar las notificaciones de SNS para todos los tipos de resultados de GuardDuty, consulta Procesamiento de los resultados de GuardDuty con Amazon EventBridge.
Información relacionada
Creación de reglas que reaccionen a los eventos en Amazon EventBridge
Tutorial: uso de transformadores de entrada para transformar eventos en EventBridge
¿Cómo puedo solucionar problemas con las notificaciones personalizadas de GuardDuty de Amazon SNS que no se han entregado?