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.
SFTPKonnektoren einrichten und verwenden
Der Zweck eines Connectors besteht darin, eine Beziehung zwischen Ihrem AWS Speicher und dem SFTP Server eines Partners herzustellen. Sie können Dateien von Amazon S3 an ein externes, partnereigenes Ziel senden. Sie können auch einen SFTP Connector verwenden, um Dateien vom Server eines Partners SFTP abzurufen.
Dieses Tutorial zeigt, wie Sie einen SFTP Connector einrichten und dann Dateien zwischen Amazon S3 S3-Speicher und einem SFTP Server übertragen.
Ein SFTP Connector ruft SFTP Anmeldeinformationen ab AWS Secrets Manager , um sich bei einem SFTP Remote-Server zu authentifizieren und eine Verbindung herzustellen. Der Connector sendet Dateien an den Remote-Server oder ruft Dateien vom Remote-Server ab und speichert die Dateien in Amazon S3. Eine IAM Rolle wird verwendet, um den Zugriff auf den Amazon S3 S3-Bucket und auf die in Secrets Manager gespeicherten Anmeldeinformationen zu ermöglichen. Und Sie können sich bei Amazon anmelden CloudWatch.
Themen
- Schritt 1: Erstellen Sie die erforderlichen unterstützenden Ressourcen
- Schritt 2: Einen SFTP Connector erstellen und testen
- Schritt 3: Senden und Abrufen von Dateien mithilfe des Connectors SFTP
- Verfahren zum Erstellen eines Transfer Family Family-Servers, der als SFTP Remoteserver verwendet werden kann
Schritt 1: Erstellen Sie die erforderlichen unterstützenden Ressourcen
Sie können SFTP Konnektoren verwenden, um Dateien zwischen Amazon S3 und einem beliebigen SFTP Remote-Server zu kopieren. Für dieses Tutorial verwenden wir einen AWS Transfer Family Server als SFTP Remote-Server. Wir müssen die folgenden Ressourcen erstellen und konfigurieren:
-
Erstellen Sie Amazon S3 S3-Buckets, um Dateien in Ihrer AWS Umgebung zu speichern und Dateien vom SFTP Remote-Server zu senden und abzurufen:Amazon S3 S3-Buckets erstellen.
-
Erstellen Sie eine AWS Identity and Access Management Rolle für den Zugriff auf Amazon S3 S3-Speicher und unser Geheimnis in Secrets Manager:Erstellen Sie eine IAM Rolle mit den erforderlichen Berechtigungen.
-
Erstellen Sie einen Transfer Family Family-Server, der das SFTP Protokoll verwendet, und einen vom Dienst verwalteten Benutzer, der den SFTP Connector verwendet, um Dateien zum oder vom SFTP Server zu übertragen:Erstellen Sie einen Transfer Family SFTP Family-Server und einen Benutzer.
-
Erstellen Sie einen AWS Secrets Manager geheimen Schlüssel, der die Anmeldeinformationen speichert, die der SFTP Connector für die Anmeldung am SFTP Remoteserver verwendet:Erstellen und speichern Sie ein Geheimnis in AWS Secrets Manager.
Amazon S3 S3-Buckets erstellen
So erstellen Sie einen Amazon-S3-Bucket
-
Melden Sie sich bei der AWS Transfer Family Konsole an unter https://console.aws.amazon.com/s3/
. -
Wählen Sie eine Region und geben Sie einen Namen ein.
In diesem Tutorial ist unser Bucket
US East (N. Virginia) us-east-1
dabei und der Name lautetsftp-server-storage-east
. -
Akzeptieren Sie die Standardeinstellungen und wählen Sie Create Bucket.
Vollständige Informationen zum Erstellen von Amazon S3 S3-Buckets finden Sie unter Wie erstelle ich einen S3-Bucket? im Amazon Simple Storage Service-Benutzerhandbuch.
Erstellen Sie eine IAM Rolle mit den erforderlichen Berechtigungen
Erstellen Sie für die Zugriffsrolle eine Richtlinie mit den folgenden Berechtigungen.
Das folgende Beispiel gewährt die erforderlichen Berechtigungen für den Zugriff auf DOC-EXAMPLE-BUCKET
in Amazon S3 und das angegebene Geheimnis ist in Secrets Manager gespeichert.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::
DOC-EXAMPLE-BUCKET
" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:region
:account-id
:secret:aws/transfer/SecretName-6RandomCharacters
" } ] }
Ersetzen Sie Elemente wie folgt:
-
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle.
DOC-EXAMPLE-BUCKET
, das Tutorial verwendets3-storage-east
. -
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle.
region
, das Tutorial verwendetus-east-1
. -
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle.
account-id
, benutze deine AWS-Konto ID. -
Wählen Sie in der &Snowconsole; Ihren Auftrag aus der Tabelle.
SecretName-6RandomCharacters
, wir sindusing sftp-connector1
für den Namen (Sie werden Ihre eigenen sechs zufälligen Zeichen für Ihr Geheimnis haben).
Sie müssen außerdem sicherstellen, dass diese Rolle eine Vertrauensstellung beinhaltet, die es dem Connector ermöglicht, auf Ihre Ressourcen zuzugreifen, wenn er Übertragungsanfragen Ihrer Benutzer bearbeitet. Einzelheiten zum Aufbau einer Vertrauensbeziehung finden Sie unterSo stellen Sie eine Vertrauensbeziehung her.
Anmerkung
Einzelheiten zu der Rolle, die wir für das Tutorial verwenden, finden Sie unterKombinierte Benutzer- und Zugriffsrolle.
Erstellen und speichern Sie ein Geheimnis in AWS Secrets Manager
Wir müssen ein Geheimnis in Secrets Manager speichern, um Benutzeranmeldeinformationen für Ihren SFTP Connector zu speichern. Sie können ein Passwort, einen SSH privaten Schlüssel oder beides verwenden. Für das Tutorial verwenden wir einen privaten Schlüssel.
Anmerkung
Wenn Sie Geheimnisse im Secrets Manager speichern, AWS-Konto fallen Gebühren an. Informationen zu Preisen erhalten Sie unter AWS Secrets Manager -Preise
Bevor Sie mit dem Verfahren zum Speichern des Geheimnisses beginnen, müssen Sie Ihren privaten Schlüssel abrufen und formatieren. Der private Schlüssel muss dem öffentlichen Schlüssel entsprechen, der für den Benutzer auf dem SFTP Remoteserver konfiguriert ist. Für unser Tutorial muss der private Schlüssel dem öffentlichen Schlüssel entsprechen, der für unseren Testbenutzer auf dem Transfer Family SFTP Family-Server gespeichert ist, den wir als Remoteserver verwenden.
Führen Sie dazu den folgenden Befehl aus:
jq -sR .
path-to-private-key-file
Wenn sich Ihre private Schlüsseldatei beispielsweise in befindet~/.ssh/sftp-testuser-privatekey
, lautet der Befehl wie folgt.
jq -sR . ~/.ssh/sftp-testuser-privatekey
Dadurch wird der Schlüssel im richtigen Format (mit eingebetteten Zeilenumbruchzeichen) in die Standardausgabe ausgegeben. Kopieren Sie diesen Text irgendwo, da Sie ihn im folgenden Verfahren (in Schritt 6) einfügen müssen.
Um Benutzeranmeldeinformationen in Secrets Manager für einen SFTP Connector zu speichern
-
Melden Sie sich bei an AWS Management Console und öffnen Sie die AWS Secrets Manager Konsole unter https://console.aws.amazon.com/secretsmanager/
. -
Wählen Sie im linken Navigationsbereich Secrets aus.
-
Wählen Sie auf der Seite Secrets die Option Neues Geheimnis speichern aus.
-
Wählen Sie auf der Seite Geheimtyp auswählen für Geheimtyp die Option Anderer Geheimtyp aus.
-
Wählen Sie im Abschnitt Schlüssel/Wert-Paare die Registerkarte Schlüssel/Wert aus.
-
Schlüssel — Geben Sie ein.
Username
-
Wert — Geben Sie den Namen unseres Benutzers ein,
sftp-testuser
.
-
-
Um den Schlüssel einzugeben, empfehlen wir, die Registerkarte Klartext zu verwenden.
-
Wählen Sie Zeile hinzufügen und geben Sie dann die Eingabetaste ein
PrivateKey
. -
Wählen Sie die Registerkarte Klartext. Das Feld enthält jetzt den folgenden Text:
{"Username":"sftp-testuser","PrivateKey":""}
-
Fügen Sie den Text für Ihren privaten Schlüssel (zuvor gespeichert) zwischen den leeren doppelten Anführungszeichen („“) ein.
Ihr Bildschirm sollte wie folgt aussehen (Schlüsseldaten sind ausgegraut).
-
-
Wählen Sie Weiter.
-
Geben Sie auf der Seite Geheim konfigurieren einen Namen für Ihr Geheimnis ein. In diesem Tutorial geben wir dem Geheimnis einen Namen
aws/transfer/sftp-connector1
. -
Wählen Sie Weiter und akzeptieren Sie dann die Standardeinstellungen auf der Seite „Rotation konfigurieren“. Wählen Sie anschließend Weiter.
-
Wählen Sie auf der Seite „Überprüfen“ die Option Speichern aus, um das Geheimnis zu erstellen und zu speichern.
Schritt 2: Einen SFTP Connector erstellen und testen
In diesem Abschnitt erstellen wir einen SFTP Connector, der alle Ressourcen verwendet, die wir zuvor erstellt haben. Weitere Details finden Sie unter SFTPKonnektoren konfigurieren.
Um einen SFTP Konnektor zu erstellen
-
Öffnen Sie die AWS Transfer Family Konsole unter https://console.aws.amazon.com/transfer/
. -
Wählen Sie im linken Navigationsbereich Connectors und anschließend Connector erstellen aus.
-
Wählen Sie SFTPden Konnektortyp aus, um einen SFTP Konnektor zu erstellen, und klicken Sie dann auf Weiter.
-
Geben Sie im Abschnitt Connector-Konfiguration die folgenden Informationen ein:
-
Geben Sie für den URLden URL SFTP Remoteserver ein. Für das Tutorial geben wir den URL Transfer Family Family-Server ein, den wir als SFTP Remote-Server verwenden.
sftp://s-
1111aaaa2222bbbb3
.server---transfer---us-east-1.amazonaws.com.rproxy.goskope.comErsetzen
1111aaaa2222bbbb3
mit Ihrer Transfer Family Family-Server-ID. -
Geben Sie für die Access-Rolle die Rolle ein, die wir zuvor erstellt haben
sftp-connector-role
. -
Wählen Sie für die Logging-Rolle
AWSTransferLoggingAccess
.Anmerkung
AWSTransferLoggingAccessist eine AWS verwaltete Richtlinie. Diese Richtlinie wird ausführlich unter beschriebenAWS verwaltete Richtlinie: AWSTransferLoggingAccess.
-
-
Geben Sie im Abschnitt SFTPKonfiguration die folgenden Informationen ein:
-
Wählen Sie für Connector-Anmeldeinformationen den Namen Ihrer Secrets Manager Manager-Ressource, die SFTP Anmeldeinformationen enthält. Wählen Sie für das Tutorial
aws/transfer/sftp-connector1
. -
Fügen Sie für vertrauenswürdige Hostschlüssel den öffentlichen Teil des Hostschlüssels ein. Sie können diesen Schlüssel abrufen, indem Sie ihn
ssh-keyscan
für Ihren SFTP Server ausführen. Einzelheiten zum Formatieren und Speichern des vertrauenswürdigen Host-Schlüssels finden Sie in der SftpConnectorConfigDokumentation zum Datentyp.
-
-
Nachdem Sie alle Ihre Einstellungen bestätigt haben, wählen Sie Connector erstellen, um den SFTP Connector zu erstellen.
Nachdem Sie einen SFTP Connector erstellt haben, empfehlen wir Ihnen, ihn zu testen, bevor Sie versuchen, Dateien mit Ihrem neuen Connector zu übertragen.
Schritt 3: Senden und Abrufen von Dateien mithilfe des Connectors SFTP
Der Einfachheit halber gehen wir davon aus, dass Sie bereits Dateien in Ihrem Amazon S3 S3-Bucket haben.
Anmerkung
Das Tutorial verwendet Amazon S3 S3-Buckets sowohl für Quell- als auch für Zielspeicherorte. Wenn Ihr SFTP Server keinen Amazon S3 S3-Speicher verwendet, können Sie, wo auch immer Sie sftp-server-storage-east
in den folgenden Befehlen sehen, den Pfad durch einen Pfad zu Dateispeicherorten ersetzen, auf die von Ihrem SFTP Server aus zugegriffen werden kann.
-
Wir senden eine Datei mit dem Namen
SEND-to-SERVER.txt
aus dem Amazon S3 S3-Speicher an den SFTP Server. -
Wir rufen eine Datei mit dem Namen
RETRIEVE-to-S3.txt
vom SFTP Server in den Amazon S3 S3-Speicher ab.
Anmerkung
Ersetzen Sie in den folgenden Befehlen connector-id
mit Ihrer Connector-ID.
Zunächst senden wir eine Datei von unserem Amazon S3 S3-Bucket an den SFTP Remote-Server. Führen Sie in einer Befehlszeile den folgenden Befehl aus:
aws transfer start-file-transfer --connector-id c-
connector-id
--send-file-paths "/s3-storage-east/SEND-to-SERVER.txt" / --remote-directory-path "/sftp-server-storage-east/incoming"
Ihr sftp-server-storage-east
Bucket sollte jetzt so aussehen.
Wenn Sie die Datei nicht wie erwartet sehen, überprüfen Sie Ihre CloudWatch Protokolle.
Um deine CloudWatch Logs zu überprüfen
-
Öffnen Sie die CloudWatch Amazon-Konsole unter https://console.aws.amazon.com/cloudwatch/
-
Wählen Sie im linken Navigationsmenü Protokollgruppen aus.
-
Geben Sie Ihre Connector-ID in die Suchleiste ein, um Ihre Logs zu finden.
-
Wählen Sie den Protokollstream aus, der bei der Suche zurückgegeben wird.
-
Erweitern Sie den neuesten Protokolleintrag.
Bei Erfolg sieht der Protokolleintrag wie folgt aus:
{ "operation": "SEND", "timestamp": "2023-12-18T15:26:57.346283Z", "connector-id": "
connector-id
", "transfer-id": "transfer-id
", "file-transfer-id": "transfer-id
/file-transfer-id
", "url": "sftp://server-id
.server.transfer.us-east-1.amazonaws.com", "file-path": "/s3-storage-east/SEND-to-SERVER.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:26:56.915864Z", "end-time": "2023-12-18T15:26:57.298122Z", "account-id": "500655546075", "connector-arn": "arn:aws:transfer:us-east-1:500655546075:connector/connector-id
", "remote-directory-path": "/sftp-server-storage-east/incoming" }
Wenn die Dateiübertragung fehlgeschlagen ist, enthält der Protokolleintrag eine Fehlermeldung, die das Problem spezifiziert. Häufige Fehlerursachen sind Probleme mit den IAM Berechtigungen und falsche Dateipfade.
Als Nächstes rufen wir eine Datei vom SFTP Server in einen Amazon S3 S3-Bucket ab. Führen Sie an einer Eingabeaufforderung den folgenden Befehl aus:
aws transfer start-file-transfer --connector-id c-
connector-id
--retrieve-file-paths "/sftp-server-storage-east/RETRIEVE-to-S3.txt" --local-directory-path "/s3-storage-east/incoming"
Wenn die Übertragung erfolgreich ist, enthält Ihr Amazon S3 S3-Bucket die übertragene Datei, wie hier gezeigt.
Bei Erfolg sieht der Protokolleintrag wie folgt aus:
{ "operation": "RETRIEVE", "timestamp": "2023-12-18T15:36:40.017800Z", "connector-id": "c-
connector-id
", "transfer-id": "transfer-id
", "file-transfer-id": "transfer-id
/file-transfer-id
", "url": "sftp://s-server-id
.server.transfer.us-east-1.amazonaws.com", "file-path": "/sftp-server-storage-east/RETRIEVE-to-S3.txt", "status-code": "COMPLETED", "start-time": "2023-12-18T15:36:39.727626Z", "end-time": "2023-12-18T15:36:39.895726Z", "account-id": "500655546075", "connector-arn": "arn:aws:transfer:us-east-1:500655546075:connector/c-connector-id
", "local-directory-path": "/s3-storage-east/incoming" }
Verfahren zum Erstellen eines Transfer Family Family-Servers, der als SFTP Remoteserver verwendet werden kann
Im Folgenden beschreiben wir die Schritte zum Erstellen eines Transfer Family Family-Servers, der als SFTP Remoteserver für dieses Tutorial dient. Beachten Sie Folgendes:
-
Wir verwenden einen Transfer Family Family-Server, um einen SFTP Remote-Server darzustellen. Typische SFTP Connector-Benutzer haben ihren eigenen SFTP Remoteserver. Siehe Erstellen Sie einen Transfer Family SFTP Family-Server und einen Benutzer.
-
Da wir einen Transfer Family Family-Server verwenden, verwenden wir auch einen vom Dienst verwalteten SFTP Benutzer. Der Einfachheit halber haben wir die Berechtigungen, die dieser Benutzer für den Zugriff auf den Transfer Family Family-Server benötigt, mit den Berechtigungen kombiniert, die er für die Verwendung unseres Connectors benötigt. Auch hier haben die meisten SFTP Connector-Anwendungsfälle einen separaten SFTP Benutzer, der keinem Transfer Family Family-Server zugeordnet ist. Siehe Erstellen Sie einen Transfer Family SFTP Family-Server und einen Benutzer.
-
Da wir Amazon S3 S3-Speicher für unseren SFTP Remote-Server verwenden, müssen wir für das Tutorial einen zweiten Bucket erstellen
s3-storage-east
, damit wir Dateien von einem Bucket in einen anderen übertragen können.
Erstellen Sie einen Transfer Family SFTP Family-Server und einen Benutzer
Die meisten Benutzer müssen keinen Transfer Family SFTP Family-Server und keinen Benutzer erstellen, da Sie bereits über einen SFTP Server mit Benutzern verfügen und diesen Server zum Übertragen von Dateien verwenden können. In diesem Tutorial verwenden wir der Einfachheit halber jedoch einen Transfer Family Family-Server, der als SFTP Remoteserver fungiert.
Folgen Sie dem unter Erstellen Sie einen SFTP -fähigen Server Erstellen eines Servers und Schritt 3: Fügen Sie einen vom Service verwalteten Benutzer hinzu Hinzufügen eines Benutzers beschriebenen Verfahren. Dies sind die Benutzerdetails, die wir für das Tutorial verwenden:
-
Erstellen Sie Ihren vom Service verwalteten Benutzer,
sftp-testuser
.-
Stellen Sie das Home-Verzeichnis ein auf
/sftp-server-storage-east/sftp-testuser
-
Wenn Sie den Benutzer erstellen, speichern Sie einen öffentlichen Schlüssel. Später, wenn Sie das Geheimnis in Secrets Manager erstellen, müssen Sie den entsprechenden privaten Schlüssel angeben.
-
-
Rolle:
sftp-connector-role
. Für das Tutorial verwenden wir dieselbe IAM Rolle sowohl für unseren SFTP Benutzer als auch für den Zugriff auf den SFTP Connector. Wenn Sie Konnektoren für Ihre Organisation erstellen, haben Sie möglicherweise separate Benutzer- und Zugriffsrollen. -
Server-Hostschlüssel: Sie müssen den Server-Hostschlüssel verwenden, wenn Sie den Connector erstellen. Sie können diesen Schlüssel abrufen, indem Sie ihn
ssh-keyscan
für Ihren Server ausführen. Wenn Ihre Server-ID beispielsweise lautets-1111aaaa2222bbbb3
und ihr Endpunkt in istus-east-1
, ruft der folgende Befehl den Server-Host-Schlüssel ab:ssh-keyscan s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com
Kopieren Sie diesen Text irgendwo, da Sie ihn in die Schritt 2: Einen SFTP Connector erstellen und testen Prozedur einfügen müssen.
Kombinierte Benutzer- und Zugriffsrolle
Für das Tutorial verwenden wir eine einzelne, kombinierte Rolle. Wir verwenden diese Rolle sowohl für unseren SFTP Benutzer als auch für den Zugriff auf den Connector. Das folgende Beispiel enthält die Details für diese Rolle, falls Sie die Aufgaben im Tutorial ausführen möchten.
Das folgende Beispiel gewährt die erforderlichen Berechtigungen für den Zugriff auf unsere beiden Buckets in Amazon S3 und das Secret namens, das in Secrets Manager aws/transfer/sftp-connector1
gespeichert ist. Für das Tutorial wird diese Rolle benanntsftp-connector-role
.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::sftp-server-storage-east", "arn:aws:s3:::s3-storage-east" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": [ "arn:aws:s3:::sftp-server-storage-east/*", "arn:aws:s3:::s3-storage-east/*" ] }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:500655546075:secret:aws/transfer/sftp-connector1-
6RandomCharacters
" } ] }
Vollständige Informationen zum Erstellen von Rollen für Transfer Family finden Sie unter Eine Benutzerrolle erstellen So erstellen Sie eine Rolle.