equilibrador de carga de aplicaciones - Elastic Load Balancing

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

equilibrador de carga de aplicaciones

Un equilibrador de carga actúa como único punto de contacto para los clientes. Los clientes envía las solicitudes al equilibrador de carga y este se las envía a los destinos, tales como las instancias EC2. Para configurar el equilibrador de carga, debe crear grupos de destino y, a continuación, registrar los destinos en esos grupos. También puede crear oyentes para comprobar la existencia de solicitudes de conexión de los clientes, así como reglas de oyentes para direccionar las solicitudes de los clientes a los destinos de uno o varios grupos de destino.

Para obtener más información, consulte Funcionamiento de Elastic Load Balancing en la Guía del usuario de Elastic Load Balancing.

Visualice sus recursos con un mapa de recursos

El mapa de recursos muestra todos los recursos del balanceador de cargas, incluidas las relaciones y las rutas entre ellos, en un formato visual.

Los siguientes recursos del balanceador de cargas están visibles en el mapa de recursos:

  • Oyentes

  • Reglas

  • Grupos de destino

  • Destinos

Puedes usar el mapa de recursos para entender la arquitectura de tu balanceador de cargas, ver cuántos oyentes tiene, qué reglas se transmiten a qué oyentes y qué grupos de destinatarios se dirigen a qué objetivos.

También puedes usar el mapa de recursos para identificar las configuraciones no deseadas o incorrectas y los objetivos en mal estado. Puede seleccionar recursos dentro del mapa de recursos, como reglas, para crear un enlace que permita editar la configuración de esos recursos.

Para visualizar los recursos de tu balanceador de cargas
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. Haga clic en la pestaña Resource map (Mapa de recursos) para mostrar una visualización de los recursos.

    Navegar por el mapa de recursos
    • Pase el ratón sobre un mosaico de recursos o selecciónelo para resaltar las relaciones entre este y otros recursos.

    • Seleccione un mosaico de recursos para ver detalles adicionales sobre ese recurso.

    • Seleccione el nombre de un recurso dentro de un mosaico para visitar la página de detalles de ese recurso.

  5. Activa Mostrar detalles del recurso para ver información adicional de todos los recursos.

    • condiciones de la regla: las condiciones de cada regla.

    • resumen de salud del grupo destinatario: número de objetivos registrados para cada estado de salud.

    • estado de salud objetivo: el estado de salud actual del objetivo y su descripción.

  6. (Opcional) Seleccione el mapa objetivo en mal estado para mostrar todos los objetivos en mal estado en ese momento y los recursos asociados a ellos.

  7. (Opcional) Al seleccionar Exportar, tiene la opción de exportar la vista actual del mapa de recursos de su balanceador de carga de aplicaciones en formato PDF.

Subredes del equilibrador de carga

Al crear un Equilibrador de carga de aplicación, debe habilitar las zonas que contienen sus destinos. Para habilitar una zona, especifique una subred en ella. Elastic Load Balancing crea un nodo de equilibrador de carga en cada zona que especifique.

Consideraciones
  • El equilibrador de carga es más eficaz si se asegura de que cada zona habilitada tenga al menos un destino registrado.

  • Si registra los destinos en una zona pero no la habilita, estos destinos registrados no recibirán tráfico del equilibrador de carga.

  • Si habilita varias zonas para su equilibrador de carga, estas deben ser del mismo tipo. Por ejemplo, no puede habilitar tanto una zona de disponibilidad como zona local.

  • Puede especificar una subred que se haya compartido con usted.

Los equilibradores de carga de aplicaciones admiten los siguientes tipos de subredes.

Subredes de zona de disponibilidad

Debe seleccionar dos subredes en zonas de disponibilidad como mínimo. Se aplican las siguientes restricciones:

  • Cada subred tiene que estar en una zona de disponibilidad diferente.

  • Para garantizar que el equilibrador de carga puede adaptarse correctamente, asegúrese de que cada subred de zona de disponibilidad del equilibrador de carga tenga un bloque de CIDR con al menos una máscara de bits /27 (por ejemplo, 10.0.0.0/27) y al menos ocho direcciones IP libres por subred. Estas ocho direcciones IP son necesarias para permitir que el equilibrador de carga se escale horizontalmente si es necesario. El equilibrador de carga utiliza estas direcciones IP para establecer conexiones con los destinos. Sin ellas, el Equilibrador de carga de aplicación podría tener dificultades al intentar reemplazar un nodo y provocar que se produjera un error.

    Nota: Si una subred de Equilibrador de carga de aplicación se queda sin direcciones IP utilizables al intentar escalar, el Equilibrador de carga de aplicación se ejecutará con una capacidad insuficiente. Durante este tiempo, los nodos antiguos seguirán atendiendo el tráfico, pero el intento de escalado estancado puede provocar errores de hasta cinco veces o tiempos de espera al intentar establecer una conexión.

Subredes de zona local

Puede especificar una o más subredes de zona local. Se aplican las siguientes restricciones:

  • No se puede usar AWS WAF con el balanceador de cargas.

  • No podrá utilizar una función de Lambda como destino.

  • No puedes usar sesiones fijas ni aplicaciones adhesivas.

Subredes de Outpost

Puede especificar una única subred de Outpost. Se aplican las siguientes restricciones:

  • Debe haber instalado y configurado un Outpost en su centro de datos local. Debe contar con una conexión de red fiable entre el Outpost y la región de AWS . Para más información, consulte la Guía del usuario de AWS Outposts.

  • El equilibrador de carga requiere dos instancias large en el Outpost para los nodos del equilibrador de carga. Los únicos tipos de instancias compatibles con son los siguientes: El equilibrador de carga se escala según sea necesario y cambia el tamaño de los nodos de un tamaño a la vez (de large a xlarge, luego de xlarge a 2xlarge, y después de 2xlarge a 4xlarge). Después de escalar los nodos al tamaño de instancia más grande, si necesita capacidad adicional, el equilibrador de carga agrega instancias 4xlarge como nodos del equilibrador de carga. Si no tiene suficiente capacidad de instancias o direcciones IP disponibles para escalar el equilibrador de carga, este informa de un evento al AWS Health Dashboard y el estado del equilibrador de carga es active_impaired.

  • Puede registrar destinos por ID de instancia o por dirección IP. Si registras objetivos en la AWS región para el Outpost, no se utilizarán.

  • Las siguientes características no están disponibles: Las funciones de Lambda como destinos, integración de AWS WAF , sesiones persistentes, soporte de autenticación e integración con AWS Global Accelerator.

Se puede implementar un Equilibrador de carga de aplicación en instancias c5/c5d, m5/m5d o r5/r5d en un Outpost. La siguiente tabla muestra el tamaño y el volumen de EBS por tipo de instancia que el equilibrador de carga puede usar en un Outpost:

Tipo y tamaño de instancia Volumen EBS (GB)
c5/c5d
large 50
xlarge 50
2xlarge 50
4xlarge 100
m5/m5d
large 50
xlarge 50
2xlarge 100
4xlarge 100
r5/r5d
large 50
xlarge 100
2xlarge 100
4xlarge 100

Grupos de seguridad del equilibrador de carga

Un grupo de seguridad funciona como un firewall que controla el tráfico que se permite entrar o salir del equilibrador de carga. Puede elegir los puertos y protocolos que se admitirán para el tráfico entrante y saliente.

Las reglas de los grupos de seguridad que están asociados con el equilibrador de carga deben permitir el tráfico en ambas direcciones tanto en el oyente como en los puertos de comprobación de estado. Siempre que se agrega un oyente a un equilibrador de carga o se actualiza el puerto de comprobación de estado de un grupo de destino, es preciso revisar las reglas del grupo de seguridad con el fin de asegurarse de que permitan el tráfico en el nuevo puerto en ambas direcciones. Para obtener más información, consulte Reglas recomendadas.

Estado del equilibrador de carga

Un equilibrador de carga puede encontrarse en uno de los siguientes estados:

provisioning

El equilibrador de carga se está configurando.

active

El equilibrador de carga se ha configurado completamente y está listo para direccionar el tráfico.

active_impaired

El equilibrador de carga enruta el tráfico, pero no tiene los recursos que necesita para escalar.

failed

El equilibrador de carga no se han podido configurar.

Atributos del equilibrador de carga

A continuación se indican los atributos del equilibrador de carga:

access_logs.s3.enabled

Indica si están habilitados los registros de acceso almacenados en Amazon S3. El valor predeterminado es false.

access_logs.s3.bucket

Nombre del bucket de Amazon S3 para los registros de acceso. Este atributo es obligatorio si están habilitados los registros de acceso. Para obtener más información, consulte Habilitar registros de acceso.

access_logs.s3.prefix

Prefijo de la ubicación en el bucket de Amazon S3.

client_keep_alive.seconds

El cliente mantiene un valor activo, en segundos. El valor predeterminado es 3600 segundos.

deletion_protection.enabled

Indica si está habilitada la protección contra eliminación. El valor predeterminado es false.

idle_timeout.timeout_seconds

Valor del tiempo de inactividad, en segundos. El valor predeterminado es de 60 segundos.

ipv6.deny_all_igw_traffic

Bloquea el acceso de una puerta de enlace de Internet (IGW) al equilibrador de carga, al evitar el acceso no intencionado a su equilibrador de carga interno a través de una puerta de enlace de Internet. Se ha establecido en false para los equilibradores de carga con acceso a Internet y true para los equilibradores de carga internos. Este atributo no impide el acceso a Internet que no sea de IGW (por ejemplo, mediante peering, AWS Direct Connect Transit Gateway o). AWS VPN

routing.http.desync_mitigation_mode

Determina cómo administra el equilibrador de carga las solicitudes que es posible que representen un riesgo de seguridad para la aplicación. Los valores posibles son monitor, defensive y strictest. El valor predeterminado es defensive.

routing.http.drop_invalid_header_fields.enabled

Indica si el equilibrador de carga elimina los encabezados HTTP con campos de encabezado que no son no válidos (true) o si se redireccionan a los destinos (false). El valor predeterminado es false. Elastic Load Balancing requiere que los nombres de encabezado HTTP válidos se ajusten a la expresión regular [-A-Za-z0-9]+, tal como se describe en el Registro de nombres de campos HTTP. Cada nombre consta de caracteres alfanuméricos o guiones. Seleccione true si desea que los encabezados HTTP que no se ajusten a este patrón se eliminen de las solicitudes.

routing.http.preserve_host_header.enabled

Indica si el Equilibrador de carga de aplicación debe conservar el encabezado Host en la solicitud HTTP y ser enviado al destino sin ningún cambio. Los valores posibles son true y false. El valor predeterminado es false.

routing.http.x_amzn_tls_version_and_cipher_suite.enabled

Indica si los dos encabezados (x-amzn-tls-version y x-amzn-tls-cipher-suite), que contienen información sobre la versión de TLS negociada y el conjunto de cifrado, se agregan a la solicitud del cliente antes de enviarla al destino. El encabezado x-amzn-tls-version contiene información acerca de la versión del protocolo TLS negociada con el cliente y el encabezado x-amzn-tls-cipher-suite contiene información sobre el conjunto de cifrado negociado con el cliente. Ambos encabezados están en formato OpenSSL. Los valores posibles para el atributo son true y false. El valor predeterminado es false.

routing.http.xff_client_port.enabled

Indica si el encabezado X-Forwarded-For debe conservar el puerto de origen que el cliente utiliza para conectarse al equilibrador de carga. Los valores posibles son true y false. El valor predeterminado es false.

routing.http.xff_header_processing.mode

Permite modificar, conservar o eliminar el encabezado X-Forward-For en la solicitud HTTP antes de que el Equilibrador de carga de aplicación envíe la solicitud al destino. Los valores posibles son append, preserve y remove. El valor predeterminado es append.

  • Si el valor es append, el Equilibrador de carga de aplicación agrega la dirección IP del cliente (del último salto) al encabezado X-Forward-For en la solicitud HTTP antes de enviarla a los destinos.

  • Si el valor es preserve, el Equilibrador de carga de aplicación conserva el encabezado X-Forward-For en la solicitud HTTP y la envía a los destinos sin ningún cambio.

  • Si el valor es remove, el Equilibrador de carga de aplicación elimina el encabezado X-Forward-For en la solicitud HTTP antes de enviarla a los destinos.

routing.http2.enabled

Indica si HTTP/2 está habilitado. El valor predeterminado es true.

waf.fail_open.enabled

Indica si se debe permitir que un balanceador de cargas AWS WAF habilitado enrute las solicitudes a los destinos si no puede reenviarlas a ellos. AWS WAF Los valores posibles son true y false. El valor predeterminado es false.

nota

El atributo routing.http.drop_invalid_header_fields.enabled se introdujo para ofrecer protección contra la desincronización de HTTP. El atributo routing.http.desync_mitigation_mode se agregó para proporcionar una protección más completa contra la desincronización de HTTP para sus aplicaciones. No es necesario que utilice ambos atributos y puede elegir cualquiera de ellos, en función de los requisitos de la aplicación.

Tipo de dirección IP

Puede establecer los tipos de direcciones IP que los clientes pueden utilizar para acceder los equilibradores de carga internos y expuestos a Internet.

Los siguientes son los tipos de direcciones IP:

ipv4

Los clientes deben conectarse al equilibrador de carga mediante direcciones IPv4 (por ejemplo, 192.0.2.1)

dualstack

Los clientes pueden conectarse al equilibrador de carga mediante direcciones IPv4 (por ejemplo, 192.0.2.1) y direcciones IPv6 (por ejemplo, 2001:0db8:85a3:0:0:8a2e:0370:7334).

Consideraciones sobre el equilibrador de carga de doble pila
  • El equilibrador de carga se comunica con los destinos en función del tipo de dirección IP del grupo de destino.

  • Cuando habilita el modo de doble pila para el equilibrador de carga, Elastic Load Balancing proporciona un registro DNS AAAA para el equilibrador de carga. Los clientes que se comunican con el equilibrador de carga mediante direcciones IPv4 resuelven el registro DNS A. Los clientes que se comunican con el equilibrador de carga mediante direcciones IPv6 resuelven el registro DNS AAAA.

  • El acceso a los equilibradores de carga internos de doble pila a través de la puerta de enlace de Internet está bloqueado para evitar el acceso no deseado a Internet. Sin embargo, esto no impide el acceso a Internet que no sea de IWG (por ejemplo, mediante peering, AWS Direct Connect Transit Gateway o). AWS VPN

Conexiones de balanceador de carga

Al procesar una solicitud, el balanceador de cargas mantiene dos conexiones: una conexión con el cliente y otra con un destino. La conexión entre el balanceador de cargas y el cliente también se denomina conexión front-end. La conexión entre el equilibrador de carga y el destino también se denomina conexión de fondo.

Tiempo de inactividad de conexión

El tiempo de espera de la conexión inactiva es el período de tiempo que una conexión de cliente o de destino existente puede permanecer inactiva, sin que se envíen ni reciban datos, antes de que el balanceador de cargas cierre la conexión.

Para garantizar que las operaciones prolongadas, como la carga de archivos, tengan tiempo de completarse, envíe al menos 1 byte de datos antes de que transcurra cada período de inactividad y aumente la duración del período de inactividad según sea necesario. También recomendamos que configure el tiempo de inactividad de su aplicación para que sea mayor que el tiempo de inactividad configurado para el equilibrador de carga. De lo contrario, si la aplicación cierra la conexión TCP al equilibrador de carga de forma irregular, este podría enviar una solicitud a la aplicación antes de que reciba el paquete que indica que la conexión está cerrada. Si este es el caso, entonces el equilibrador de carga envía un error HTTP 502 Bad Gateway al cliente.

De forma predeterminada, Elastic Load Balancing establece el valor de tiempo de espera de inactividad del balanceador de carga en 60 segundos o 1 minuto. Utilice el procedimiento siguiente para cambiar el valor de tiempo de espera de inactividad.

Para actualizar el valor del tiempo de espera de inactividad de la conexión mediante la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Configuración de tráfico, introduzca un valor para el tiempo de espera de la conexión inactiva. El intervalo válido es de 1 a 4000 segundos.

  6. Elija Guardar cambios.

Para actualizar el valor del tiempo de espera de inactividad mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el idle_timeout.timeout_seconds atributo.

Duración del mantenimiento de la vida del cliente HTTP

La duración de mantenimiento del cliente HTTP es el tiempo máximo que un Application Load Balancer mantendrá una conexión HTTP persistente con un cliente. Una vez transcurrido el tiempo de conservación del cliente HTTP configurado, Application Load Balancer acepta una solicitud y devuelve una respuesta que cierra la conexión sin problemas.

El tipo de respuesta que envía el balanceador de cargas depende de la versión HTTP utilizada por la conexión del cliente. Para los clientes conectados mediante HTTP 1.x, el balanceador de cargas envía un encabezado HTTP que contiene el campo. Connection: close Para los clientes conectados mediante HTTP/2, el balanceador de cargas envía un marco. GOAWAY

De forma predeterminada, los balanceadores de carga de aplicaciones establecen el valor de duración de keepalive del cliente HTTP en 3600 segundos o 1 hora. La duración del mantenimiento activo del cliente HTTP no se puede desactivar ni establecer por debajo del mínimo de 60 segundos, pero puede aumentar la duración del mantenimiento del cliente HTTP hasta un máximo de 60 800 segundos, o 7 días. El Application Load Balancer comienza el período de conservación del cliente HTTP cuando se establece inicialmente una conexión HTTP con un cliente. El período de duración continúa ejecutándose cuando no hay tráfico y no se restablece hasta que se establece una nueva conexión.

El Application Load Balancer asigna al cliente HTTP la duración keepalive una vez durante la conexión inicial. Al actualizar la duración de keepalive del cliente HTTP, esto puede provocar conexiones simultáneas con diferentes valores de duración de keepalive del cliente HTTP. Las conexiones existentes conservarán el valor de duración de keepalive del cliente HTTP aplicado durante su conexión inicial, mientras que cualquier conexión nueva recibirá el valor de duración keepalive del cliente HTTP actualizado.

Para actualizar el valor de duración de keepalive del cliente mediante la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Configuración de tráfico, introduzca un valor para la duración del mantenimiento activo del cliente HTTP. El intervalo válido es de 60 a 604800 segundos.

  6. Elija Guardar cambios.

Para actualizar el valor de duración de keepalive del cliente mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el client_keep_alive.seconds atributo.

Equilibrio de carga entre zonas

Con los equilibradores de carga de aplicaciones, el equilibrio de carga entre zonas está activado de forma predeterminada y no se puede cambiar a nivel del equilibrador de carga. Para obtener más información, consulte la sección Equilibrio de carga entre zonas en la Guía del usuario de Elastic Load Balancing.

Es posible desactivar el equilibrio de carga entre zonas a nivel del grupo de destino. Para obtener más información, consulte Deshabilitar el equilibrio de carga entre zonas.

Protección contra eliminación

Para evitar que el equilibrador de carga se elimine por error, puede habilitar la protección contra eliminación. De forma predeterminada, la protección contra eliminación del equilibrador de carga está deshabilitada.

Si habilita la protección contra eliminación del equilibrador de carga, deberá deshabilitarla para poder eliminarlo.

Para habilitar la protección contra eliminación desde la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Configuración, active Protección contra eliminación.

  6. Elija Guardar cambios.

Para deshabilitar la protección contra eliminación desde la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En la página Configuración, desactive la Protección contra eliminación.

  6. Elija Guardar cambios.

Para activar o desactivar la protección contra la eliminación mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el deletion_protection.enabled atributo.

Modo de mitigación de desincronización

El modo de mitigación de desincronización protege a la aplicación de problemas causados por desincronización HTTP. El equilibrador de carga clasifica cada solicitud en función de su nivel de amenaza, permite solicitudes seguras y, además, mitiga el riesgo según lo especificado en el modo de mitigación que determine. La mitigación de desincronización incluye modos monitoreados, defensivos y más estrictos. El valor predeterminado es el modo defensivo, que proporciona una mitigación duradera contra la desincronización HTTP mientras mantiene la disponibilidad de la aplicación. Puede cambiar al modo más estricto para asegurarse de que la aplicación solo reciba solicitudes que cumplan con RFC 7230.

La biblioteca http_desync_guardian analiza las solicitudes HTTP para evitar ataques de desincronización HTTP. Para obtener más información, consulte HTTP Desync Guardian en. GitHub

Clasificaciones

Las clasificaciones son las siguientes:

  • Conforme: la solicitud cumple con RFC 7230 y no presenta amenazas de seguridad conocidas.

  • Aceptable: la solicitud no cumple con RFC 7230, pero no presenta amenazas de seguridad conocidas.

  • Ambigua: la solicitud no cumple con RFC 7230 y representa un riesgo, ya que varios servidores web y proxies podrían manejarla de manera diferente.

  • Grave: la solicitud supone un alto riesgo para la seguridad. El equilibrador de carga bloquea la solicitud, proporciona una respuesta 400 al cliente y cierra la conexión del cliente.

Si una solicitud no cumple con RFC 7230, el equilibrador de carga incrementa la métrica de DesyncMitigationMode_NonCompliant_Request_Count. Para obtener más información, consulte Métricas del Equilibrador de carga de aplicación.

La clasificación de cada solicitud se incluye en los registros de acceso al equilibrador de carga. Si la solicitud no cumple con los requisitos, los registros de acceso incluyen un código de motivo de clasificación. Para obtener más información, consulte Motivos de la clasificación.

Modos

En la siguiente tabla se describe cómo los Equilibradores de carga de aplicación tratan a las solicitudes según el modo y la clasificación.

Clasificación Modo monitoreado Modo defensivo Modo más estricto
Conforme Permitida Permitida Permitida
Aceptable Permitida Permitida Bloqueada
Ambigua Permitida Permitida¹ Bloqueada
Grave Permitida Bloqueada Bloqueada

¹ Enruta las solicitudes, pero cierra las conexiones del cliente y del destino. Puede incurrir en cargos adicionales si el equilibrador de carga recibe una gran cantidad de solicitudes ambiguas en el modo Defensivo. Esto se debe a que el aumento del número de conexiones nuevas por segundo contribuye a las unidades de capacidad del equilibrador de carga (LCU) utilizadas por hora. Puede usar la métrica NewConnectionCount para comparar la forma en que el equilibrador de carga establece nuevas conexiones en el modo Monitor y en el modo Defensivo.

Para actualizar el modo de mitigación de desincronización mediante la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Gestión de paquetes, para Modo de mitigación de desincronización, seleccione Defensivo, Más estricto o Monitor.

  6. Elija Guardar cambios.

Para actualizar el modo de mitigación desincronizado mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el routing.http.desync_mitigation_mode atributo establecido en monitordefensive, o. strictest

Conservación del encabezado del host

Cuando habilita el atributo Conservar encabezado de host, el Equilibrador de carga de aplicación conserva el encabezado Host de la solicitud HTTP y la envía a los destinos sin ninguna modificación. Si el Equilibrador de carga de aplicación recibe varios encabezados Host, los conserva todos. Las reglas de oyente se aplican solo al primer encabezado Host recibido.

De forma predeterminada, cuando el atributo Conservar el encabezado del host no está habilitado, el Equilibrador de carga de aplicación modifica el encabezado Host de la siguiente manera:

Cuando la conservación del encabezado del host no está habilitada y el puerto de oyente no es un puerto predeterminado: cuando no se utilizan los puertos predeterminados (puertos 80 o 443), agregamos el número de puerto al encabezado del host si el cliente aún no lo ha hecho. Por ejemplo, el encabezado Host de la solicitud HTTP con Host: www.example.com se modificaría en Host: www.example.com:8080 si el puerto de oyente no es un puerto predeterminado como 8080.

Cuando la conservación del encabezado del host no está habilitada y el puerto de oyente es el puerto predeterminado (puerto 80 o 443): en el caso de los puertos de oyente predeterminados (puerto 80 o 443), no agregamos el número de puerto al encabezado del host saliente. Se elimina cualquier número de puerto que ya estuviera en el encabezado del host entrante.

La siguiente tabla muestra más ejemplos de cómo los equilibradores de carga de aplicaciones tratan los encabezados de host en la solicitud HTTP en función del puerto de oyente.

Puerto del oyente Ejemplo de solicitud Encabezado de host en la solicitud La conservación del encabezado del host está deshabilitada (comportamiento predeterminado) La conservación del encabezado del host está habilitada
La solicitud se envía en el oyente HTTP/HTTPS predeterminado. GET /index.html HTTP/1.1 Host: example.com example.com example.com example.com
La solicitud se envía en el detector HTTP predeterminado y el encabezado del host tiene un puerto (por ejemplo, 80 o 443). GET /index.html HTTP/1.1 Host: example.com:80 example.com:80 example.com example.com:80
La solicitud tiene una ruta absoluta. GET https://dns_name/index.html HTTP/1.1 Host: example.com example.com dns_name example.com
La solicitud se envía en un puerto de escucha no predeterminado (por ejemplo, 8080) GET /index.html HTTP/1.1 Host: example.com example.com example.com:8080 example.com
La solicitud se envía a un puerto de oyente no predeterminado y el encabezado del host tiene un puerto (por ejemplo, 8080). GET /index.html HTTP/1.1 Host: example.com:8080 example.com:8080 example.com:8080 example.com:8080
Para habilitar la conservación del encabezado del host
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Equilibradores de carga.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Atributos, seleccione Editar.

  5. En Gestión de paquetes, active Conservar el encabezado del host.

  6. Elija Guardar cambios.

Para habilitar la conservación del encabezado del host mediante el AWS CLI

Utilice el modify-load-balancer-attributescomando con el routing.http.preserve_host_header.enabled atributo establecido entrue.

Equilibradores de carga de aplicaciones y AWS WAF

Puede usarlo AWS WAF con su Application Load Balancer para permitir o bloquear las solicitudes según las reglas de una lista de control de acceso web (ACL web). Para obtener más información, consulte Trabajar con ACL web en la Guía para desarrolladores de AWS WAF .

De forma predeterminada, si el balanceador de cargas no puede obtener una respuesta AWS WAF, devuelve un error HTTP 500 y no reenvía la solicitud. Si necesitas que el balanceador de cargas reenvíe las solicitudes a los destinos aunque no pueda contactar con ellos AWS WAF, puedes habilitar AWS WAF la integración. Para comprobar si tu balanceador de carga se integra con él AWS WAF, selecciona tu balanceador de carga en la pestaña Servicios integrados AWS Management Console y elige la pestaña correspondiente.

ACL web predefinidas

Al habilitar AWS WAF la integración, puede optar por crear automáticamente una nueva ACL web con reglas predefinidas. La ACL web predefinida incluye tres reglas AWS administradas que ofrecen protección contra las amenazas de seguridad más comunes.

  • AWSManagedRulesAmazonIpReputationList‐ El grupo de reglas de la lista de reputación IP de Amazon bloquea las direcciones IP que suelen estar asociadas a bots u otras amenazas. Para obtener más información, consulta el grupo de reglas gestionado por la lista de reputación IP de Amazon en la Guía para AWS WAF desarrolladores.

  • AWSManagedRulesCommonRuleSet‐ El grupo de reglas básico del conjunto de reglas (CRS) proporciona protección contra la explotación de una amplia gama de vulnerabilidades, incluidas algunas de las vulnerabilidades de alto riesgo y frecuentes que se describen en publicaciones de OWASP, como OWASP Top 10. Para obtener más información, consulte el grupo de reglas gestionado por el conjunto básico de reglas (CRS) en la Guía para desarrolladores.AWS WAF

  • AWSManagedRulesKnownBadInputsRuleSet‐ El grupo de reglas de entradas incorrectas conocidas bloquea los patrones de solicitudes que se sabe que no son válidos y que están asociados con la explotación o el descubrimiento de vulnerabilidades. Para obtener más información, consulte el grupo de reglas gestionadas con entradas incorrectas conocidas en la Guía para AWS WAF desarrolladores.

Para habilitar el AWS WAF uso de la consola
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Load Balancers.

  3. Seleccione el equilibrador de carga.

  4. En la pestaña Integraciones, expanda el Firewall de aplicaciones AWS web (WAF) y elija Asociar una ACL web de WAF.

  5. En ACL web, elija Crear automáticamente una ACL web predefinida o seleccione una ACL web existente.

  6. En Acción de regla, elija Bloquear o Contar.

  7. Seleccione Confirmar.

Para activar la apertura en caso de AWS WAF error, utilice la AWS CLI

Utilice el modify-load-balancer-attributescomando con el waf.fail_open.enabled atributo establecido entrue.