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.
Proteja las transferencias de archivos mediante Transfer Family, Amazon Cognito y GuardDuty
Manoj Kumar, Amazon Web Services
Resumen
Esta solución le ayuda a transferir archivos de forma segura a través de un servidor SFTP mediante el uso de. AWS Transfer Family Incluye capacidades automatizadas de escaneo de malware a través de Malware Protection for S3, una función de Amazon GuardDuty. Está diseñada para organizaciones que necesitan intercambiar archivos de forma segura con terceros y validar que todos los archivos entrantes se analicen en busca de malware antes de procesarlos.
Las plantillas de infraestructura como código (IaC) que se proporcionan con este patrón le permiten implementar lo siguiente:
Un servidor SFTP seguro con autenticación de Amazon Cognito mediante AWS Lambda
Buckets de Amazon Simple Storage Service (Amazon S3) para archivos subidos y entrantes que se hayan analizado en busca de malware.
Una arquitectura basada en nubes privadas virtuales (VPC) configurada con subredes públicas y privadas en varias zonas de disponibilidad.
Control de acceso basado en IP para el tráfico de entrada y salida, con listas configurables de permisos y rechazos.
Escaneo automatizado de malware mediante GuardDuty
Enrutamiento inteligente de archivos basado en los resultados del escaneo a través de Amazon EventBridge y Lambda
Notificaciones en tiempo real de incidentes de seguridad a través de Amazon Simple Notification Service (Amazon SNS).
Cifrado de buckets de Amazon S3 y variables AWS Key Management Service de entorno Lambda mediante ()AWS KMS
Puntos de conexión de Amazon Virtual Private Cloud (Amazon VPC) para acceso sin exposición a Internet.
Registro integral a través de la CloudWatch integración de Amazon
Requisitos previos y limitaciones
Requisitos previos
Un activo Cuenta de AWS
Permisos en AWS Identity and Access Management (IAM) para realizar las acciones descritas en este patrón, incluida la implementación de AWS CloudFormation plantillas que aprovisionen funciones de IAM
GuardDuty, activado en la cuenta de destino
Protección contra malware para S3, activada en la cuenta de destino.
Service Quotas le permite crear lo siguiente en la cuenta de destino:
Una VPC
Una subred privada
Una subred pública
Tres direcciones IP elásticas
Límites de simultaneidad de Lambda suficientes
Una dirección de correo electrónico válida para las notificaciones relacionadas con la seguridad
(Opcional) Una lista de direcciones IP o rangos de CIDR que desee permitir o denegar
(Opcional) AWS Command Line Interface (AWS CLI), instalado y configurado
Limitaciones
Protección contra malware para S3 se rige por cuotas, como el tamaño máximo de los archivos. Para obtener más información, consulte Cuotas de protección contra malware para S3 y Compatibilidad de las funciones de Amazon S3 en la GuardDuty documentación.
Esta solución utiliza únicamente la autenticación de nombre de usuario y contraseña de Amazon Cognito. Esta plantilla no admite métodos de autenticación basados en certificados ni de otro tipo. De forma predeterminada, esta solución no configura la autenticación multifactor (MFA).
La solución implementa el control de acceso basado en IP únicamente a través de grupos de seguridad.
Arquitectura
El siguiente diagrama de arquitectura muestra los recursos que se implementan en este patrón. Esta solución utiliza Amazon Cognito para la autenticación y autorización de usuarios. Se utiliza un servidor AWS Transfer Family SFTP para la carga de archivos. Los archivos se almacenan en depósitos de Amazon S3 y Amazon los GuardDuty analiza en busca de malware. Amazon SNS envía una notificación por correo electrónico si se detecta malware.

En el diagrama, se muestra el siguiente flujo de trabajo:
Un usuario se conecta al punto final del servidor SFTP en. AWS Transfer Family Esto inicia el proceso de autenticación con el grupo de usuarios de Amazon Cognito.
Una función de Lambda inicia el proceso de autenticación y autorización y valida las credenciales del usuario con Amazon Cognito.
La función de Lambda devuelve el bucket
UploadBucketde Amazon S3 como directorio principal. El usuario asume el rol de IAM para el servidor de Transfer Family, y la función de Lambda notifica al usuario que se ha autenticado correctamente.El usuario sube un archivo al servidor SFTP de Transfer Family. El archivo se almacena en el bucket de Amazon S3
UploadBucket.GuardDuty escanea el archivo en busca de malware. Los posibles resultados del análisis son
NO_THREATS_FOUND,THREATS_FOUND,UNSUPPORTED,ACCESS_DENIEDyFAILED. Para ver ejemplos de resultados, consulte el resultado del escaneo de objetos de S3 en la GuardDuty documentación.Una EventBridge regla detecta el evento resultante del escaneo.
EventBridge inicia la función Lambda de enrutamiento de archivos.
La función de Lambda procesa el evento y filtra los archivos en función de los resultados del análisis de la siguiente manera:
Los archivos cuyo análisis devuelva el resultado
NO_THREATS_FOUNDse envían al bucketCleanBucketde Amazon S3.Los archivos cuyo análisis devuelva el resultado
THREATS_FOUNDse envían al bucketMalwareBucketde Amazon S3.Los archivos cuyo análisis devuelva el resultado
UNSUPPORTEDse envían al bucketErrorBucketde Amazon S3.Los archivos cuyo análisis devuelva el resultado
ACCESS_DENIEDse envían al bucketErrorBucketde Amazon S3.Los archivos cuyo análisis devuelva el resultado
FAILEDse envían al bucketErrorBucketde Amazon S3.
Todos los archivos se cifran con un. AWS KMS key
Si se envió un archivo al bucket
MalwareBucketde Amazon S3, la función de Lambda inicia un tema de Amazon SNS. El tema de Amazon SNS envía una notificación por correo electrónico a una dirección de correo electrónico que configure.
Tools (Herramientas)
Servicios de AWS
Amazon le CloudWatch ayuda a supervisar las métricas de sus AWS recursos y las aplicaciones en las que se ejecuta AWS en tiempo real.
Amazon Cognito ofrece autenticación, autorización y administración de usuarios para aplicaciones móviles y web.
Amazon EventBridge es un servicio de bus de eventos sin servidor que le ayuda a conectar sus aplicaciones con datos en tiempo real de diversas fuentes. Por ejemplo, AWS Lambda funciones, puntos finales de invocación HTTP que utilizan destinos de API o buses de eventos en otros. Cuentas de AWS
Amazon GuardDuty es un servicio de supervisión continua de la seguridad que analiza y procesa los registros para identificar actividades inesperadas y potencialmente no autorizadas en su AWS entorno.
AWS Key Management Service (AWS KMS) le ayuda a crear y controlar claves criptográficas para proteger sus datos.
AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.
Amazon Simple Notification Service (Amazon SNS) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.
AWS Transfer Familyle ayuda a transferir archivos dentro y fuera de los servicios de AWS almacenamiento a través de los protocolos SFTP, FTPS o FTP.
Amazon Virtual Private Cloud (Amazon VPC) le ayuda a lanzar AWS recursos en una red virtual que haya definido. Esa red virtual es similar a la red tradicional que utiliza en su propio centro de datos, con los beneficios de usar la infraestructura escalable de AWS.
Repositorio de código
El código de este patrón está disponible en el GitHub AWS Transfer Family repositorio de soluciones de escaneo de GuardDuty malware
Prácticas recomendadas
La CloudFormation plantilla proporcionada está diseñada para incorporar muchas de las AWS mejores prácticas, como los permisos con privilegios mínimos para las funciones y políticas de IAM, el cifrado en reposo y en tránsito y la rotación automática de claves. En el caso de los entornos de producción, considere implementar las siguientes recomendaciones adicionales:
Habilite la autenticación multifactor (MFA) para los usuarios de Amazon Cognito.
Se implementa AWS Shieldpara la protección distribuida contra la denegación de servicio DDo
Configure AWS Config para supervisar continuamente el cumplimiento.
Implemente AWS CloudTrail para un registro integral de API.
Configura Amazon GuardDuty para la detección de amenazas más allá del escaneo de malware
Implemente AWS Security Hub CSPM para administrar la seguridad de forma centralizada
Use AWS Secrets Manager para administrar las credenciales.
Implemente la supervisión del tráfico de red con Creación de reflejo de tráfico.
Configure Amazon Macie para detectar información confidencial y protegerla en Amazon S3.
Implemente evaluaciones de seguridad y pruebas de penetración periódicas.
Defina plan formal de respuesta a incidentes.
Implemente parches automatizados para todos los componentes.
Imparta formación periódica sobre seguridad a los administradores.
Configure AWS Organizations para administrar la seguridad de varias cuentas.
Epics
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Clonar el repositorio. | Introduce el siguiente comando para clonar el repositorio de soluciones de escaneo de GuardDuty malware AWS Transfer Family y
| Desarrollador de aplicaciones, ingeniero DevOps |
Crea la CloudFormation pila. |
| Administrador de la nube, DevOps ingeniero |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Active la protección contra malware. |
| Administrador de la nube, administrador de AWS |
Agregue usuarios al grupo de usuarios. | Agregue uno o más usuarios al grupo de usuarios de Amazon Cognito. Para obtener instrucciones, consulte Managing users in your user pool en la documentación de Amazon Cognito. | Administrador de la nube, administrador de AWS |
| Tarea | Descripción | Habilidades requeridas |
|---|---|---|
Conéctese al punto de conexión del servidor SFTP. |
| Desarrollador de aplicaciones, administrador de nube, arquitecto de nube, ingeniero DevOps |
Resolución de problemas
| Problema | Solución |
|---|---|
Error en la autenticación del usuario |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
Error en la autenticación del servidor SFTP |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
Acceso a la subida de archivos denegado |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
No se analiza el malware |
Para ver una lista de AWS CLI los comandos que pueden ayudarte a realizar estos pasos de solución de problemas, consulta la sección Comandos útiles para la solución de problemas en la sección de información adicional. |
Errores de la función de Lambda |
Para obtener una lista de AWS CLI los comandos que pueden ayudarle a realizar estos pasos de solución de problemas, consulte Comandos útiles para la solución de problemas en la sección de información adicional. |
Recursos relacionados
Transfer Family web apps (documentación de Transfer Family)
Información adicional
Comandos útiles para solucionar problemas
Comprueba el estado de una CloudFormation pila:
aws cloudformation describe-stacks \ --stack-name <STACK_NAME>
Haga una lista con todos los usuarios de un grupo de usuarios de Amazon Cognito:
aws cognito-idp list-users \ --user-pool-id <USER_POOL_ID>
Vea los registros de funciones de Lambda:
aws logs describe-log-groups \ --log-group-name-prefix /aws/lambda/
Compruebe el estado de GuardDuty:
aws guardduty list-detectors
Compruebe las reglas del grupo de seguridad:
aws ec2 describe-security-groups \ --group-ids <SECURITY_GROUP_ID> \ --output table
Compruebe el estado del AWS Transfer Family servidor:
aws transfer describe-server \ --server-id <SERVER_ID>
Haga una lista con todos los archivos de un bucket de Amazon S3:
aws s3 ls s3://<BUCKET_NAME>/ \ --recursive
Compruebe el estado de una EventBridge regla:
aws events describe-rule \ --name <RULE_NAME>