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

6 minutos de lectura
0

Quiero solucionar los 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 permiten el acceso a tu aplicación web solo desde la misma instancia de Amazon Virtual Private Cloud (Amazon VPC).

  • Visibilidad del equilibrador de carga: Privado
  • ** 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 a través de la VPC se lleva a cabo a través de los puntos de enlace de VPC configurados. Además, toda la comunicación dentro de la VPC se realiza a través de la ruta local de la tabla de enrutamiento. Los siguientes son errores comunes que puedes ver en el entorno debido a las configuraciones de red:

  • The Amazon Elastic Compute Cloud (Amazon EC2) instances failed to communicate with Elastic Beanstalk. Communication failure is due to configuration problems with the VPC or a failed EC2 instance. Check your VPC configuration, and try launching the environment again.
  • The instances didn't respond in the allowed command timeout time.

Resolución

Al crear un entorno de Elastic Beanstalk completamente privado, asegúrate de tener configurados los siguientes ajustes:

  • Debes 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 de DNS en tu VPC que asigna el punto de enlace del servicio público al punto de enlace de VPC de la interfaz.
  • Debes crear puntos de enlace de VPC para que los servicios de AWS fuera de la VPC y la instancia dentro de la VPC puedan comunicarse a través de estos puntos de enlace.

Comprobación de los puntos de enlace de VPC

Un entorno estándar de Elastic Beanstalk debe tener los siguientes puntos de enlace de VPC para que la creación se realice correctamente:

  • com.amazonaws.your-region.elasticbeanstalk (punto de enlace de la interfaz de Elastic Beanstalk)
  • com.amazonaws.your-region.elasticbeanstalk-health (punto de enlace de la interfaz de estado de Elastic Beanstalk)
  • com.amazonaws.your-region.cloudformation (punto de enlace de la interfaz de AWS CloudFormation)
  • com.amazonaws.your-region.logs (punto de enlace de la interfaz de registros)
  • com.amazonaws.your-region.sqs (punto de enlace de la interfaz de Amazon Simple Queue Service [Amazon SQS])
  • com.amazonaws.your-region.s3 (punto de enlace 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 enlace 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 enlace de VPC adicionales:

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

Nota: Para asegurarte de que tu entorno de Docker y MultiDocker funcione correctamente, proporciona una imagen de Docker privada.

Comprobación del grupo de seguridad

Al crear el punto de enlace de VPC de la interfaz, debes elegir las subredes y el grupo de seguridad del punto de enlace de VPC. Asegúrate 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 enlace de VPC de la interfaz debe tener una regla de entrada para el puerto 443 (HTTPS):

Regla de entrada:

TipoProtocoloIntervalo de puertosOrigen
HTTPSTCP443Dirección IP del cliente (consulta la nota)

Nota: Para proteger el tráfico entrante a través del punto de enlace de VPC, considera especificar solo la dirección IP o la red del cliente en el origen.

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

Regla de entrada:

TipoProtocoloIntervalo de puertosOrigen
HTTPTCP80Grupo de seguridad del equilibrador de carga

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

Regla de entrada:

TipoProtocoloIntervalo de puertosOrigen
HTTPTCP800.0.0.0/0

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

Comprobación de las entradas de la tabla de enrutamiento

Al crear puntos de enlace de puerta de enlace, tienes la opción de elegir una tabla de enrutamiento. Asegúrate de elegir la tabla de enrutamiento asociada a la subred privada de la VPC. La tabla de enrutamiento asociada a la subred privada debe tener una ruta para cada punto de enlace de VPC de la puerta de enlace. Por ejemplo, debes tener una ruta para cada punto de enlace de VPC de la puerta de enlace que esté 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 punto de enlace de VPC

Las políticas de punto de enlace de VPC deben permitir que tu entorno de Elastic Beanstalk se comunique de forma privada con el servicio. Al crear un punto de enlace de interfaz o de puerta de enlace, puedes adjuntar una política de punto de enlace. La política de punto de enlace controla qué entidades principales de AWS pueden utilizar el punto de enlace de VPC para acceder al servicio de punto de enlace. Las entidades principales de AWS pueden ser cuentas de AWS, usuarios de AWS Identity and Access Management (IAM) o roles de IAM. Si no especificas una política de punto de enlace al crear un punto de enlace, el punto de enlace tiene acceso total de forma predeterminada.

El siguiente es un ejemplo de política mínima de punto de enlace de VPC de puerta de enlace de S3 que se requiere para un punto de enlace 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

Acceso a un servicio de AWS mediante un punto de conexión de VPC de interfaz

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 6 meses