

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
<a name="secure-file-transfers"></a>

*Manoj Kumar, Amazon Web Services*

## Resumen
<a name="secure-file-transfers-summary"></a>

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](https://docs.aws.amazon.com/guardduty/latest/ug/gdu-malware-protection-s3.html), 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
<a name="secure-file-transfers-prereqs"></a>

**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](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_settingup.html) en la cuenta de destino
+ Protección contra malware para S3, [activada](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection-s3-get-started-independent.html) 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](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) y [configurado](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**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](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection-s3-quotas-guardduty.html) y [Compatibilidad de las funciones de Amazon S3](https://docs.aws.amazon.com/guardduty/latest/ug/supported-s3-features-malware-protection-s3.html) 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
<a name="secure-file-transfers-architecture"></a>

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.

![Uso GuardDuty de Cognito para transferir archivos de forma segura a buckets de Amazon S3.](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/39d98ebe-2844-4ccd-a497-9b796b7da5e8/images/05567010-e189-40e7-acab-74e77c4f8525.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. 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.

1. Una función de Lambda inicia el proceso de autenticación y autorización y valida las credenciales del usuario con Amazon Cognito.

1. La función de Lambda devuelve el bucket `UploadBucket` de 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.

1. El usuario sube un archivo al servidor SFTP de Transfer Family. El archivo se almacena en el bucket de Amazon S3 `UploadBucket`.

1. GuardDuty escanea el archivo en busca de malware. Los posibles resultados del análisis son `NO_THREATS_FOUND`, `THREATS_FOUND`, `UNSUPPORTED`, `ACCESS_DENIED` y `FAILED`. Para ver ejemplos de resultados, consulte el [resultado del escaneo de objetos de S3](https://docs.aws.amazon.com/guardduty/latest/ug/monitor-with-eventbridge-s3-malware-protection.html#s3-object-scan-status-malware-protection-s3-ev) en la GuardDuty documentación.

1. Una EventBridge regla detecta el evento resultante del escaneo.

1. EventBridge inicia la función Lambda de enrutamiento de archivos.

1. 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_FOUND` se envían al bucket `CleanBucket` de Amazon S3.
   + Los archivos cuyo análisis devuelva el resultado `THREATS_FOUND` se envían al bucket `MalwareBucket` de Amazon S3.
   + Los archivos cuyo análisis devuelva el resultado `UNSUPPORTED` se envían al bucket `ErrorBucket` de Amazon S3.
   + Los archivos cuyo análisis devuelva el resultado `ACCESS_DENIED` se envían al bucket `ErrorBucket` de Amazon S3.
   + Los archivos cuyo análisis devuelva el resultado `FAILED` se envían al bucket `ErrorBucket` de Amazon S3.

   Todos los archivos se cifran con un. AWS KMS key

1. Si se envió un archivo al bucket `MalwareBucket` de 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)
<a name="secure-file-transfers-tools"></a>

**Servicios de AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 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](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) ofrece autenticación, autorización y administración de usuarios para aplicaciones móviles y web.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) 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](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) 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)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) le ayuda a crear y controlar claves criptográficas para proteger sus datos.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 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](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) 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)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) 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 Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)le 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)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 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](https://github.com/aws-samples/sample-secure-transfer-family-code).

## Prácticas recomendadas
<a name="secure-file-transfers-best-practices"></a>

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)](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa.html) para los usuarios de Amazon Cognito.
+ Se implementa [AWS Shield](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html)para la protección distribuida contra la denegación de servicio DDo
+ Configure [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) para supervisar continuamente el cumplimiento.
+ Implemente [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html) para un registro integral de API.
+ Configura [Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) para la detección de amenazas más allá del escaneo de malware
+ Implemente [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub-v2.html) para administrar la seguridad de forma centralizada
+ Use [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) para administrar las credenciales.
+ Implemente la supervisión del tráfico de red con [Creación de reflejo de tráfico](https://docs.aws.amazon.com/vpc/latest/mirroring/what-is-traffic-mirroring.html).
+ Configure [Amazon Macie](https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html) 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](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) para administrar la seguridad de varias cuentas.

## Epics
<a name="secure-file-transfers-epics"></a>

### Implementación de recursos
<a name="deploy-the-resources"></a>


| 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](https://github.com/aws-samples/sample-secure-transfer-family-code) colocarlo en tu estación de trabajo local:<pre>git clone https://github.com/aws-samples/sample-secure-transfer-family-code.git</pre> | Desarrollador de aplicaciones, ingeniero DevOps  | 
| Crea la CloudFormation pila. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | Administrador de la nube, DevOps ingeniero | 

### Configuración de recursos
<a name="configure-the-resources"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Active la protección contra malware. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | 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](https://docs.aws.amazon.com/cognito/latest/developerguide/managing-users.html) en la documentación de Amazon Cognito. | Administrador de la nube, administrador de AWS | 

### Probar el servidor SFTP
<a name="test-the-sftp-server"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Conéctese al punto de conexión del servidor SFTP. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | Desarrollador de aplicaciones, administrador de nube, arquitecto de nube, ingeniero DevOps  | 

## Resolución de problemas
<a name="secure-file-transfers-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Error en la autenticación del usuario | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-file-transfers.html)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](#secure-file-transfers-additional). | 
| Error en la autenticación del servidor SFTP | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-file-transfers.html)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](#secure-file-transfers-additional). | 
| Acceso a la subida de archivos denegado | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-file-transfers.html)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](#secure-file-transfers-additional). | 
| No se analiza el malware | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-file-transfers.html)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](#secure-file-transfers-additional). | 
| Errores de la función de Lambda | [See the AWS documentation website for more details](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/secure-file-transfers.html)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](#secure-file-transfers-additional). | 

## Recursos relacionados
<a name="secure-file-transfers-resources"></a>
+ [Transfer Family web apps](https://docs.aws.amazon.com/transfer/latest/userguide/web-app.html) (documentación de Transfer Family)

## Información adicional
<a name="secure-file-transfers-additional"></a>

**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>
```