

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Transferts de fichiers sécurisés à l'aide de Transfer Family, Amazon Cognito et GuardDuty
<a name="secure-file-transfers"></a>

*Manoj Kumar, Amazon Web Services*

## Résumé
<a name="secure-file-transfers-summary"></a>

Cette solution vous permet de transférer des fichiers en toute sécurité via un serveur SFTP en utilisant AWS Transfer Family. Il inclut des fonctionnalités d'analyse automatique des [programmes malveillants via Malware Protection for S3](https://docs.aws.amazon.com/guardduty/latest/ug/gdu-malware-protection-s3.html), une fonctionnalité d'Amazon GuardDuty. Il est conçu pour les entreprises qui ont besoin d'échanger des fichiers en toute sécurité avec des parties externes et de vérifier que tous les fichiers entrants sont analysés pour détecter les logiciels malveillants avant d'être traités.

Les modèles d'infrastructure sous forme de code (IaC) fournis avec ce modèle vous aident à déployer les éléments suivants :
+ Un serveur SFTP sécurisé avec authentification Amazon Cognito via AWS Lambda
+ Compartiments Amazon Simple Storage Service (Amazon S3) pour les téléchargements et les fichiers entrants qui ont été analysés pour détecter la présence de logiciels malveillants
+ Architecture basée sur le cloud privé virtuel (VPC) avec des sous-réseaux publics et privés répartis sur plusieurs zones de disponibilité
+ Contrôle d'accès basé sur IP pour le trafic entrant et sortant, avec des listes d'autorisation et de refus configurables
+ Analyse automatique des logiciels malveillants via GuardDuty
+ Routage intelligent des fichiers basé sur les résultats du scan via Amazon EventBridge et Lambda
+ Notifications en temps réel pour les incidents de sécurité via Amazon Simple Notification Service (Amazon SNS)
+ Chiffrement des compartiments Amazon S3 et des variables AWS Key Management Service d'environnement Lambda via ()AWS KMS
+ Points de terminaison Amazon Virtual Private Cloud (Amazon VPC) pour un accès sans exposition à Internet
+ Journalisation complète grâce à l' CloudWatch intégration avec Amazon

## Conditions préalables et limitations
<a name="secure-file-transfers-prereqs"></a>

**Conditions préalables**
+ Un actif Compte AWS
+ Autorisations dans Gestion des identités et des accès AWS (IAM) pour effectuer les actions décrites dans ce modèle, y compris le déploiement de AWS CloudFormation modèles fournissant des rôles IAM
+ GuardDuty, [activé](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_settingup.html) dans le compte cible
+ Protection contre les programmes malveillants pour S3, [activée](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection-s3-get-started-independent.html) dans le compte cible
+ Les quotas de service vous permettent de créer les éléments suivants dans le compte cible :
  + Un VPC
  + Un sous-réseau privé
  + Un sous-réseau public
  + Trois adresses IP élastiques
  + Limites de simultanéité Lambda suffisantes
+ Une adresse e-mail valide pour les notifications liées à la sécurité
+ (Facultatif) Une liste d'adresses IP ou de plages d'adresses CIDR que vous souhaitez autoriser ou refuser
+ (Facultatif) AWS Command Line Interface (AWS CLI), [installé](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) et [configuré](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**Limites**
+ La protection contre les programmes malveillants pour S3 est soumise à des quotas, tels que la taille maximale des fichiers. Pour plus d'informations, consultez les sections [Quotas dans la protection contre les programmes malveillants pour S3](https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection-s3-quotas-guardduty.html) et [Supportabilité des fonctionnalités d'Amazon S3](https://docs.aws.amazon.com/guardduty/latest/ug/supported-s3-features-malware-protection-s3.html) dans la GuardDuty documentation.
+ Cette solution utilise uniquement l'authentification par nom d'utilisateur et mot de passe Amazon Cognito. Les méthodes d'authentification basées sur des certificats ou autres ne sont pas prises en charge dans ce modèle. Par défaut, cette solution ne configure pas l'authentification multifactorielle (MFA).
+ La solution met en œuvre un contrôle d'accès basé sur IP uniquement par le biais de groupes de sécurité.

## Architecture
<a name="secure-file-transfers-architecture"></a>

Le schéma d'architecture suivant montre les ressources déployées selon ce modèle. Cette solution utilise Amazon Cognito pour l'authentification et l'autorisation des utilisateurs. Un serveur AWS Transfer Family SFTP est utilisé pour les téléchargements de fichiers. Les fichiers sont stockés dans des compartiments Amazon S3 et Amazon GuardDuty analyse les fichiers à la recherche de logiciels malveillants. Amazon SNS envoie une notification par e-mail si un logiciel malveillant est détecté.

![Utilisation GuardDuty de Cognito pour transférer des fichiers en toute sécurité vers des compartiments Amazon S3.](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/images/pattern-img/39d98ebe-2844-4ccd-a497-9b796b7da5e8/images/05567010-e189-40e7-acab-74e77c4f8525.png)


Le schéma suivant illustre le flux de travail suivant :

1. Un utilisateur se connecte au point de terminaison du serveur SFTP dans AWS Transfer Family. Cela lance le processus d'authentification auprès du groupe d'utilisateurs Amazon Cognito.

1. Une fonction Lambda lance le processus d'authentification et d'autorisation et valide les informations d'identification de l'utilisateur auprès d'Amazon Cognito.

1. La fonction Lambda renvoie le compartiment `UploadBucket` Amazon S3 en tant que répertoire de base. L'utilisateur assume le rôle IAM pour le serveur Transfer Family, et la fonction Lambda indique à l'utilisateur qu'il a été authentifié avec succès.

1. L'utilisateur télécharge un fichier sur le serveur SFTP Transfer Family. Le fichier est stocké dans le compartiment `UploadBucket` Amazon S3.

1. GuardDuty analyse le fichier à la recherche de logiciels malveillants. Les résultats d'analyse potentiels sont `NO_THREATS_FOUND``THREATS_FOUND`,`UNSUPPORTED`,`ACCESS_DENIED`, et`FAILED`. Pour des exemples de résultats, consultez le [résultat de l'analyse des objets S3](https://docs.aws.amazon.com/guardduty/latest/ug/monitor-with-eventbridge-s3-malware-protection.html#s3-object-scan-status-malware-protection-s3-ev) dans la GuardDuty documentation.

1. Une EventBridge règle détecte l'événement du résultat du scan.

1. EventBridge lance la fonction Lambda de routage de fichiers.

1. La fonction Lambda traite l'événement et filtre les fichiers en fonction des résultats de l'analyse comme suit :
   + Les fichiers contenant un résultat d'`NO_THREATS_FOUND`analyse sont envoyés vers le compartiment `CleanBucket` Amazon S3.
   + Les fichiers contenant un résultat d'`THREATS_FOUND`analyse sont envoyés vers le compartiment `MalwareBucket` Amazon S3.
   + Les fichiers dont le résultat de l'`UNSUPPORTED`analyse est obtenu sont envoyés au compartiment `ErrorBucket` Amazon S3.
   + Les fichiers dont le résultat de l'`ACCESS_DENIED`analyse est obtenu sont envoyés au compartiment `ErrorBucket` Amazon S3.
   + Les fichiers contenant un résultat d'`FAILED`analyse sont envoyés vers le compartiment `ErrorBucket` Amazon S3.

   Tous les fichiers sont chiffrés avec un AWS KMS key.

1. Si un fichier a été envoyé au compartiment `MalwareBucket` Amazon S3, la fonction Lambda lance une rubrique Amazon SNS. La rubrique Amazon SNS envoie une notification par e-mail à une adresse e-mail que vous configurez.

## Outils
<a name="secure-file-transfers-tools"></a>

**Services AWS**
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) vous CloudWatch aide à surveiller les indicateurs de vos AWS ressources et des applications que vous utilisez AWS en temps réel.
+ [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html) assure l'authentification, l'autorisation et la gestion des utilisateurs pour les applications Web et mobiles.
+ [Amazon EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-what-is.html) est un service de bus d'événements sans serveur qui vous permet de connecter vos applications à des données en temps réel provenant de diverses sources. Par exemple, AWS Lambda des fonctions, des points de terminaison d'appel HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres. Comptes AWS
+ [Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) est un service de surveillance continue de la sécurité qui analyse et traite les journaux afin d'identifier les activités inattendues et potentiellement non autorisées dans votre AWS environnement.
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.
+ [Amazon Simple Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) vous aide à coordonner et à gérer l'échange de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
+ [AWS Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/what-is-aws-transfer-family.html)vous permet de transférer des fichiers vers et depuis les services de AWS stockage via les protocoles SFTP, FTPS ou FTP.
+ [Amazon Virtual Private Cloud (Amazon VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) vous aide à lancer AWS des ressources dans un réseau virtuel que vous avez défini. Ce réseau virtuel ressemble à un réseau traditionnel que vous pourriez exécuter dans votre propre centre de données et présente l'avantage d'utiliser l'infrastructure évolutive d' AWS.

**Référentiel de code**

Le code de ce modèle est disponible dans le référentiel GitHub [AWS Transfer Family et GuardDuty Malware Scanning Solution](https://github.com/aws-samples/sample-secure-transfer-family-code).

## Bonnes pratiques
<a name="secure-file-transfers-best-practices"></a>

Le CloudFormation modèle fourni est conçu pour intégrer de nombreuses bonnes AWS pratiques, telles que les autorisations de moindre privilège pour les rôles et les politiques IAM, le chiffrement au repos et en transit, et la rotation automatique des clés. Pour les environnements de production, envisagez de mettre en œuvre les recommandations supplémentaires suivantes :
+ Activer le [MFA pour les utilisateurs d'Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa.html) Cognito
+ Mise en œuvre [AWS Shield](https://docs.aws.amazon.com/waf/latest/developerguide/shield-chapter.html)de la protection par déni de service (DDoS) distribué
+ Configuration [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)pour une surveillance continue de la conformité
+ Implémenter [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)pour une journalisation complète des API
+ Configurer [Amazon GuardDuty](https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html) pour détecter les menaces au-delà de l'analyse des malwares
+ Implémenter [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub-v2.html)pour une gestion centralisée de la sécurité
+ Utilisation [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)pour la gestion des informations d'identification
+ Mettre en œuvre la surveillance du trafic réseau grâce à la mise en [miroir du trafic](https://docs.aws.amazon.com/vpc/latest/mirroring/what-is-traffic-mirroring.html)
+ Configurer [Amazon Macie](https://docs.aws.amazon.com/macie/latest/user/what-is-macie.html) pour la découverte et la protection des données sensibles dans Amazon S3
+ Mettez en œuvre des évaluations de sécurité et des tests de pénétration réguliers
+ Établissez un plan de réponse aux incidents officiel
+ Implémenter l'application automatique de correctifs pour tous les composants
+ Organiser des formations régulières en matière de sécurité pour les administrateurs
+ Configuration [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)pour la gestion de la sécurité multi-comptes

## Épopées
<a name="secure-file-transfers-epics"></a>

### Déployez les ressources
<a name="deploy-the-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Pour cloner le référentiel. | Entrez la commande suivante pour cloner le référentiel de [solutions AWS Transfer Family d'analyse des GuardDuty programmes malveillants sur](https://github.com/aws-samples/sample-secure-transfer-family-code) votre poste de travail local :<pre>git clone https://github.com/aws-samples/sample-secure-transfer-family-code.git</pre> | Développeur d'applications, DevOps ingénieur | 
| Créez la CloudFormation pile. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | Administrateur cloud, DevOps ingénieur | 

### Configuration des ressources
<a name="configure-the-resources"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Activez la protection contre les logiciels malveillants. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | Administrateur cloud, administrateur AWS | 
| Ajoutez des utilisateurs au groupe d'utilisateurs. | Ajoutez un ou plusieurs utilisateurs au groupe d'utilisateurs Amazon Cognito. Pour obtenir des instructions, consultez [la section Gestion des utilisateurs de votre groupe d'](https://docs.aws.amazon.com/cognito/latest/developerguide/managing-users.html)utilisateurs dans la documentation Amazon Cognito. | Administrateur cloud, administrateur AWS | 

### Testez le serveur SFTP
<a name="test-the-sftp-server"></a>


| Sous-tâche | Description | Compétences requises | 
| --- | --- | --- | 
| Connectez-vous au point de terminaison du serveur SFTP. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-file-transfers.html) | Développeur d'applications, administrateur cloud, architecte cloud, DevOps ingénieur | 

## Résolution des problèmes
<a name="secure-file-transfers-troubleshooting"></a>


| Problème | Solution | 
| --- | --- | 
| L'authentification de l'utilisateur échoue | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Pour obtenir la liste des AWS CLI commandes qui peuvent vous aider à effectuer ces étapes de résolution des problèmes, voir *Commandes utiles pour le dépannage* dans la section [Informations supplémentaires](#secure-file-transfers-additional). | 
| L'authentification SFTP échoue | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Pour obtenir la liste des AWS CLI commandes qui peuvent vous aider à effectuer ces étapes de résolution des problèmes, voir *Commandes utiles pour le dépannage* dans la section [Informations supplémentaires](#secure-file-transfers-additional). | 
| Accès au téléchargement de fichiers refusé | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Pour obtenir la liste des AWS CLI commandes qui peuvent vous aider à effectuer ces étapes de résolution des problèmes, voir *Commandes utiles pour le dépannage* dans la section [Informations supplémentaires](#secure-file-transfers-additional). | 
| Aucune analyse des logiciels malveillants | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Pour obtenir la liste des AWS CLI commandes qui peuvent vous aider à effectuer ces étapes de résolution des problèmes, voir *Commandes utiles pour le dépannage* dans la section [Informations supplémentaires](#secure-file-transfers-additional). | 
| Erreurs liées à la fonction Lambda | [See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/prescriptive-guidance/latest/patterns/secure-file-transfers.html)Pour obtenir la liste des AWS CLI commandes qui peuvent vous aider à effectuer ces étapes de résolution des problèmes, voir *Commandes utiles pour le dépannage* dans la section [Informations supplémentaires](#secure-file-transfers-additional). | 

## Ressources connexes
<a name="secure-file-transfers-resources"></a>
+ [Applications Web Transfer Family](https://docs.aws.amazon.com/transfer/latest/userguide/web-app.html) (documentation Transfer Family)

## Informations supplémentaires
<a name="secure-file-transfers-additional"></a>

**Commandes utiles pour le dépannage**

Vérifiez l'état d'une CloudFormation pile :

```
aws cloudformation describe-stacks \
  --stack-name <STACK_NAME>
```

Répertoriez tous les utilisateurs d'un groupe d'utilisateurs Amazon Cognito :

```
aws cognito-idp list-users \
  --user-pool-id <USER_POOL_ID>
```

Afficher les journaux des fonctions Lambda :

```
aws logs describe-log-groups \
  --log-group-name-prefix /aws/lambda/
```

Vérifiez l'état de GuardDuty :

```
aws guardduty list-detectors
```

Vérifiez les règles du groupe de sécurité :

```
aws ec2 describe-security-groups \
  --group-ids <SECURITY_GROUP_ID> \
  --output table
```

Vérifiez l'état du AWS Transfer Family serveur :

```
aws transfer describe-server \
  --server-id <SERVER_ID>
```

Répertoriez tous les fichiers d'un compartiment Amazon S3 :

```
aws s3 ls s3://<BUCKET_NAME>/ \
  --recursive
```

Vérifiez le statut d'une EventBridge règle :

```
aws events describe-rule \
  --name <RULE_NAME>
```