Asegúrese de que los equilibradores de carga de AWS usen protocolos de escucha seguros (HTTPS, SSL/TLS) - Recomendaciones de AWS

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.

Asegúrese de que los equilibradores de carga de AWS usen protocolos de escucha seguros (HTTPS, SSL/TLS)

Creado por Chandini Penmetsa (AWS) y Purushotham G K (AWS)

Entorno: Producción

Tecnologías: seguridad, identidad, cumplimiento

Carga de trabajo: todas las demás cargas de trabajo

Servicios de AWS: Amazon SNS; AWS CloudWatch; CloudFormation Amazon; AWS Lambda; Elastic Load Balancing (ELB)

Resumen

En la nube de Amazon Web Services (AWS), el Equilibrador de carga elástico distribuye automáticamente el tráfico entrante de las aplicaciones entre varios destinos, como instancias de Amazon Elastic Compute Cloud (Amazon EC2), contenedores, direcciones IP y funciones de Lambda de AWS. Los equilibradores de carga emplean oyentes para definir los puertos y protocolos que usa el equilibrador de carga para aceptar el tráfico de los usuarios. Los equilibradores de carga de aplicación toman las decisiones de enrutamiento en la capa de aplicación y emplean protocolos HTTP/HTTPS. Los equilibradores de carga de red toman las decisiones de enrutamiento en la capa de transporte y emplean protocolo de control de transmisión (TCP), seguridad de la capa de transporte (TLS), protocolo de datagramas de usuario (UDP) o protocolos TCP_UDP. Los equilibradores de carga clásicos toman las decisiones de enrutamiento en la capa de transporte, mediante protocolos TCP o Secure Sockets Layer (SSL), o bien en la capa de aplicación, mediante HTTP/HTTPS.

Es posible que su organización tenga como requisito de seguridad o conformidad que los equilibradores de carga acepten el tráfico de los usuarios únicamente mediante protocolos seguros, como HTTPS o SSL/TLS.

Este patrón proporciona un control de seguridad que usa una EventBridge regla de Amazon para monitorear las llamadas a la CreateListener ModifyListener API para los balanceadores de carga de aplicaciones y los balanceadores de carga de red, CreateLoadBalancerListeners y las llamadas a la CreateLoadBalancer API para los balanceadores de carga clásicos. Si usa HTTP, TCP/UDP o TCP_UDP para el protocolo de escucha del equilibrador de carga, el control invoca una función de Lambda. La función de Lambda publica un mensaje en un tema de Amazon Simple Notification Service (Amazon SNS) para enviar una notificación con los detalles del equilibrador de carga.

Requisitos previos y limitaciones

Requisitos previos 

  • Una cuenta de AWS activa

  • La dirección de correo electrónico en la que desee recibir la notificación de infracción

  • Un bucket de Amazon Simple Storage Service (Amazon S3) para almacenar el archivo .zip del código Lambda.

Limitaciones

  • Este control de seguridad no comprueba los equilibradores de carga existentes a menos que se actualicen los oyentes del equilibrador de carga.

  • Este control de seguridad es regional, por lo que debe implementarse en las regiones de AWS que se desee supervisar.

Arquitectura

Pila de tecnología de destino

  • Función de Lambda

  • Tema de Amazon SNS

  • EventBridge regla

Arquitectura de destino

Automatizar y escalar

  • Si utiliza AWS Organizations, puede utilizar AWS Cloudformation StackSets para implementar esta plantilla en varias cuentas que desee que supervise.

Herramientas

  • AWS CloudFormation: AWS CloudFormation es un servicio que le ayuda a modelar y configurar los recursos de AWS mediante el uso de la infraestructura como código.

  • Amazon EventBridge: Amazon EventBridge ofrece un flujo de datos en tiempo real desde sus propias aplicaciones, aplicaciones de software como servicio (SaaS) y servicios de AWS, y dirige esos datos a objetivos como las funciones Lambda.

  • AWS Lambda: Lambda admite ejecutar código sin aprovisionar ni administrar servidores.

  • Amazon S3: Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos altamente escalable que se puede utilizar para una amplia gama de soluciones de almacenamiento, incluidos sitios web, aplicaciones móviles, copias de seguridad y lagos de datos.

  • Amazon SNS: Amazon Simple Notification Service (Amazon SNS) coordina y gestiona la entrega o el envío de mensajes entre publicadores y clientes, incluyendo los servidores web y las direcciones de correo electrónico. Los suscriptores reciben todos los mensajes publicados de los temas a los que están suscritos y todos los suscriptores de un tema reciben los mismos mensajes.

Prácticas recomendadas

Asegúrese de que el tema de SNS utilizado no sea de acceso público. Para obtener más información, consulte la documentación de AWS.

Epics

TareaDescripciónHabilidades requeridas

Elimine el bucket de S3.

En la consola de Amazon S3, seleccione o cree un bucket de S3 con un nombre único que no contenga barras diagonales en el inicio. Un nombre de bucket S3 es globalmente único y todas las cuentas de AWS comparten el espacio de nombres. Su bucket S3 tiene que estar en la misma Región que el equilibrador de carga que se está evaluando.

Arquitecto de la nube

Cargue el código Lambda en el bucket de S3.

Cargue el archivo .zip de código Lambda que se proporciona en la sección «Adjuntos» en el bucket de S3 definido.

Arquitecto de la nube

Implemente la CloudFormation plantilla de AWS.

En la CloudFormation consola de AWS, en la misma región de AWS que el bucket de S3, implemente la plantilla que se proporciona en la sección «Adjuntos». En la epic siguiente, proporcione los valores de los parámetros.

Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Ponga nombre al bucket de S3.

Escriba el nombre del bucket de S3 que ha creado en la primera epic.

Arquitecto de la nube

Proporcione el prefijo de Amazon S3.

Proporcione la ubicación del archivo .zip de código Lambda en su bucket de S3, sin barras diagonales iniciales (por ejemplo, <directory>/<file-name>.zip).

Arquitecto de la nube

Proporcione el ARN de tema de SNS.

Si desea usar un tema de SNS existente para notificaciones de infracción, proporcione el nombre de recurso de Amazon (ARN) del tema de SNS. Para crear un tema de SNS nuevo, mantenga el valor como None (el valor predeterminado).

Arquitecto de la nube

Proporcione una dirección de correo electrónico.

Proporcione una dirección de correo electrónico activa en la que desea recibir las notificaciones de Amazon SNS.

Arquitecto de la nube

Defina el nivel de registro.

Defina el nivel y la frecuencia de registro de la función de Lambda. Info designa mensajes informativos detallados sobre el progreso de la aplicación. Error designa los eventos de error que aún podrían permitir que la aplicación siguiera ejecutándose. Warning designa situaciones potencialmente dañinas.

Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Descargue la plantilla de .

Descarga la CloudFormation plantilla que se proporciona en la sección de adjuntos.

Arquitecto de la nube

Cree la pila.

En la misma región que el bucket de S3, vaya a la consola de CloudFormation servicio e implemente la plantilla descargada. Consulte la épica anterior para obtener más detalles sobre los parámetros.

Arquitecto de la nube

Verifique los recursos.

Una vez que la pila se haya creado por completo, acceda a la pestaña Recursos y verifique los recursos. La plantilla creará los siguientes recursos:

  • EventBridge regla

  • Función de Lambda

  • Rol de ejecución de Lambda

  • Invocar permiso de Lambda

Arquitecto de la nube
TareaDescripciónHabilidades requeridas

Confirmar la suscripción.

Cuando la plantilla se implementa correctamente, si se ha creado un nuevo tema de SNS, se envía un mensaje de correo electrónico de suscripción a la dirección de correo electrónico proporcionada en los parámetros. Debe confirmar esta suscripción de correo electrónico para recibir las notificaciones de infracciones.

Arquitecto de la nube

Solución de problemas

ProblemaSolución

Error al crear la pila. Se produjo un error durante GetObject. Código de error S3: PermanentRedirect. Mensaje de error S3: el bucket está en esta región: xx-xxxx-1. Utilice esta región para volver a intentar la solicitud.

Asegúrese de que la región del bucket de S3 y la región en la que se está implementando la pila sean las mismas.

Error al crear la pila. El parámetro de tiempo de ejecución de python3.6 ya no es compatible con la creación o actualización de funciones de Lambda de AWS.

Actualice la plantilla descargada en la línea 186 de la versión 3.6 a la 3.9 de Python.

Recursos relacionados

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip