So erstellen Sie einen SFTP-fähigen Server auf AWS
AWS Transfer Family unterstützt Secure File Transfer Protocol (SFTP), File Transfer Protocol over SSL (FTPS) und File Transfer Protocol (FTP) für die Übertragung von Dateien zu und von AWS S3 oder AWS EFS (Elastic File System).Es unterstützt DNS-Routing mit Amazon Route 53. Mit AWS Transfer Family entfällt der Aufwand für den Kauf und Betrieb eigener FTP-Server, stattdessen verwaltet es die Dateiinfrastruktur für Sie. Sie unterstützt die automatische Skalierung der Kapazität und sorgt für hohe Verfügbarkeit.
AWS Transfer Family ist ein vollständig von AWS verwalteter Service, der in Echtzeit skaliert, und Sie müssen keine
Lassen Sie uns 3 verschiedene Protokolle verstehen, die von AWS Transfer Family unterstützt werden.
- SFTP-Protokoll: Das Secure Shell File Transfer Protocol ist ein Netzwerkprotokoll, das für die sichere Übertragung von Daten über das Internet verwendet wird. Das Protokoll unterstützt die volle Sicherheits- und Authentifizierungsfunktionalität von SSH
- FTP-Protokoll: Das File Transfer Protocol (FTP) ist ein Netzwerkprotokoll, das für die Übertragung von Daten verwendet wird. FTP verwendet einen separaten Kanal für Steuer- und Datenübertragungen.
- FTPS-Protokoll: File Transfer Protocol over SSL ist eine Erweiterung von FTP. Es verwendet die kryptografischen Protokolle Transport Layer Security und Secure Sockets Layer, um den Datenverkehr zu verschlüsseln.
Sie können einen öffentlich zugänglichen Server erstellen oder einen Server in der VPC erstellen.
Sie können auch den Zugriff auf den Server mit AWS Identity and Access Management (IAM)-Richtlinien steuern. Diese Richtlinien können einer IAM-Rolle zugewiesen werden, die dann dem Benutzer zugeordnet wird.
Es fallen keine Vorabkosten an und Sie müssen nur für die Nutzung und die Protokolle zahlen, die Sie für den Zugriff auf Ihren Endpunkt aktiviert haben. Um mehr über die Preise zu erfahren, besuchen Sie die offizielle Seite von AWS hier.
In diesem Artikel sehen wir uns die Schritte zur Erstellung eines SFTP-fähigen Servers auf AWS an, der öffentlich zugänglich sein wird. Bevor Sie mit diesem Artikel fortfahren, wird vorausgesetzt, dass Sie mit IAM-Rollen, EC2-Instanzen und S3-Buckets vertraut sind.
Vorraussetzungen
- AWS-Konto(Erstellen Sie es, wenn Sie noch keines haben).
- Ubuntu EC2-Instanz (Klicken Sie hier, um zu erfahren, wie Sie eine Ubuntu EC2-Instanz auf AWS erstellen).
- IAM-Rolle mit Vollzugriff auf S3 (Klicken Sie hier, um zu erfahren, wie Sie eine IAM-Rolle erstellen).
- S3-Bucket (Klicken Sie hier, um zu erfahren, wie Sie einen S3-Bucket auf AWS erstellen).
Was müssen wir tun?
- Anmeldung bei AWS
- Erstellen Sie einen SFTP-Server
- Ändern Sie die Vertrauensbeziehungen der IAM-Richtlinie
- Erstellen Sie einen Ordner im S3-Bucket.
- Erzeugen Sie ein Key-Paar in der EC2-Instanz.
- Erstellen Sie einen Benutzer im SFTP-Server
- Testen Sie die Verbindung zum SFTP Server
- Löschen Sie den SFTP-Server
Anmeldung bei AWS
Klicken Sie hier, um zur Anmeldeseite zu gelangen, auf der Sie Ihre Anmeldedaten eingeben können, um sich in das Konto einzuloggen.
Sobald Sie sich erfolgreich in Ihr Konto eingeloggt haben, sehen Sie die Hauptverwaltungskonsole von AWS wie folgt und können die gewünschte Region auswählen, um einen SFTP-Server zu erstellen.
Erstellen eines SFTP-Servers
Suchen Sie im Suchfeld am oberen Rand des Bildschirms nach „Transfer Family“.
Sie sehen dann das Haupt-Dashboard der AWS Transfer Family wie folgt. Klicken Sie auf die Schaltfläche „Server erstellen“, um Ihren ersten SFTP-Server zu erstellen.
Wählen Sie hier das Protokoll aus, das Sie für den Server aktivieren möchten. Sie können mehrere Protokolle aktivieren, aber wir werden hier mit einem einzigen SFTP-Protokoll fortfahren. Klicken Sie auf die Schaltfläche „Next“, um fortzufahren.
Wählen Sie den Endpunkttyp entsprechend Ihren Anforderungen. Wenn Ihr Endpunkt öffentlich zugänglich sein soll, fahren Sie damit fort. Klicken Sie auf die Schaltfläche „Next“.
Wählen Sie den AWS-Speicherservice, in dem Ihre Daten gespeichert werden sollen. Hier werden wir mit Amazon S3 fortfahren. Klicken Sie auf die Schaltfläche „Next“, um fortzufahren.
Fahren Sie hier mit den Standardoptionen fort.
Überprüfen Sie die Konfiguration und klicken Sie auf die Schaltfläche „Server erstellen“. Dadurch wird ein SFTP-Server für Sie erstellt, der Erstellungsprozess wird einige Minuten dauern.
Ändern Sie die Vertrauensbeziehungen der IAM-Richtlinie
Der nächste Schritt besteht darin, die IAM-Richtlinie zu ändern, die vollen Zugriff auf die S3-Buckets hat. Gehen Sie zu „IAM role — > Trust relationships“ und bearbeiten Sie diese.
Ändern Sie den Service auf „transfer.amazonaws.com“, das Richtliniendokument sollte wie folgt aussehen.
Erstellen Sie einen Ordner im S3-Bucket.
Sehen Sie sich an, ob Sie einen S3-Bucket haben, in dem Sie Daten vom SFTP-Server speichern möchten.
Erzeugen Sie ein Key-Paar in der EC2-Instanz.
Der nächste Schritt besteht darin, ein Schlüsselpaar zu erzeugen, das für die Authentifizierung am SFTP-Server verwendet wird. Gehen Sie zu Ihrem Linux-Server und führen Sie den folgenden Befehl aus, um ein Schlüsselpaar zu erzeugen
ssh-keygen
cat ~/.ssh/id_rsa.pub
Holen Sie sich den öffentlichen Schlüssel, der im nächsten Schritt benötigt wird.
Anlegen eines Benutzers auf dem SFTP-Server
Gehen wir zu dem SFTP, den wir angelegt haben.
Klicken Sie auf die Schaltfläche „Benutzer hinzufügen“, um einen Benutzer anzulegen, der für die Authentifizierung und die Übertragung von Dateien auf S3 über den von uns erstellten SFTP-Server verwendet wird.
Der Endpunkt, den Sie hier sehen, wird für den Zugriff auf den SFTP-Server zur Datenübertragung verwendet. Behalten Sie diesen Endpunkt bei sich, der beim Zugriff auf den SFTP-Server benötigt wird.
Fügen Sie einen Benutzernamen hinzu, wählen Sie die IAM-Rolle, wählen Sie den S3-Bucket und einen Ordner darin, der als Home-Verzeichnis für den von uns angelegten Benutzer dienen wird. Fügen Sie den öffentlichen Schlüssel, den wir im vorherigen Schritt kopiert haben, im Teil „Öffentlicher SSH-Schlüssel“ hinzu.
Scrollen Sie auf der Seite nach unten und klicken Sie auf die Schaltfläche „Hinzufügen“. Dadurch wird ein Benutzer angelegt, der einen privaten Schlüssel benötigt, der mit dem öffentlichen Schlüssel verknüpft ist, den wir beim Anlegen des Benutzers hinzugefügt haben.
Testen Sie die Verbindung zum SFTP-ServerTesten Sie die Verbindung zum SFTP-Server
Gehen Sie zu dem Linux-Server, auf dem Sie das Schlüsselpaar erstellt haben, und verwenden Sie den folgenden Befehl, um sich mit dem SFTP-Server zu verbinden.
Hier müssen Sie den Endpunkt mit dem ändern, den Sie für Ihren SFTP-Server haben.
sftp -i ~/.ssh/id_rsa rahul-sftp-user@s-922b406852024d85a.server.transfer.eu-west-3.amazonaws.com
Sie können versuchen, Dateien mit dem folgenden Befehl hochzuladen, wobei die im folgenden Befehl verwendete Datei zum lokalen System gehört.
put /home/ubuntu/test-file
Mit dem obigen Befehl wird die Datei „/home/ubuntu/test-file“ vom lokalen System auf den SFTP-Server kopiert.
Sie können über die Konsole überprüfen, ob die Datei mit dem obigen „put“-Befehl in den S3-Bucket hochgeladen wurde oder nicht.
Löschen des SFTP-Servers
Wenn Sie Ihren SFTP-Server nicht mehr benötigen, können Sie ihn einfach löschen. Um den Server zu löschen, klicken Sie auf „Aktionen –> Löschen“.
Bestätigen Sie Ihre Löschaktion und klicken Sie auf die Schaltfläche „Löschen“. Sobald Sie den SFTP-Server gelöscht haben, können Sie ihn nicht mehr wiederherstellen, seien Sie also vorsichtig bei der Durchführung des Löschvorgangs.
Fazit
In diesem Artikel haben wir die Schritte zur Erstellung eines SFTP-Servers mit S3 als Backend gesehen. Wir haben einen Benutzer angelegt und ihm einen bestimmten S3-Bucket –> Ordner als Home-Verzeichnis zugewiesen. Wir haben gesehen, welche Änderungen erforderlich sind, damit die IAM-Rolle für den Benutzer verwendet werden kann.