View a markdown version of this page

Ingiera alarmas de los APM sin una integración directa con EventBridge - Guía del usuario de detección y respuesta a incidentes de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ingiera alarmas de los APM sin una integración directa con EventBridge

AWS Incident Detection and Response admite el uso de webhooks para la ingesta de alarmas de APM de terceros que no tienen una integración directa con Amazon. EventBridge

Puede implementar una CloudFormation plantilla o configurar la integración manualmente. Antes de configurar la integración, compruebe que el rol AWS vinculado al servicio (SLR) AWSServiceRoleForHealth_EventProcessor se haya creado en sus cuentas.

Opción 1: usar CloudFormation Plantilla

Hay disponible una CloudFormation plantilla para simplificar el proceso de creación de la infraestructura de integración necesaria para incorporar alarmas a AWS Incident Detection and Response desde su APM que no tiene una integración directa con Amazon EventBridge.

Consideraciones antes de implementar esta plantilla CloudFormation

  • Esta solución utiliza un autorizador Lambda de API Gateway para comparar un token secreto transferido en la carga útil desde su APM con un token ingresado. AWS Secrets Manager Si el token no coincide, se devolverá una política con una denegación explícita. Para obtener más información, consulte Autorizadores Lambda.

  • Según el modelo de responsabilidad AWS compartida, es su responsabilidad asegurarse de utilizar un enfoque de autenticación que cumpla con los requisitos de seguridad de su organización. Recomendamos utilizar AWS Secrets Manager un servicio similar, en lugar de almacenar información confidencial, como claves de API o tokens de autorización, como variables codificadas de forma rígida. Para obtener más información, consulte Cree y administre secretos con AWS Secrets Manager.

  • Para ver un ejemplo adicional de cómo implementar el código de autenticación de Hash-Based mensajes (HMAC), consulte receive-webhooks en la página de Github de aws-samples. Para obtener más información sobre la implementación de la autorización de token, consulte un ejemplo de la función Lambda del autorizador de TOKEN en la documentación de API Gateway.

  • La solución usa RateLimitBurstLimit, y una cuota en API Gateway para controlar los volúmenes de solicitudes. Estas herramientas limitan el número de solicitudes que se pueden procesar en un tiempo determinado. Esto ayuda a evitar la sobrecarga del sistema y mantiene estable el servicio. Para obtener más información sobre la regulación, consulta la Guía para desarrolladores de API Gateway.

  • Considere la posibilidad de utilizar el AWS Web Application Firewall (WAF) para proteger la API Gateway de las direcciones IP incorrectas conocidas. Esto reduce el riesgo de que los atacantes inunden la API con solicitudes falsas que podrían bloquear los eventos de registro reales.

  • AWS Secrets Manager los valores de los tokens deben almacenarse en la herramienta de monitoreo del rendimiento de las aplicaciones (APM) como un encabezado HTTP. Asegúrese de rotar el token de forma regular como práctica recomendada de seguridad.

  • Se incurrirá en costos adicionales por los recursos implementados a través de esta CloudFormation plantilla (por ejemplo, Lambda y EventBridge). Para obtener más información sobre los precios de estos servicios, consulte AWS Precios.

  • Tras probar la integración, elimine las sentencias logger.info () de la (función TransformLambdaFunction Lambda) para evitar que las cargas útiles aparezcan en Amazon Logs. CloudWatch

  • Implemente esta CloudFormation plantilla en todas las AWS cuentas y regiones desde las que AWS Incident Detection and Response necesite recibir alarmas.

Preparación de la CloudFormation plantilla:

Nota: Los pasos de integración utilizan Dynatrace como ejemplo; sin embargo, esta plantilla se puede utilizar para cualquier APM que pueda enviar cargas útiles a una API Gateway.

  1. Descarga y abre la plantilla.CloudFormation

  2. APIGWUsagePlanUbícala en la plantilla. Revise los valores configurados para RateLimitBurstLimit, y Quota Limit que están establecidos en 20, 50 y 2000 de forma predeterminada. Ajuste los valores para que se ajusten a sus requisitos.

  3. Ubique AuthorizerLambdaFunction en la plantilla. Esta función Lambda sirve como ejemplo de un mecanismo de autenticación. Extrae un valor simbólico de un encabezado llamadoauthorizationToken, que se transfiere desde su APM. Puede modificar este código para adaptarlo a las políticas de seguridad y los requisitos de APM de su organización.

  4. Búscalo TransformLambdaFunction en la plantilla. Sustituya la ruta del diccionario por la ruta del nombre de la alarma que se envía en la carga JSON desde su APM. raw_json["detail"]["ProblemTitle"] Deja esto como está para Dynatrace.

Implementación de la plantilla CloudFormation :

  1. Abre la CloudFormation consola en tu cuenta de destino y Región de AWS.

  2. Elija Crear pila, Con nuevos recursos (estándar).

    • Seleccione Elegir una plantilla existente, Cargar un archivo de plantilla, Elegir archivo y, a continuación, cargue la CloudFormation plantilla que guardó localmente.

  3. Especifica los detalles de la pila:

    • Introduzca un nombre de pila (por ejemplo, DynatraceIntegrationForIDR.)

    • APMNameParameter (ejemplo, Dynatrace.)

    • Elija Siguiente.

  4. Configure las opciones de pila:

    • Desplázate hasta el final de la página y marca la casilla CloudFormation para permitir la creación de recursos de IAM con nombres personalizados.

  5. Revise y cree:

    • Compruebe que los valores de los parámetros estén configurados correctamente y seleccione Enviar.

  6. El CloudFormation conjunto implementa los recursos necesarios para integrar sus eventos de APM en AWS Incident Detection and Response. Espere a que el estado de la CloudFormation pila sea CREATE_COMPLETE.

  7. La CloudFormation pila crea los siguientes recursos suponiendo que el valor de ejemplo Dynatrace se haya introducido en los parámetros y se haya ejecutado en la región. US-EAST-1

    • Nombre secreto: DynatraceMySecretTokenName (se creará un valor secreto aleatorio junto a la clave secreta APMSecureToken)

    • Recursos de API Gateway:

      • Nombre de API: Dynatrace-AWSIncidentDetectionResponse-APIGW

      • Nombre artístico: Dynatrace-Stage-Prod

      • Autorizadores: Dynatrace-APIGW-Authorizer

      • Plan de uso: APIGW_ Throttling_Plan

    • Funciones Lambda:

      • Función de autorización: Dynatrace-AWSIncidentDetectionResponse-Lambda-Authorizer

      • Función de transformación: Dynatrace-AWSIncidentDetectionResponse-Lambda-Transform

    • EventBus Nombre personalizado: Dynatrace-AWSIncidentDetectionResponse-EventBus

    • Función de IAM:

      • TransformLambdaExecutionRole: IDR-TransformLambdaExecutionRole-us-east-1

      • AuthorizerLambdaExecutionRole: IDR-AuthorizerLambdaExecutionRole-us-east-1

  8. Registre la URL del Webhook y el valor del token:

    • Abre la consola de API Gateway y elige el nombre de la API que creaste como parte de la CloudFormation pila.

    • Selecciona Stages en el menú de navegación de la izquierda, expande el nombre de la etapa con el signo + y, a continuación, selecciona POST. Registra la URL de invocación. Configura esta URL en tu APM como destino para enviar webhooks en caso de eventos de alarma.

    • Abre la AWS Secrets Manager consola y elige el nombre secreto creado como parte de la CloudFormation pila. (Ejemplo: DynatraceMySecretTokenName. )

      • En la pestaña Valor secreto, selecciona Recuperar valor secreto. Verás la clave secreta como APMSecureToken. Registra el valor secreto. No comparta este valor secreto con nadie.

Pruebas de integración

Tras implementar la pila, pruebe la integración enviando una carga útil de prueba desde su APM:

  1. Navegue hasta la Consola Lambda y seleccione APMNameParameter-AWSIncidentDetectionResponse-Lambda-Transform la función. Elija la pestaña Supervisar.

  2. Busque una invocación correcta en los gráficos métricos.

  3. Selecciona Ver Amazon CloudWatch Logs para comprobar si las transmisiones de registros contienen tu carga útil de prueba o si hay algún error.

Compartir el ARN de su bus de eventos con AWS Incident Detection and Response

  1. Abre la Amazon EventBridge Console. Selecciona los autobuses de eventos.

  2. Copie el ARN del bus de eventos personalizado creado como parte de la CloudFormation pila, por ejemplo:. arn:aws:events:us-east-1:123456789123:event-bus/Dynatrace-AWSIncidentDetectionResponse-EventBus

  3. Durante el proceso de incorporación, AWS Incident Detection and Response creará una EventBridge regla administrada en este bus de eventos personalizado para ingerir las alarmas de APM.

Opción 2: integración manual

Diagrama que muestra un ejemplo de integración mediante API Gateway.

Siga los siguientes pasos para configurar la integración con AWS Incident Detection and Response.

  1. Cree una Amazon API Gateway para aceptar la carga útil de su APM.

  2. Defina una función Lambda para la autorización mediante un token de autenticación.

  3. Lleve a cabo una de las siguientes operaciones:

    • (Recomendado) Cree un bus de eventos EventBridge personalizado con el nombre$YourApmName-AWSIncidentDetectionResponse-EventBus.

    • (Alternativa) Utilice el bus de EventBridge eventos predeterminado en lugar de un bus de eventos personalizado.

  4. Defina una función de transformación Lambda para añadir el identificador de detección y respuesta a incidentes de AWS a su carga útil. También puede usar esta función para filtrar los eventos que desee enviar a AWS Incident Detection and Response.

    • La API Gateway debe invocar la función Transform Lambda, que transformará la carga útil pasada por la API Gateway.

    • La función Transformar Lambda debe escribir los eventos transformados en el bus de eventos definido en el punto 3 anterior.

  5. Configura tu APM para enviar notificaciones a la URL generada desde la API Gateway.