

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Ingérez les alarmes des APM sans intégration directe avec EventBridge
<a name="idr-gs-ingest-apm-webhooks"></a>

AWS Incident Detection and Response prend en charge l'utilisation de webhooks pour l'ingestion d'alarmes provenant d'APM tiers qui ne sont pas directement intégrés à Amazon. EventBridge

Vous pouvez déployer un CloudFormation modèle ou configurer manuellement l'intégration. Avant de configurer l'intégration, vérifiez que le rôle AWS lié au service (SLR) `AWSServiceRoleForHealth_EventProcessor` est [créé](https://docs.aws.amazon.com/IDR/latest/userguide/idr-gs-access-prov.html) dans vos comptes.

## Option 1 : utilisation CloudFormation Modèle
<a name="idr-gs-apm-webhook-cfn"></a>

Un CloudFormation modèle est disponible pour simplifier le processus de création de l'infrastructure d'intégration requise pour intégrer les alarmes à AWS Incident Detection and Response depuis votre APM qui n'est pas directement intégré à Amazon EventBridge.

**Considérations à prendre en compte avant de déployer ce CloudFormation modèle**
+ Cette solution utilise un autorisateur Lambda API Gateway pour comparer un jeton secret transmis dans la charge utile de votre APM à un jeton entrant. AWS Secrets Manager Si le jeton ne correspond pas, une politique avec un refus explicite sera renvoyée. Pour plus d'informations, consultez la section [Autorisateurs Lambda](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html).
+ Dans le cadre du modèle de responsabilité AWS partagée, il est de votre responsabilité de vous assurer que vous utilisez une approche d'authentification qui répond aux exigences de sécurité de votre organisation. Nous vous recommandons d'utiliser AWS Secrets Manager un service similaire, au lieu de stocker des informations sensibles telles que des clés d'API ou des jetons d'autorisation sous forme de variables codées en dur. Pour plus d'informations, veuillez consulter [Création et gestion des secrets avec AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html).
+ Pour un exemple supplémentaire d'implémentation du code d'authentification des Hash-Based messages (HMAC), consultez [receive-webhooks sur](https://github.com/aws-samples/webhooks/tree/main/receive-webhooks) la page Github d'aws-samples. Pour plus d'informations sur la mise en œuvre de l'autorisation par [jeton, consultez l'exemple de fonction Lambda d'autorisation](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html#api-gateway-lambda-authorizer-token-lambda-function-create) TOKEN dans la documentation d'API Gateway.
+ La solution utilise **RateLimit**BurstLimit****, et **Quota** dans API Gateway pour contrôler les volumes de demandes. Ces outils limitent le nombre de demandes pouvant être traitées dans un délai défini. Cela permet d'éviter la surcharge du système et de maintenir la stabilité du service. Pour plus d'informations sur le throttling, consultez le guide du [développeur d'API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html).
+ Envisagez d'utiliser le AWS Web Application Firewall (WAF) pour protéger l'API Gateway des adresses IP erronées connues. Cela réduit le risque que des attaquants inondent l'API de fausses requêtes susceptibles de bloquer les événements réels du journal.
+ AWS Secrets Manager les valeurs des jetons doivent être stockées dans votre outil de surveillance des performances des applications (APM) sous forme d'en-tête HTTP. Veillez à effectuer une rotation régulière du jeton en tant que bonne pratique en matière de sécurité.
+ Des coûts supplémentaires seront encourus pour les ressources déployées via ce CloudFormation modèle (par exemple : Lambda et EventBridge). Pour plus d'informations sur la tarification de ces services, consultez la section [AWS Tarification](https://aws.amazon.com/pricing/).
+ Après avoir testé l'intégration, supprimez les instructions logger.info () de la (fonction `TransformLambdaFunction` Lambda) pour empêcher les charges utiles d'apparaître dans Amazon Logs. CloudWatch 
+ Déployez ce CloudFormation modèle dans tous les AWS comptes et régions dont AWS Incident Detection and Response doit ingérer des alarmes.

**Préparation du CloudFormation modèle :**

**Remarque :** Les étapes d'intégration utilisent Dynatrace comme exemple, mais ce modèle peut être utilisé pour n'importe quel APM capable d'envoyer des charges utiles à une API Gateway.

1. Téléchargez et ouvrez le [CloudFormation modèle](https://dcl74d3hc5lj1.cloudfront.net/apms/ThirdPartyApmWebhookIntegration.json).

1. `APIGWUsagePlan`Localisez-le dans le modèle. Passez en revue les valeurs configurées pour `RateLimit``BurstLimit`, et `Quota Limit` qui sont définies sur 20, 50 et 2000 par défaut. Ajustez les valeurs en fonction de vos besoins.

1. `AuthorizerLambdaFunction`Localisez-le dans le modèle. Cette fonction Lambda sert d'exemple de mécanisme d'authentification. Il extrait une valeur de jeton d'un en-tête appelé`authorizationToken`, qui est transmis par votre APM. Vous pouvez modifier ce code pour l'aligner sur les politiques de sécurité et les exigences de votre organisation en matière d'APM.

1. `TransformLambdaFunction`Repérez-le dans le modèle. Remplacez le chemin du dictionnaire`raw_json["detail"]["ProblemTitle"]`, par le chemin du nom de votre alarme envoyé dans la charge utile JSON depuis votre APM. Laissez les choses telles quelles pour Dynatrace.

**Déploiement du CloudFormation modèle :**

1. Ouvrez la CloudFormation console dans votre compte cible et Région AWS.

1. Choisissez **Créer une pile, avec de nouvelles ressources (standard)**.
   + Sélectionnez **Choisir un modèle existant**, **Charger un fichier modèle**, **Choisir un fichier**, puis téléchargez le CloudFormation modèle que vous avez enregistré localement.

1. Spécifiez les détails de la pile :
   + Entrez un nom de pile (*par exemple, `DynatraceIntegrationForIDR`*.)
   + APMNameParameter (*exemple, `Dynatrace`*.)
   + Choisissez **Suivant**.

1. Configurez les options de pile :
   + Faites défiler la page vers le bas et cochez la case pour autoriser la création CloudFormation de ressources IAM avec des noms personnalisés.

1. Vérifiez et créez :
   + Vérifiez que les valeurs des paramètres sont correctement configurées et choisissez Soumettre.

1. La CloudFormation pile déploie les ressources nécessaires pour intégrer vos événements APM à AWS Incident Detection and Response. Attendez que le statut de la CloudFormation pile soit **CREATE\_COMPLETE**.

1. La CloudFormation pile crée les ressources ci-dessous en supposant que la valeur d'exemple `Dynatrace` a été saisie dans les paramètres et exécutée dans la US-EAST-1 région.
   + Nom du secret : DynatraceMySecretTokenName (une valeur secrète aléatoire sera créée pour la clé secrète APMSecureToken)
   + Ressources API Gateway :
     + Nom de l'API : Dynatrace-AWSIncidentDetectionResponse-APIGW
     + Nom de la scène : Dynatrace-Stage-Prod
     + Autorisateurs : Dynatrace-APIGW-Authorizer
     + Plan d'utilisation : APIGW\_ Throttling\_Plan
   + Fonctions Lambda :
     + Fonction d'autorisation : Dynatrace-AWSIncidentDetectionResponse-Lambda-Authorizer
     + Fonction de transformation : Dynatrace-AWSIncidentDetectionResponse-Lambda-Transform
   +  EventBus Nom personnalisé : Dynatrace-AWSIncidentDetectionResponse-EventBus
   + Rôle IAM :
     + TransformLambdaExecutionRole: IDR-TransformLambdaExecutionRole-us-east-1
     + AuthorizerLambdaExecutionRole: IDR-AuthorizerLambdaExecutionRole-us-east-1

1. Enregistrez l'URL du webhook et la valeur du jeton :
   + Ouvrez la console API Gateway et choisissez le nom de l'API créé dans le cadre de la CloudFormation pile.
   + Choisissez Stages dans le menu de navigation de gauche, développez le nom de l'étape à l'aide du signe \+, puis choisissez POST. Enregistrez l'**URL Invoke**. Configurez cette URL dans votre APM comme destination pour envoyer des webhooks en cas d'événements d'alarme.
   + Ouvrez la AWS Secrets Manager console et choisissez le nom secret créé dans le cadre de la CloudFormation pile. (*Exemple : DynatraceMySecretTokenName.* )
     + Dans l'onglet Valeur secrète, choisissez **Extraire la valeur secrète**. Vous verrez la clé secrète sous la forme APMSecureToken. Enregistrez la valeur secrète. Ne partagez cette valeur secrète avec personne.

**Tests d'intégration**

Après avoir déployé la pile, testez l'intégration en envoyant une charge utile de test depuis votre APM :

1. Accédez à la console Lambda et sélectionnez `APMNameParameter-AWSIncidentDetectionResponse-Lambda-Transform` la fonction. Choisissez l’onglet **Surveiller**.

1. Recherchez un appel réussi dans les graphiques métriques.

1. Choisissez **View Amazon CloudWatch Logs pour vérifier dans les flux de journaux** la présence de votre charge utile de test ou d'éventuelles erreurs.

**Partage de l'ARN de votre bus d'événements avec AWS Incident Detection and Response**

1. Ouvrez la EventBridge console Amazon. Sélectionnez Event Bus.

1. Copiez l'ARN du **bus d'événements personnalisé** créé dans le cadre de la CloudFormation pile, *exemple : `arn:aws:events:us-east-1:123456789123:event-bus/Dynatrace-AWSIncidentDetectionResponse-EventBus`*.
   + Ajoutez cet ARN au champ « EventBridge  Event Bus ARN » de la section « Third-Party  APM Alarms » de votre[Questionnaire sur l'ingestion d'alarmes - Aperçu](idr-gs-questionnaire.md#idr-gs-alarm-questionnaire).

1. Au cours du processus d'intégration, AWS Incident Detection and Response créera une EventBridge règle gérée sur ce bus d'événements personnalisé afin d'ingérer vos alarmes APM.

## Option 2 : intégration manuelle
<a name="idr-gs-apm-webhook-manual"></a>

![Schéma illustrant un exemple d'intégration à l'aide d'API Gateway.](http://docs.aws.amazon.com/fr_fr/IDR/latest/userguide/images/example-int-api-gateway.png)


Suivez les étapes ci-dessous pour configurer l'intégration avec AWS Incident Detection and Response.

1. Créez un Amazon API Gateway pour accepter la charge utile de votre APM.

1. Définissez une fonction Lambda pour l'autorisation à l'aide d'un jeton d'authentification.

1. Effectuez l'une des actions suivantes :
   + (Recommandé) Créez un bus d'événements EventBridge personnalisé nommé`$YourApmName-AWSIncidentDetectionResponse-EventBus`.
   + (Alternative) Utilisez le bus d' EventBridge événements par défaut au lieu d'un bus d'événements personnalisé.

1. Définissez une fonction Transform Lambda pour ajouter l'identifiant AWS Incident Detection and Response à votre charge utile. Vous pouvez également utiliser cette fonction pour filtrer les événements que vous souhaitez envoyer à AWS Incident Detection and Response.
   + L'API Gateway doit appeler la fonction Transform Lambda qui transformera la charge utile transmise par l'API Gateway.
   + La fonction Transform Lambda doit écrire les événements transformés dans le bus d'événements défini au point 3 ci-dessus.

1. Configurez votre APM pour envoyer des notifications à l'URL générée par l'API Gateway.