¿Cómo puedo solucionar problemas de puntos de conexión de VPC en la configuración de red de mi entorno privado de Elastic Beanstalk?

6 minutos de lectura
0

Quiero solucionar problemas de red en mi entorno completamente privado de AWS Elastic Beanstalk.

Descripción breve

Los entornos completamente privados tienen la siguiente configuración y solopermiten el acceso a la aplicación web desde la misma instancia de Amazon Virtual Private Cloud (Amazon VPC).

  • Visibilidad del equilibrador de carga: privada
  • Subredes del equilibrador de carga: ambas subredes privadas
  • IP pública de la instancia: desactivada
  • Subredes de la instancia: ambas subredes privadas

Toda la comunicación en la VPC se hace a través de puntos de conexión de VPC configurados. Además, todas las comunicaciones dentro de la VPC se hacen a través de la ruta local de la tabla de enrutamiento. Los siguientes son errores comunes que pueden aparecer en el entorno debido a las configuraciones de red:

  • Las instancias de Amazon Elastic Compute Cloud (Amazon EC2) no se comunicaron con Elastic Beanstalk. El error de comunicación se debe a problemas de configuración con la VPC o a una instancia de EC2 con errores. Compruebe la configuración de la VPC e intente iniciar de nuevo el entorno.
  • Las instancias no respondieron en el tiempo de espera permitido del comando.

Resolución

Al crear un entorno completamente privado de Elastic Beanstalk, asegúrese de tener configuradas lo siguiente:

  • Debe tener una VPC con al menos dos subredes privadas en diferentes zonas de disponibilidad.
  • La VPC debe tener activados los nombres de host y las resoluciones de DNS. Al activarlos, se añade una entrada DNS en la VPC que asigna el punto de conexión del servicio público al punto de conexión de VPC de la interfaz.
  • Debe crear puntos de conexión de VPC para que los servicios de AWS que se encuentran fuera de la VPC y de la instancia que se encuentra dentro de la VPC puedan comunicarse a través de ellos

Comprrobación de los puntos de conexión de VPC

Un entorno estándar de Elastic Beanstalk debe tener los siguientes puntos de conexión de VPC para que la creación se lleve a cabo de manera correcta:

  • com.amazonaws.your-region.elasticbeanstalk (punto de conexión de la interfaz de Elastic Beanstalk)
  • com.amazonaws.your-region.elasticbeanstalk-health (punto de conexión de la interfaz del estado de Elastic Beanstalk)
  • com.amazonaws.your-region.cloudformation (punto de conexión de la interfaz de AWS CloudFormation)
  • com.amazonaws.your-region.logs (punto de conexión de la interfaz de registros)
  • com.amazonaws.your-region.sqs (punto de conexión de la interfaz de Amazon Simple Queue Service [Amazon SQS])
  • com.amazonaws.your-region.s3 (punto de conexión de la puerta de enlace de Amazon Simple Storage Service [Amazon S3])

Los entornos que se ejecutan en la plataforma de Docker que se ejecuta en Amazon Linux 2 de 64 bits deben tener los siguientes puntos de conexión de VPC adicionales:

  • com.amazonaws.your-region.ecr.dkr
  • com.amazonaws.your-region.ecr.api

Los entornos que se ejecutan en la plataforma de Amazon Elastic Container Service (Amazon ECS) que se ejecuta en Amazon Linux 2 de 64 bits deben tener los siguientes puntos de conexión de VPC adicionales:

  • com.amazonaws.your-region.ecs
  • com.amazonaws.your-region.ecr.api
  • com.amazonaws.your-region.ecr.dkr

Nota: Para asegurarse de que el entorno de Docker y Multi-Docker funcionan correctamente, proporcione una imagen privada de Docker.

Comprobación del grupo de seguridad

Al crear el punto de conexión de VPC de la interfaz, debe elegir las subredes y el grupo de seguridad del punto de conexión de VPC. Asegúrese de elegir las subredes privadas y el grupo de seguridad con las reglas de entrada adecuadas.

El grupo de seguridad que está conectado a los puntos de conexión de VPC de la interfaz debe tener una regla de entrada para el puerto 443 (HTTPS):

Regla de entrada:

TipoProtocoloRango de puertoOrigen
HTTPSTCP443Dirección IP del cliente (consulte la nota)

Nota: Para proteger el tráfico entrante a través del punto de conexión de VPC, considere especificar solo la dirección IP o la red del cliente en el Source (Origen).

Además, compruebe que el grupo de seguridad asociado a la instancia permita el tráfico HTTP desde el grupo de seguridad del equilibrador de carga:

Regla de entrada:

TipoProtocoloRango de puertoOrigen
HTTPTCP80Grupo de seguridad del equilibrador de carga

Compruebe que el grupo de seguridad asociado al equilibrador de carga permita todo el tráfico HTTP en la regla de entrada:

Regla de entrada:

TipoProtocoloRango de puertoOrigen
HTTPTCP800.0.0.0/0

Nota: No necesita restringir el tráfico de salida en ninguno de los grupos de seguridad anteriores.

Compruebe las entradas de la tabla de enrutamiento

Al crear puntos de conexión de puertas de enlace, tiene la opción de elegir una tabla de enrutamiento. Asegúrese de elegir la tabla de enrutamiento que está asociada a la subred privada de la VPC. La tabla de enrutamiento que está asociada a la subred privada debe tener una ruta para cada punto de conexión de VPC de la puerta de enlace. Por ejemplo, debe tener una ruta para cada punto de conexión de VPC de la puerta de enlace asociado a Amazon Simple Storage Service (Amazon S3) o Amazon DynamoDB.

Entradas de la tabla de enrutamiento:

DestinoObjetivo
172.xx.x.0/16Local
pl-63a5xxxvpce-04xxx

Comprobación de las políticas de puntos de conexión de VPC

Las políticas de los puntos de conexión de VPC deben permitir que el entorno de Elastic Beanstalk se comunique de forma privada con el servicio. Al crear un punto de conexión de interfaz o de puerta de enlace, puede adjuntar una política de punto de conexión. La política de puntos de conexión controla qué entidades principales de AWS pueden utilizar el punto de conexión de VPC para acceder al servicio del punto de conexión. Las entidades principales de AWS incluyen las cuentas de AWS, los usuarios de AWS Identity and Access Management (IAM) y los roles de IAM. Si no se especifica una política de puntos de conexión al crear uno, el punto de conexión tendrá acceso total de forma predeterminada.

A continuación se muestra un ejemplo de la política mínima del punto de conexión de VPC de la puerta de enlace de S3 necesaria para un punto de conexión de S3 cuando se trabaja con Elastic Beanstalk.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EBBucketAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject",
                "s3:PutBucketPolicy",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-*",
                "arn:aws:s3:::elasticbeanstalk-*/*",
                "arn:aws:s3:::cloudformation*/*"
            ]
        }
    ]
}

Información relacionada

Access an AWS service using an interface VPC endpoint (Acceso a un servicio de AWS mediante un punto de conexión de VPC de interfaz)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año