Configuración del balanceador de carga del entorno de Elastic Beanstalk para terminar conexiones HTTPS - AWS Elastic Beanstalk

Configuración del balanceador de carga del entorno de Elastic Beanstalk para terminar conexiones HTTPS

Si desea actualizar el entorno de AWS Elastic Beanstalk para el uso de HTTPS, debe configurar un agente de escucha HTTPS para el balanceador de carga del entorno. Existen dos tipos de balanceador de carga compatibles con un agente de escucha HTTPS: Classic Load Balancer y Balanceador de carga de aplicaciones.

Puede utilizar la consola de Elastic Beanstalk o un archivo de configuración para configurar un agente de escucha seguro y asignar el certificado.

nota

Los entornos de una sola instancia no tienen balanceador de carga ni admiten la terminación HTTPS en el balanceador de carga.

Configuración de un agente de escucha seguro mediante la consola de Elastic Beanstalk

Para asignar un certificado al balanceador de carga del entorno

  1. Abra la consola de Elastic Beanstalk y, en la lista Regiones, seleccione su región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Load balancer (Balanceador de carga), elija Edit (Editar).

    nota

    Si la categoría de configuración Load balancer (Balanceador de carga) no tiene un botón Edit (Editar), el entorno no tiene un balanceador de carga.

  5. En la página Modify load balancer (Modificar balanceador de carga), el procedimiento varía en función del tipo de balanceador de carga asociado al entorno.

    • Classic Load Balancer

      1. Elija Add listener (Añadir agente de escucha).

      2. En el cuadro de diálogo Classic Load Balancer listener (Agente de escucha de Classic Load Balancer), configure las opciones siguientes:

        • En Listener port (Puerto del agente de escucha), escriba el puerto del tráfico entrante, normalmente 443.

        • En Listener protocol (Protocolo del agente de escucha), seleccione HTTPS.

        • En Instance port (Puerto de instancia), escriba 80.

        • En Instance protocol (Protocolo de instancia), elija HTTP.

        • En SSL certificate (Certificado SSL), elija su certificado.

      3. Elija Add.

    • Balanceador de carga de aplicaciones

      1. Elija Add listener (Añadir agente de escucha).

      2. En el cuadro de diálogo Balanceador de carga de aplicaciones listener (Agente de escucha de Balanceador de carga de aplicaciones), configure las opciones siguientes:

        • En Port (Puerto), escriba el puerto del tráfico entrante, normalmente 443.

        • En Protocol (Protocolo), seleccione HTTPS.

        • En SSL certificate (Certificado SSL), elija su certificado.

      3. Elija Add.

      nota

      Para Classic Load Balancer y Balanceador de carga de aplicaciones, si el menú desplegable no muestra ningún certificado, debe crear o cargar un certificado para su nombre de dominio personalizado en AWS Certificate Manager (ACM) (opción preferida). De forma alternativa, cargar un certificado IAM con la CLI de AWS.

    • Balanceador de carga de red

      1. Elija Add listener (Añadir agente de escucha).

      2. En el cuadro de diálogo Balanceador de carga de red listener (Agente de escucha de Balanceador de carga de red), en Port (Puerto), escriba el puerto del tráfico entrante, normalmente 443.

      3. Elija Add.

  6. Seleccione Aplicar.

Configuración de un agente de escucha seguro mediante un archivo de configuración

Puede configurar un agente de escucha seguro en el balanceador de carga con uno de estos archivos de configuración.

ejemplo .ebextensions/securelistener-clb.config

Utilice este ejemplo si su entorno tiene un Classic Load Balancer. En el ejemplo se utilizan las opciones del espacio de nombres aws:elb:listener para configurar un agente de escucha HTTPS en el puerto 443 con el certificado especificado y para que reenvíe el tráfico descifrado a las instancias del entorno en el puerto 80.

option_settings: aws:elb:listener:443: SSLCertificateId: arn:aws:acm:us-east-2:1234567890123:certificate/#################################### ListenerProtocol: HTTPS InstancePort: 80

Sustituya el texto resaltado por el ARN del certificado. El certificado puede ser uno que haya creado o cargado en AWS Certificate Manager (ACM) (opción preferida) o que haya cargado en IAM con la CLI de AWS.

Para obtener más información acerca de las opciones de configuración de Classic Load Balancer, consulte Espacios de nombres de configuración de Classic Load Balancer.

ejemplo .ebextensions/securelistener-alb.config

Utilice este ejemplo si su entorno tiene un Balanceador de carga de aplicaciones. El ejemplo utiliza las opciones del espacio de nombres aws:elbv2:listener para configurar un agente de escucha HTTPS en el puerto 443 con el certificado especificado. El agente de escucha dirige el tráfico al proceso predeterminado.

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true' Protocol: HTTPS SSLCertificateArns: arn:aws:acm:us-east-2:1234567890123:certificate/####################################

ejemplo .ebextensions/securelistener-nlb.config

Utilice este ejemplo si su entorno tiene un Balanceador de carga de red. El ejemplo utiliza opciones en el espacio de nombres aws:elbv2:listener para configurar un agente de escucha en el puerto 443. El agente de escucha dirige el tráfico al proceso predeterminado.

option_settings: aws:elbv2:listener:443: ListenerEnabled: 'true'

Configuración de un grupo de seguridad

Si configura el balanceador de carga para que reenvíe el tráfico a un puerto de la instancia que no sea el 80, debe agregar una regla al grupo de seguridad que permita el tráfico procedente del balanceador de carga en el puerto de la instancia. Si crea el entorno en una VPC personalizada, Elastic Beanstalk agrega esta regla por usted.

Para incorporar esta regla, puede agregar una clave Resources a un archivo de configuración del directorio .ebextensions de la aplicación.

El siguiente archivo de configuración de ejemplo agrega una regla de entrada al grupo de seguridad AWSEBSecurityGroup. Esto permite el tráfico en el puerto 1000 procedente del grupo de seguridad del balanceador de carga.

ejemplo .ebextensions/sg-ingressfromlb.config

Resources: sslSecurityGroupIngress: Type: AWS::EC2::SecurityGroupIngress Properties: GroupId: {"Fn::GetAtt" : ["AWSEBSecurityGroup", "GroupId"]} IpProtocol: tcp ToPort: 1000 FromPort: 1000 SourceSecurityGroupName: {"Fn::GetAtt" : ["AWSEBLoadBalancer" , "SourceSecurityGroup.GroupName"]}