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
Manoj Kumar, Amazon Web Services
Récapitulatif
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, 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
Une 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 pour les compartiments Amazon S3 et les 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
Prérequis
Un actif Compte AWS
Autorisations dans AWS Identity and Access Management (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é dans le compte cible
Protection contre les programmes malveillants pour S3, activée 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é et configuré
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 et Supportabilité des fonctionnalités d'Amazon S3 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 via des groupes de sécurité uniquement.
Architecture
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é.

Le schéma suivant illustre le flux de travail suivant :
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.
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.
La fonction Lambda renvoie le compartiment
UploadBucketAmazon 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.L'utilisateur télécharge un fichier sur le serveur SFTP Transfer Family. Le fichier est stocké dans le compartiment
UploadBucketAmazon S3.GuardDuty analyse le fichier à la recherche de logiciels malveillants. Les résultats d'analyse potentiels sont
NO_THREATS_FOUNDTHREATS_FOUND,UNSUPPORTED,ACCESS_DENIED, etFAILED. Pour des exemples de résultats, consultez le résultat de l'analyse des objets S3 dans la GuardDuty documentation.Une EventBridge règle détecte l'événement du résultat du scan.
EventBridge lance la fonction Lambda de routage de fichiers.
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_FOUNDanalyse sont envoyés vers le compartimentCleanBucketAmazon S3.Les fichiers contenant un résultat d'
THREATS_FOUNDanalyse sont envoyés vers le compartimentMalwareBucketAmazon S3.Les fichiers dont le résultat de l'
UNSUPPORTEDanalyse est obtenu sont envoyés au compartimentErrorBucketAmazon S3.Les fichiers dont le résultat de l'
ACCESS_DENIEDanalyse est obtenu sont envoyés au compartimentErrorBucketAmazon S3.Les fichiers contenant un résultat d'
FAILEDanalyse sont envoyés vers le compartimentErrorBucketAmazon S3.
Tous les fichiers sont chiffrés avec un AWS KMS key.
Si un fichier a été envoyé au compartiment
MalwareBucketAmazon 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
Services AWS
Amazon vous CloudWatch aide à surveiller les indicateurs de vos AWS ressources et des applications que vous utilisez AWS en temps réel.
Amazon Cognito fournit des fonctionnalités d'authentification, d'autorisation et de gestion des utilisateurs pour les applications Web et mobiles.
Amazon EventBridge 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, des AWS Lambda fonctions, des points de terminaison d'invocation HTTP utilisant des destinations d'API ou des bus d'événements dans d'autres. Comptes AWS
Amazon GuardDuty 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) vous aide à créer et à contrôler des clés cryptographiques afin de protéger vos données.
AWS Lambda 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) 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) 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 Familyvous 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) 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
Bonnes pratiques
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 Cognito
Mise en œuvre AWS Shieldde la protection par déni de service (DDoS) distribué
Configuration AWS Configpour une surveillance continue de la conformité
Implémenter AWS CloudTrailpour une journalisation complète des API
Configurer Amazon GuardDuty pour détecter les menaces au-delà de l'analyse des malwares
Implémenter AWS Security Hubpour une gestion centralisée de la sécurité
Utilisation AWS Secrets Managerpour la gestion des informations d'identification
Mettre en œuvre la surveillance du trafic réseau grâce à la mise en miroir du trafic
Configurer Amazon Macie 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 Organizationspour la gestion de la sécurité multi-comptes
Épopées
| 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
| Développeur d'applications, DevOps ingénieur |
Créez la CloudFormation pile. |
| Administrateur cloud, DevOps ingénieur |
| Tâche | Description | Compétences requises |
|---|---|---|
Activez la protection contre les logiciels malveillants. |
| Administrateur du 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'utilisateurs dans la documentation Amazon Cognito. | Administrateur du cloud, administrateur AWS |
| Tâche | Description | Compétences requises |
|---|---|---|
Connectez-vous au point de terminaison du serveur SFTP. |
| Développeur d'applications, administrateur cloud, architecte cloud, DevOps ingénieur |
Résolution des problèmes
| Problème | Solution |
|---|---|
L'authentification de l'utilisateur échoue |
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. |
L'authentification SFTP échoue |
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. |
Accès au téléchargement de fichiers refusé |
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. |
Aucune analyse des logiciels malveillants |
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. |
Erreurs liées à la fonction Lambda |
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. |
Ressources connexes
Applications Web Transfer Family (documentation Transfer Family)
Informations supplémentaires
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>