Comment puis-je diffuser des données de CloudWatch Logs vers un cluster Amazon OpenSearch Service basé sur un VPC dans un autre compte ?

Date de la dernière mise à jour : 23/07/2021

J'essaie de diffuser des données depuis Amazon CloudWatch Logs vers un cluster Amazon OpenSearch Service à l'aide d'un Virtual Private Cloud (VPC) dans un autre compte. Toutefois, je reçois un message d'erreur « Saisir un point de terminaison de service Amazon OpenSearch valide ». Comment puis-je résoudre cette erreur ?

Brève description

Remarque : Amazon OpenSearch Service est le successeur d'Amazon Elasticsearch Service (Amazon ES).

Pour diffuser des données de CloudWatch Logs vers un cluster OpenSearch Service dans un autre compte, suivez les étapes ci-dessous :

1.    Configurez CloudWatch Logs dans le compte A.

2.    Configurez AWS Lambda dans le compte A.

3.    Configurez l'appairage Amazon Virtual Private Cloud (Amazon 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 Actions.

3.    Choisissez le filtre Créer un abonnement OpenSearch.

4.    Pour l'option Select Account (Sélectionner un compte), sélectionnez This account (Ce compte).

5.    Pour la liste déroulante Cluster OpenSearch Service, choisissez un cluster existant pour le compte A.

6.    Choisissez le rôle d'exécution Lambda IAM qui dispose des autorisations nécessaires pour passer des appels vers le cluster OpenSearch Service sélectionné.

7.    Attachez la stratégie AWSLambdaVPCAccessExecutionRole à votre rôle.

8.    Dans Configure log format and filters (Configurer un format de journal et des filtres), sélectionnez le format de journal et le modèle de filtre d'abonnement.

9.    Sélectionnez Next (Suivant).

10.    Saisissez le nom du filtre d'abonnement et choisissez Démarrer le streaming. Pour plus d'informations sur le streaming, consultez Streaming de données CloudWatch Logs dans Amazon OpenSearch 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 fonction, mettez à jour la variable de point de terminaison du cluster OpenSearch Service dans le compte B. Cette mise à jour permet à la fonction Lambda d'envoyer des données au domaine OpenSearch Service 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 Configuration.

5.    Choisissez VPC.

6.    Sous VPC, choisissez Edit (Modifier).

7.    Sélectionnez votre VPC, vos sous-réseaux et vos groupes de sécurité.

Remarque : cette sélection garantit que la fonction Lambda s'exécute dans un VPC, en utilisant le routage VPC pour renvoyer des données au domaine OpenSearch Service. Pour en savoir plus sur les configurations Amazon Virtual Private Cloud (Amazon VPC), consultez Configuration d'une fonction Lambda pour accéder aux ressources d'un VPC.

8.    Sélectionnez Save (Enregistrer).

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 OpenSearch Service). Cette session d'appairage de VPC permet à Lambda d'envoyer des données vers votre domaine OpenSearch Service. 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 en savoir plus 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 à partir des sous-réseaux OpenSearch Service.

7.    Dans le compte B, sélectionnez le groupe de sécurité affecté au sous-réseau sur lequel OpenSearch Service 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 OpenSearch Service.

10.    Choisissez Actions.

11.    Choisissez Modifier la stratégie d'accès, puis ajoutez la politique 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/<OpenSearch Domain Name>/*"
    }
  ]
}

Cette stratégie permet à OpenSearch Service de passer des appels depuis le rôle d'exécution de la fonction Lambda.

12.    Vérifiez le nombre d'erreurs et la métrique du taux de réussite dans la console Lambda. Cette métrique vérifie si les journaux ont bien été livrés à OpenSearch Service.

13.    Vérifiez la métrique Taux d'indexation dans OpenSearch Service pour vérifier si les données ont été envoyées. CloudWatch Logs diffuse désormais des données sur les deux comptes de votre Amazon VPC.


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


Besoin d'aide pour une question technique ou de facturation ?