¿Cómo transmito datos desde CloudWatch Logs a un clúster de Amazon OpenSearch Service basado en una VPC en una cuenta diferente?

Última actualización: 23/07/2021

Intento transmitir datos desde Amazon CloudWatch Logs a un clúster de Amazon OpenSearch Service mediante una Virtual Private Cloud (VPC) de otra cuenta. Sin embargo, aparece el mensaje de error “Enter a valid Amazon OpenSearch Service Endpoint” (Ingrese un punto de enlace válido de Amazon OpenSearch Service). ¿Cómo soluciono este error?

Descripción corta

Nota: Amazon OpenSearch Service es el sucesor de Amazon Elasticsearch Service (Amazon ES).

Para transmitir datos desde CloudWatch Logs a un clúster de OpenSearch Service de otra cuenta, siga estos pasos:

1.    Configure CloudWatch Logs en la cuenta A.

2.    Configure AWS Lambda en la cuenta A.

3.    Configure la interconexión de Amazon Virtual Private Cloud (Amazon VPC) entre cuentas.

Resolución

Configuración de CloudWatch Logs en la cuenta A

1.    Abra la consola de CloudWatch Logs con la cuenta A y seleccione el grupo de registros.

2.    Elija Actions (Acciones).

3.    Elija el filtro Create OpenSearch subscription (Crear suscripción a OpenSearch).

4.    En la opción Select Account (Seleccionar cuenta), seleccione This Account (Esta cuenta).

5.    En la lista desplegable del clúster de OpenSearch Service, elija un clúster existente para la cuenta A.

6.    Elija el Lambda IAM Execution Role (Rol de ejecución de IAM de Lambda) que tenga permisos para hacer llamadas al clúster de OpenSearch Service seleccionado.

7.    Adjunte la política AWSLambdaVPCAccessExecutionRole al rol.

8.    En Configure log format and filters (Configurar formato y filtros de registro), seleccione Log Format (Formato de registro) y Subscription Filter Pattern (Patrón de filtro de suscripción).

9.    Elija Next (Siguiente).

10.    Ingrese el nombre del Subscription filter (Filtro de suscripción) y elija Start Streaming (Iniciar streaming). Para obtener más información sobre el streaming, consulte Streaming de datos de CloudWatch Logs a Amazon OpenSearch Service.

Configuración de Lambda en la cuenta A

1.    Con la cuenta A, abra la consola de Lambda.

2.    Seleccione la función Lambda.

3.    En el código de función, actualice la variable de punto de enlace del clúster de OpenSearch Service de la cuenta B. Esta actualización permite a la función Lambda enviar datos al dominio de OpenSearch Service de la cuenta B.

Nota: Puede pegar el nombre del DNS público de la cuenta B. Asegúrese de borrar “https://” del punto de enlace de la URL.

4.    Elija Configuration (Configuración).

5.    Elija VPC.

6.    En VPC, elija Edit (Editar).

7.    Seleccione la VPC, las subredes y los grupos de seguridad.

Nota: Esta selección garantiza que la función Lambda se ejecute en una VPC, mediante el enrutamiento de la VPC para enviar los datos al dominio de OpenSearch Service. Para obtener más información sobre las configuraciones de Amazon Virtual Private Cloud (Amazon VPC), consulte Configuración de una función Lambda para obtener acceso a los recursos en una VPC.

8.    Elija Save (Guardar).

Configuración de la interconexión de VPC entre cuentas

1.    Abra la consola de Amazon VPC con la cuenta A y la cuenta B.

Nota: Asegúrese de que la VPC no tenga bloques de CIDR superpuestos.

2.    Cree una sesión de interconexión de VPC entre las dos VPC personalizadas (Lambda y OpenSearch Service). Esta sesión de interconexión de VPC permite a Lambda enviar datos al dominio de OpenSearch Service. Para obtener más información sobre las conexiones de interconexión de VPC, consulte Cree y acepte las interconexiones de VPC.

3.    Actualice la tabla de enrutamiento de las dos VPC. Para obtener más información sobre las tablas de enrutamiento, consulte Actualice sus tablas de enrutamiento para interconexiones de VPC.

4.    Con la cuenta A, vaya a Security Groups (Grupos de seguridad).

5.    Seleccione el grupo de seguridad asignado a la subred en la que está configurado Lambda.

6.    Agregue la regla de entrada para permitir el tráfico de las subredes de OpenSearch Service.

7.    Con la cuenta B, seleccione el grupo de seguridad asignado a la subred en la que está configurado OpenSearch Service.

8.    Agregue la regla de entrada para permitir el tráfico de las subredes de Lambda.

9.    Con la cuenta B, abra la consola de OpenSearch Service.

10.    Elija Actions (Acciones).

11.    Elija modify access policy (modificar política de acceso) y, a continuación, agregue la siguiente política:

{
  "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>/*"
    }
  ]
}

Esta política permite a OpenSearch Service hacer llamadas desde el rol de ejecución de la función Lambda.

12.    Verifique la métrica Error count and success rate (Recuento de errores y porcentaje de éxito) en la consola de Lambda. Esta métrica verifica si los registros se entregan correctamente a OpenSearch Service.

13.    Verifique la métrica Indexing rate (Ratio de indexación) en OpenSearch Service para confirmar si los datos se enviaron. CloudWatch Logs ahora se transmite en ambas cuentas de la instancia de Amazon VPC.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?