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
![](images/pattern-img/9e67c805-cd64-4c08-8379-6abe13d8d5bb/images/4bcbbcde-bacd-423d-87ef-ef2c2333e6bf.png)
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
Tarea | Descripción | Habilidades 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 |
Tarea | Descripción | Habilidades 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, | 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 | 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. | Arquitecto de la nube |
Tarea | Descripción | Habilidades 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:
| Arquitecto de la nube |
Tarea | Descripción | Habilidades 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
Problema | Solució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