Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Sichere Dateiübertragungen mithilfe von Transfer Family, Amazon Cognito und GuardDuty
Manoj Kumar, Amazon Web Services
Übersicht
Mit dieser Lösung können Sie Dateien sicher über einen SFTP-Server übertragen, indem Sie. AWS Transfer Family Es umfasst automatisierte Malware-Scanfunktionen über Malware Protection for S3, eine Funktion von Amazon GuardDuty. Es wurde für Unternehmen entwickelt, die Dateien sicher mit externen Parteien austauschen und überprüfen müssen, ob alle eingehenden Dateien vor der Verarbeitung auf Malware gescannt werden.
Die mit diesem Muster bereitgestellten IaC-Vorlagen (Infrastructure as Code) helfen Ihnen bei der Bereitstellung von Folgendem:
Ein sicherer SFTP-Server mit Amazon Cognito Cognito-Authentifizierung über AWS Lambda
Amazon Simple Storage Service (Amazon S3) -Buckets für Uploads und eingehende Dateien, die auf Malware gescannt wurden
Eine auf Virtual Private Cloud (VPC) basierende Architektur mit öffentlichen und privaten Subnetzen in mehreren Availability Zones
IP-basierte Zugriffskontrolle für eingehenden und ausgehenden Verkehr mit konfigurierbaren Zulassungs- und Verweigerungslisten
Automatisiertes Scannen nach Schadsoftware durch GuardDuty
Intelligentes Datei-Routing auf der Grundlage von Scanergebnissen über Amazon EventBridge und Lambda
Benachrichtigungen in Echtzeit bei Sicherheitsvorfällen über Amazon Simple Notification Service (Amazon SNS)
Verschlüsselung für Amazon S3 S3-Buckets und Lambda-Umgebungsvariablen durch AWS Key Management Service ()AWS KMS
Amazon Virtual Private Cloud (Amazon VPC) -Endpunkte für den Zugriff ohne Internetzugriff
Umfassende Protokollierung durch CloudWatch Amazon-Integration
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein aktiver AWS-Konto
Berechtigungen in AWS Identity and Access Management (IAM) zur Ausführung der in diesem Muster beschriebenen Aktionen, einschließlich der Bereitstellung von AWS CloudFormation Vorlagen, die IAM-Rollen bereitstellen
GuardDuty, im Zielkonto aktiviert
Malware-Schutz für S3, im Zielkonto aktiviert
Mithilfe von Dienstkontingenten können Sie im Zielkonto Folgendes erstellen:
Eine VPC
Ein privates Subnetz
Ein öffentliches Subnetz
Drei elastische IP-Adressen
Ausreichende Lambda-Parallelitätsgrenzen
Eine gültige E-Mail-Adresse für sicherheitsrelevante Benachrichtigungen
(Optional) Eine Liste von IP-Adressen oder CIDR-Bereichen, die Sie zulassen oder verweigern möchten
(Optional) AWS Command Line Interface (AWS CLI), installiert und konfiguriert
Einschränkungen
Der Malware-Schutz für S3 ist an bestimmte Kontingente gebunden, z. B. an maximale Dateigrößen. Weitere Informationen finden Sie in der GuardDuty Dokumentation unter Kontingente im Malware-Schutz für S3 und Unterstützbarkeit der Amazon S3-Funktionen.
Diese Lösung verwendet nur die Authentifizierung mit Benutzername und Passwort von Amazon Cognito. Zertifikatsbasierte oder andere Authentifizierungsmethoden werden in dieser Vorlage nicht unterstützt. Standardmäßig konfiguriert diese Lösung keine Multi-Faktor-Authentifizierung (MFA).
Die Lösung implementiert eine IP-basierte Zugriffskontrolle nur über Sicherheitsgruppen.
Architektur
Das folgende Architekturdiagramm zeigt die Ressourcen, die in diesem Muster bereitgestellt werden. Diese Lösung verwendet Amazon Cognito für die Benutzerauthentifizierung und Autorisierung. Ein AWS Transfer Family SFTP-Server wird für Datei-Uploads verwendet. Dateien werden in Amazon S3 S3-Buckets gespeichert, und Amazon GuardDuty scannt die Dateien auf Malware. Amazon SNS sendet eine E-Mail-Benachrichtigung, wenn Malware erkannt wird.

Das Diagramm zeigt den folgenden Workflow:
Ein Benutzer stellt eine Verbindung zum SFTP-Serverendpunkt in her. AWS Transfer Family Dadurch wird der Authentifizierungsprozess mit dem Amazon Cognito Cognito-Benutzerpool eingeleitet.
Eine Lambda-Funktion initiiert den Authentifizierungs- und Autorisierungsprozess und validiert die Anmeldeinformationen des Benutzers mit Amazon Cognito.
Die Lambda-Funktion gibt den
UploadBucket
Amazon S3 S3-Bucket als Home-Verzeichnis zurück. Der Benutzer übernimmt die IAM-Rolle für den Transfer Family Family-Server, und die Lambda-Funktion benachrichtigt den Benutzer, dass er erfolgreich authentifiziert wurde.Der Benutzer lädt eine Datei auf den Transfer Family SFTP-Server hoch. Die Datei wird im
UploadBucket
Amazon S3 S3-Bucket gespeichert.GuardDuty scannt die Datei auf Malware. Die möglichen Scanergebnisse sind
NO_THREATS_FOUND
THREATS_FOUND
,UNSUPPORTED
,ACCESS_DENIED
, undFAILED
. Beispielergebnisse finden Sie in der GuardDuty Dokumentation unter Ergebnis des S3-Objektscans.Eine EventBridge Regel erkennt das Scanergebnis-Ereignis.
EventBridge initiiert die Lambda-Funktion für das File-Routing.
Die Lambda-Funktion verarbeitet das Ereignis und filtert die Dateien anhand der Scanergebnisse wie folgt:
Dateien mit einem
NO_THREATS_FOUND
Scanergebnis werden an denCleanBucket
Amazon S3 S3-Bucket gesendet.Dateien mit einem
THREATS_FOUND
Scanergebnis werden an denMalwareBucket
Amazon S3 S3-Bucket gesendet.Dateien mit einem
UNSUPPORTED
Scanergebnis werden an denErrorBucket
Amazon S3 S3-Bucket gesendet.Dateien mit einem
ACCESS_DENIED
Scanergebnis werden an denErrorBucket
Amazon S3 S3-Bucket gesendet.Dateien mit einem
FAILED
Scanergebnis werden an denErrorBucket
Amazon S3 S3-Bucket gesendet.
Alle Dateien sind mit einem verschlüsselt AWS KMS key.
Wenn eine Datei an den
MalwareBucket
Amazon S3 S3-Bucket gesendet wurde, initiiert die Lambda-Funktion ein Amazon SNS SNS-Thema. Das Amazon SNS SNS-Thema sendet eine E-Mail-Benachrichtigung an eine von Ihnen konfigurierte E-Mail-Adresse.
Tools
AWS-Services
Amazon CloudWatch hilft Ihnen dabei, die Kennzahlen Ihrer AWS Ressourcen und der Anwendungen, auf denen Sie laufen, AWS in Echtzeit zu überwachen.
Amazon Cognito bietet Authentifizierung, Autorisierung und Benutzerverwaltung für Web- und mobile Apps.
Amazon EventBridge ist ein serverloser Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Echtzeitdaten aus einer Vielzahl von Quellen verbinden können. Zum Beispiel AWS Lambda Funktionen, HTTP-Aufruf-Endpunkte, die API-Ziele verwenden, oder Event-Busse in anderen. AWS-Konten
Amazon GuardDuty ist ein Dienst zur kontinuierlichen Sicherheitsüberwachung, der Protokolle analysiert und verarbeitet, um unerwartete und potenziell nicht autorisierte Aktivitäten in Ihrer AWS Umgebung zu identifizieren.
AWS Key Management Service (AWS KMS) hilft Ihnen dabei, kryptografische Schlüssel zu erstellen und zu kontrollieren, um Ihre Daten zu schützen.
AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
Amazon Simple Notification Service (Amazon SNS) unterstützt Sie bei der Koordination und Verwaltung des Nachrichtenaustauschs zwischen Herausgebern und Kunden, einschließlich Webservern und E-Mail-Adressen.
Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
AWS Transfer Familyunterstützt Sie bei der Übertragung von Dateien in und aus AWS Speicherdiensten über die Protokolle SFTP, FTPS oder FTP.
Amazon Virtual Private Cloud (Amazon VPC) hilft Ihnen dabei, AWS Ressourcen in einem von Ihnen definierten virtuellen Netzwerk bereitzustellen. Dieses virtuelle Netzwerk entspricht einem herkömmlichen Netzwerk, wie Sie es in Ihrem Rechenzentrum betreiben würden, mit den Vorteilen der Verwendung der skalierbaren Infrastruktur von AWS.
Code-Repository
Der Code für dieses Muster ist im Repository GitHub AWS Transfer Family und der GuardDuty Malware Scanning Solution
Bewährte Methoden
Die bereitgestellte CloudFormation Vorlage wurde so konzipiert, dass sie viele AWS bewährte Methoden berücksichtigt, z. B. Berechtigungen mit den geringsten Rechten für IAM-Rollen und -Richtlinien, Verschlüsselung im Ruhezustand und bei der Übertragung sowie automatische Schlüsselrotation. Für Produktionsumgebungen sollten Sie die Implementierung der folgenden zusätzlichen Empfehlungen in Betracht ziehen:
MFA für Amazon Cognito Cognito-Benutzer aktivieren
Implementieren Sie AWS Shieldeinen Distributed-Denial-of-Service (DDoS) -Schutz
Konfigurieren Sie AWS Configfür eine kontinuierliche Compliance-Überwachung
Implementieren AWS CloudTrailSie eine umfassende API-Protokollierung
Richten Sie Amazon GuardDuty für die Erkennung von Bedrohungen ein, die über das Scannen von Malware hinausgeht
Implementieren AWS Security HubSie ein zentralisiertes Sicherheitsmanagement
AWS Secrets ManagerFür die Verwaltung von Anmeldeinformationen verwenden
Implementieren Sie die Überwachung des Netzwerkverkehrs mit Traffic Mirroring
Amazon Macie für die Erkennung und den Schutz sensibler Daten in Amazon S3 konfigurieren
Führen Sie regelmäßige Sicherheitsbewertungen und Penetrationstests durch
Erstellen Sie einen formellen Plan zur Reaktion auf Vorfälle
Implementieren Sie automatisiertes Patching für alle Komponenten
Führen Sie regelmäßige Sicherheitsschulungen für Administratoren durch
Richten Sie das Sicherheitsmanagement AWS Organizationsfür mehrere Konten ein
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Klonen Sie das Repository | Geben Sie den folgenden Befehl ein, um das Repository AWS Transfer Family und die GuardDuty Malware-Scanlösung
| App-Entwickler, DevOps Ingenieur |
Erstellen Sie den CloudFormation Stapel. |
| Cloud-Administrator, Ingenieur DevOps |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Schalten Sie den Malware-Schutz ein. |
| Cloud-Administrator, AWS-Administrator |
Fügen Sie Benutzer zum Benutzerpool hinzu. | Fügen Sie einen oder mehrere Benutzer zum Amazon Cognito Cognito-Benutzerpool hinzu. Anweisungen finden Sie in der Amazon Cognito Cognito-Dokumentation unter Benutzer in Ihrem Benutzerpool verwalten. | Cloud-Administrator, AWS-Administrator |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Connect zum SFTP-Serverendpunkt her. |
| App-Entwickler, Cloud-Administrator, Cloud-Architekt, DevOps Ingenieur |
Fehlerbehebung
Problem | Lösung |
---|---|
Die Benutzerauthentifizierung schlägt fehl |
Eine Liste der AWS CLI Befehle, die Ihnen bei der Durchführung dieser Schritte zur Problembehandlung helfen können, finden Sie im Abschnitt Zusätzliche Informationen unter Nützliche Befehle für die Problembehandlung. |
Die SFTP-Authentifizierung schlägt fehl |
Eine Liste der AWS CLI Befehle, die Ihnen bei der Durchführung dieser Schritte zur Fehlerbehebung helfen können, finden Sie im Abschnitt Zusätzliche Informationen unter Hilfreiche Befehle für die Problembehandlung. |
Der Zugriff auf das Hochladen von Dateien wurde verweigert |
Eine Liste der AWS CLI Befehle, die Ihnen bei der Durchführung dieser Schritte zur Fehlerbehebung helfen können, finden Sie im Abschnitt Zusätzliche Informationen unter Hilfreiche Befehle für die Problembehandlung. |
Kein Malware-Scan |
Eine Liste von AWS CLI Befehlen, die Ihnen bei der Durchführung dieser Schritte zur Fehlerbehebung helfen können, finden Sie unter Nützliche Befehle für die Fehlerbehebung im Abschnitt Zusätzliche Informationen. |
Lambda-Funktionsfehler |
Eine Liste der AWS CLI Befehle, die Ihnen bei der Durchführung dieser Schritte zur Problembehandlung helfen können, finden Sie im Abschnitt Zusätzliche Informationen unter Nützliche Befehle für die Problembehandlung. |
Zugehörige Ressourcen
Familien-Web-Apps übertragen (Dokumentation zu Transfer Family)
Zusätzliche Informationen
Nützliche Befehle für die Problembehandlung
Überprüfen Sie den Status eines CloudFormation Stacks:
aws cloudformation describe-stacks \ --stack-name <STACK_NAME>
Alle Benutzer in einem Amazon Cognito Cognito-Benutzerpool auflisten:
aws cognito-idp list-users \ --user-pool-id <USER_POOL_ID>
Logs für Lambda-Funktionen anzeigen:
aws logs describe-log-groups \ --log-group-name-prefix /aws/lambda/
Überprüfen Sie den Status von GuardDuty:
aws guardduty list-detectors
Überprüfen Sie die Sicherheitsgruppenregeln:
aws ec2 describe-security-groups \ --group-ids <SECURITY_GROUP_ID> \ --output table
Überprüfen Sie den Status des AWS Transfer Family Servers:
aws transfer describe-server \ --server-id <SERVER_ID>
Alle Dateien in einem Amazon S3 S3-Bucket auflisten:
aws s3 ls s3://<BUCKET_NAME>/ \ --recursive
Überprüfen Sie den Status einer EventBridge Regel:
aws events describe-rule \ --name <RULE_NAME>