Amazon S3-Buckets über SFTP nutzen: Dateien hoch- und herunterladen
Hier ist ein ausführliches Tutorial, wie du den AWS Transfer Family Service nutzt, um per SFTP auf deine Amazon S3 Buckets zuzugreifen.
Amazon S3 bietet von Haus aus keinen direkten SFTP-Zugang. Um dies zu ermöglichen, nutzt man den Service AWS Transfer Family. Dies ist besonders nützlich, wenn du Partnern oder internen Systemen Zugriff auf S3 gewähren möchtest, die nur das SFTP-Protokoll unterstützen.
Voraussetzungen
- Ein aktives AWS-Konto.
- Ein bestehender S3-Bucket (oder du erstellst einen neuen).
- Ein Tool zur Generierung von SSH-Schlüsseln (z.B. Terminal unter Linux/Mac oder PuTTYgen unter Windows).
- Ein SFTP-Client (z.B. FileZilla oder WinSCP).
Schritt 1: S3-Bucket vorbereiten
Falls noch nicht geschehen, erstelle einen Bucket, auf den zugegriffen werden soll.
- Gehe zur S3 Konsole.
- Klicke auf Create bucket.
- Vergebe einen Namen (z. B.
mein-sftp-storage-bucket) und wähle die Region.
Schritt 2: IAM-Rolle und Richtlinie erstellen
Der SFTP-Server benötigt die Berechtigung, auf den S3-Bucket zuzugreifen.
- Gehe zur IAM Konsole -> Policies -> Create policy.
- Wähle den Tab JSON und füge folgendes ein (ersetze
DEIN-BUCKET-NAMEdurch deinen echten Bucket-Namen):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::DEIN-BUCKET-NAME" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::DEIN-BUCKET-NAME/*" } ] } - Speichere die Policy (z. B. als
SFTP-S3-Access-Policy). - Gehe zu Roles -> Create role.
- Wähle AWS Service und als Anwendungsfall Transfer.
- Suche nach der soeben erstellten Policy und verknüpfe sie.
- Benenne die Rolle (z. B.
SFTP-S3-Role).
Schritt 3: SSH-Schlüsselpaar generieren
Für SFTP bei AWS wird eine schlüsselbasierte Authentifizierung benötigt (Passwörter werden standardmäßig nicht unterstützt).
- Linux/Mac Terminal:
ssh-keygen -P "" -f sftp-keyDies erstelltsftp-key(privat) undsftp-key.pub(öffentlich). - Windows (PuTTYgen):
Generiere ein Paar und speichere den Public Key als Textdatei und den Private Key als
.ppk.
Schritt 4: AWS Transfer Family Server erstellen
- Suche in der AWS Console nach AWS Transfer Family.
- Klicke auf Create server.
- Wähle SFTP (SSH File Transfer Protocol).
- Wähle Service managed als Identity Provider.
- Wähle Publicly accessible (außer du möchtest den Zugriff auf eine VPC beschränken).
- Klicke auf Create. Der Status wird nach kurzer Zeit auf
Onlinespringen.
Schritt 5: SFTP-Benutzer hinzufügen
- Klicke in der Transfer Family Konsole auf die Server ID deines neuen Servers.
- Klicke auf Add user.
- Username: z. B.
sftp-user. - Role: Wähle die in Schritt 2 erstellte
SFTP-S3-Role. - Home directory: Wähle deinen S3-Bucket aus.
- SSH public key: Kopiere den Inhalt deiner
.pub-Datei (oder den Inhalt aus PuTTYgen) hier hinein. - Klicke auf Add.
Schritt 6: Verbindung mit FileZilla herstellen
- Kopiere den Endpoint deines SFTP-Servers (sieht aus wie
s-12345.server.transfer.region.amazonaws.com). - Öffne FileZilla.
- Gehe zu Datei -> Servermanager -> Neuer Server.
- Protokoll: SFTP - SSH File Transfer Protocol.
- Server: Füge den Endpoint ein.
- Verbindungsart: Schlüsseldatei.
- Benutzer:
sftp-user. - Schlüsseldatei: Wähle deinen privaten Schlüssel (
sftp-keyoder.ppk). - Klicke auf Verbinden.
Dateien hoch- und herunterladen
Du siehst nun auf der rechten Seite in FileZilla den Inhalt deines S3-Buckets.
- Upload: Ziehe Dateien von deinem lokalen Rechner in das rechte Fenster.
- Download: Ziehe Dateien aus dem rechten Fenster auf deinen Rechner.
Wichtige Hinweise & Kosten
- Kosten: Der AWS Transfer Family Service kostet ca. 0,30 USD pro Stunde, auch wenn keine Daten übertragen werden. Das sind etwa 216 USD pro Monat. Schalte den Server ab, wenn du ihn nicht benötigst!
- Sicherheit: Du kannst in der IAM Policy den Zugriff auf bestimmte Unterordner einschränken, falls du mehrere Benutzer hast.
- Alternative: Wenn du nur gelegentlich Dateien hochlädst, ist die S3-Weboberfläche oder das Tool
rclone(kostenlos) oft die günstigere Alternative.