Comment diffuser des données depuis CloudWatch Logs vers un cluster Amazon Elasticsearch Service basé sur VPC dans un autre compte ?

Dernière mise à jour : 16/06/2020

J’essaie de diffuser des données depuis Amazon CloudWatch Logs vers un cluster Amazon Elasticsearch Service (Amazon ES) qui utilise un virtual private cloud (VPC) dans un autre compte. Toutefois, je reçois le message d’erreur « Enter a valid Amazon Elasticsearch Service Endpoint ». Comment résoudre cette erreur ?

Brève description

Pour diffuser des données à partir de CloudWatch Logs vers un cluster Elasticsearch d’un autre compte, effectuez les opérations suivantes :

1.    Configurez CloudWatch Logs dans le compte A.

2.    Configurez AWS Lambda dans le compte A.

3.    Configurez l’appairage de VPC entre les comptes.

Solution

Configuration de CloudWatch Logs dans le compte A

1.    Ouvrez la console CloudWatch Logs dans le compte A et sélectionnez votre groupe de journaux.

2.    Choisissez l’action Stream to Amazon Elasticsearch Service.

3.    Pour l’option Select Account , sélectionnez This account.

4.    Dans la liste déroulante du cluster Elasticsearch, choisissez un cluster existant pour le compte A.

5.    Choisissez le rôle d’exécution IAM Lambda qui dispose des autorisations nécessaires pour effectuer des appels au cluster Elasticsearch sélectionné.

6.    Attachez la stratégie AWSLambdaVPCAccessExecutionRole à votre rôle et choisissez Next.

7.    Sélectionnez votre format de journal et le modèle de filtre d’abonnement.

8.    Sélectionnez Next.

9.    Entrez votre nom de fonction Lambda et choisissez Start Streaming. Pour plus d’informations sur la diffusion, consultez Diffusion de données CloudWatch Logs vers Amazon Elasticsearch Service.

Configuration de Lambda dans le compte A

1.    Dans le compte A, ouvrez la console Lambda.

2.    Créez votre fonction Lambda.

3.    Dans le code de la fonction, mettez à jour la variable de point de terminaison du cluster Elasticsearch dans le compte B. Cette mise à jour permet à la fonction Lambda d’envoyer des données au domaine Amazon ES dans le compte B.

Remarque : vous pouvez coller le nom DNS public du compte B. Veillez à supprimer « https:// » du point de terminaison de l’URL.

4.    Choisissez Custom VPC.

5.    Choisissez Save. Cette sélection garantit que la fonction Lambda s’exécute à l’intérieur d’un VPC, en utilisant le routage VPC pour renvoyer des données au domaine Amazon ES. Pour plus d’informations sur les configurations Amazon Virtual Private Cloud (Amazon VPC), consultez Configuration d’une fonction Lambda pour accéder aux ressources d’un VPC.

Configuration de l’appairage de VPC entre les comptes

1.    Ouvrez la console Amazon VPC dans le compte A et le compte B.

Remarque : assurez-vous que votre VPC n’a pas de blocs d’adresses CIDR qui se chevauchent.

2.    Créez une session d’appairage de VPC entre les deux VPC personnalisés (Lambda et Amazon ES). Cette session d’appairage de VPC permet à Lambda d’envoyer des données à votre domaine Amazon ES. Pour plus d’informations sur les connexions d’appairage de VPC, consultez Création et acceptation d’une connexion d’appairage de VPC.

3.     Mettez à jour la table de routage pour les deux VPC. Pour plus d’informations sur les tables de routage, consultez Mise à jour de vos tables de routage pour une connexion d’appairage de VPC.

4.    Dans le compte A, accédez à Groupes de sécurité.

5.    Sélectionnez le groupe de sécurité affecté au sous-réseau dans lequel Lambda est configuré.

6.    Ajoutez la règle entrante pour autoriser le trafic depuis les sous-réseaux Amazon ES.

7.    Dans le compte B, sélectionnez le groupe de sécurité affecté au sous-réseau dans lequel Amazon ES est configuré.

8.    Ajoutez la règle entrante pour autoriser le trafic depuis les sous-réseaux Lambda.

9.    Dans le compte B, ouvrez la console Amazon ES.

10.    Sélectionnez Actions.

11.    Choisissez modify access policy, puis ajoutez la stratégie suivante :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
       
    "AWS": "arn:aws:iam::<AWS Account A>:role/<Lambda Execution Role>"
      },
      "Action": "es:*",
      "Resource": "arn:aws:es:us-east-1: ::<AWS
    Account B>:domain/<ES Domain Name>/*"
    }
  ]
}

Cette stratégie permet à Amazon ES d’effectuer des appels à partir du rôle d’exécution de la fonction Lambda.

12. Vérifiez la métrique Error count and success rate dans la console Lambda. Cette métrique vérifie si les journaux sont correctement envoyés à Amazon ES.

13. Vérifiez la métrique Indexing rate dans Amazon ES pour confirmer si les données ont été envoyées. CloudWatch Logs diffuse désormais des données sur les deux comptes dans votre Amazon VPC.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?