View a markdown version of this page

Incorpore las 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.

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

AWS Incident Detection and Response admite el uso de webhooks para la recepción de alarmas desde APM de terceros que no estén integradas directamente 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 esté creado en sus cuentas.

Opción 1: Utilizar CloudFormation Plantilla

Hay una CloudFormation plantilla disponible para simplificar el proceso de creación de la infraestructura de integración necesaria para transferir las alarmas a AWS Incident Detection and Response desde su APM que no esté integrada directamente con Amazon EventBridge.

Consideraciones antes de implementar esta plantilla CloudFormation

  • En esta solución, se utiliza un dispositivo de autorización Lambda de API Gateway para comparar un token secreto enviado a la carga desde tu APM con un token introducido. 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 de 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. Te recomendamos que utilices AWS Secrets Manager un servicio similar en lugar de almacenar información confidencial, como las claves de API o los 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 Github de aws-samples. Para obtener más información sobre la implementación de la autorización de tokens, consulte el ejemplo de la función LAMBDA del autorizador TOKEN en la documentación de API Gateway.

  • La solución utiliza RateLimit y Quota en API Gateway para controlar los volúmenes de solicitudes. BurstLimit 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 limitación, consulte la Guía para desarrolladores de API Gateway.

  • Considere la posibilidad de utilizar un firewall de aplicaciones AWS web (WAF) para proteger la puerta de enlace de API de direcciones IP erróneas conocidas. Esto reduce el riesgo de que los atacantes inunden la API con solicitudes falsas que podrían bloquear eventos de registro reales.

  • AWS Secrets Manager Los valores de los tokens deben almacenarse en la herramienta de supervisión del rendimiento de las aplicaciones (APM) como un encabezado HTTP. Como práctica recomendada de seguridad, asegúrate de rotar el token de forma regular.

  • Los recursos implementados mediante esta CloudFormation plantilla (p. ej., Lambda y EventBridge) conllevarán costes adicionales. Para obtener más información sobre los precios de estos servicios, consulte AWS Precios.

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

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

Preparación de la CloudFormation plantilla:

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

  1. Descarga y abre la plantilla. CloudFormation

  2. APIGWUsagePlanUbíquela 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 de Lambda sirve como ejemplo de mecanismo de autenticación. Extrae un valor simbólico de un encabezado llamadoauthorizationToken, que se transfiere desde tu APM. Puedes modificar este código para adaptarlo a las políticas de seguridad y los requisitos de APM de tu organización.

  4. Búscalo TransformLambdaFunction en la plantilla. Sustituya la ruta del diccionario por la ruta al 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.

Despliegue de la plantilla CloudFormation :

  1. Abra la CloudFormation consola en su cuenta de destino y Región de AWS.

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

    • Selecciona Elegir una plantilla existente, Cargar un archivo de plantilla, Elegir archivo y, a continuación, subir la CloudFormation plantilla que has guardado localmente.

  3. Especifica los detalles de la pila:

    • Introduzca el nombre de una pila (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. La CloudFormation pila implementa los recursos necesarios para integrar los eventos de APM en la detección y respuesta a incidentes de AWS. Espere hasta que el estado de la CloudFormation pila sea CREATE_COMPLETE.

  7. La CloudFormation pila crea los siguientes recursos asumiendo que el valor del ejemplo Dynatrace se ingresó en los parámetros y se ejecutó en la región. US-EAST-1

    • Nombre secreto: DynatraceMySecretTokenName (se creará un valor secreto aleatorio contra 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 de 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 has creado como parte de la CloudFormation pila.

    • Elige Stages en la barra de navegación de la izquierda, expande el nombre de la etapa con el signo + y, a continuación, elige POST. Registra la URL de invocación. Configura esta URL en tu APM como destino para enviar webhooks en caso 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, elige 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, prueba la integración enviando una carga útil de prueba desde tu APM:

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

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

  3. Elige Ver CloudWatch registros de Amazon para comprobar si hay algún error en las secuencias de registro de la carga útil de prueba.

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

  1. Abra la EventBridge consola de Amazon. Selecciona Event Buses.

  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 incorporar las alarmas de APM.

Opción 2: integración manual

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

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

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

  2. Defina una función de 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.

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

  4. Defina una función de transformación de 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 desea enviar a AWS Incident Detection and Response.

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

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

  5. Configure su APM para enviar notificaciones a la URL generada desde la API Gateway.