SFTP-Konnektoren einrichten und verwenden - AWS Transfer Family

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.

SFTP-Konnektoren 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 SFTP-Server eines Partners abzurufen.

Dieses Tutorial zeigt, wie Sie einen SFTP-Connector mit den Ausgangstypen Service Managed und VPC_LATTICE einrichten und anschließend Dateien zwischen Amazon S3 S3-Speicher und einem SFTP-Server übertragen.

Ein SFTP-Connector ruft SFTP-Anmeldeinformationen ab, um sich bei einem Remote-SFTP-Server AWS Secrets Manager 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. Sie können zwischen Service Managed Egress (mithilfe AWS verwalteter Infrastruktur) oder VPC-Egress (Routing durch Ihre VPC mithilfe von Cross-VPC Resource Access) wählen. 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.

Ein Architekturdiagramm, das zeigt, wie der SFTP-Connector mit Secrets Manager, Amazon S3, CloudWatch Protokollen, IAM-Rollen und dem Remote-SFTP-Server interagiert.

Der folgende Blogbeitrag bietet eine Referenzarchitektur für die Erstellung eines MFT-Workflows mithilfe von SFTP-Konnektoren, einschließlich der Verschlüsselung von Dateien mit PGP, bevor sie mithilfe von SFTP-Konnektoren an einen Remote-SFTP-Server gesendet werden: Architektur sicherer und richtlinienkonformer verwalteter Dateiübertragungen mit SFTP-Konnektoren und PGP-Verschlüsselung. AWS Transfer Family

Ausgangstypen für Konnektoren

SFTP-Konnektoren unterstützen zwei Ausgangstypen, die bestimmen, wie Ihr Connector den Datenverkehr an Remote-SFTP-Server weiterleitet:

  • SERVICE_MANAGED (Standard): Verwendet die von AWS Transfer Family verwaltete Infrastruktur mit statischen IP-Adressen für ausgehende Verbindungen.

  • VPC: Leitet den Datenverkehr mithilfe von Cross-VPC Resource Access durch Ihre VPC weiter und ermöglicht so private Endpunktkonnektivität und die Verwendung Ihrer eigenen NAT-Gateways.

Dieses Tutorial behandelt beide Ausgangstypen. Wählen Sie den VPC-Ausgangstyp, wenn Sie:

  • Connect zu privaten SFTP-Servern in Ihrer VPC her (private IP-Adressen)

  • Stellen Sie über Direct Connect oder VPN eine Verbindung zu lokalen SFTP-Servern her

  • Leiten Sie öffentlichen Endpunktverkehr für Sicherheitskontrollen durch Ihre VPC

  • Verwenden Sie Ihre eigenen Elastic IP-Adressen für ausgehende Verbindungen

Schritt 1: Erstellen Sie die erforderlichen unterstützenden Ressourcen

Sie können SFTP-Konnektoren verwenden, um Dateien zwischen Amazon S3 und einem beliebigen Remote-SFTP-Server zu kopieren. Für dieses Tutorial verwenden wir einen AWS Transfer Family Server als Remote-SFTP-Server. Wir müssen die folgenden Ressourcen erstellen und konfigurieren:

Für VPC-Ausgangsanschlüsse benötigen Sie außerdem:

Amazon S3 S3-Buckets erstellen

So erstellen Sie einen Amazon-S3-Bucket
  1. Melden Sie sich bei der AWS Transfer Family Konsole an unter https://console.aws.amazon.com/s3/.

  2. 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.

  3. 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.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowListingOfUserFolder", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "HomeDirObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectVersion", "s3:GetObjectACL", "s3:PutObjectACL" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-west-2:111122223333:secret:aws/transfer/SecretName-6RandomCharacters" } ] }

Ersetzen Sie Elemente wie folgt:

  • Für amzn-s3-demo-bucket verwendet das Tutorialsftp-server-storage-east.

  • Für region verwendet das Tutorialus-east-1.

  • Verwenden account-id Sie für Ihre AWS-Konto ID.

  • Denn SecretName-6RandomCharacters wir sind using 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 privaten SSH-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 den 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 Remote-SFTP-Server 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-Server gespeichert ist, den wir als Remote-Server 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
  1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Secrets Manager Konsole unter https://console.aws.amazon.com/secretsmanager/.

  2. Wählen Sie im linken Navigationsbereich Secrets aus.

  3. Wählen Sie auf der Seite Secrets die Option Neues Geheimnis speichern aus.

  4. Wählen Sie auf der Seite Geheimtyp auswählen für Geheimtyp die Option Anderer Geheimtyp aus.

  5. 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.

  6. Um den Schlüssel einzugeben, empfehlen wir, die Registerkarte Klartext zu verwenden.

    1. Wählen Sie Zeile hinzufügen und geben Sie dann die Eingabetaste einPrivateKey.

    2. Wählen Sie die Registerkarte Klartext. Das Feld enthält jetzt den folgenden Text:

      {"Username":"sftp-testuser","PrivateKey":""}
    3. 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).

      Das Geheimnis im Klartext, das den Benutzernamen und den privaten Schlüssel anzeigt.
  7. Wählen Sie Weiter aus.

  8. Geben Sie auf der Seite Geheim konfigurieren einen Namen für Ihr Geheimnis ein. In diesem Tutorial geben wir dem Geheimnis einen Namenaws/transfer/sftp-connector1.

  9. Wählen Sie Weiter und akzeptieren Sie dann die Standardeinstellungen auf der Seite „Rotation konfigurieren“. Klicken Sie anschließend auf Weiter.

  10. Wählen Sie auf der Seite „Überprüfen“ die Option Speichern aus, um das Geheimnis zu erstellen und zu speichern.

Erstellen Sie ein Resource Gateway (nur VPC-Ausgangstyp)

Für VPC-Egress-Connectors müssen Sie in Ihrer VPC ein Resource Gateway erstellen. Das Resource Gateway dient als Einstiegspunkt für den VPC-übergreifenden Ressourcenzugriff.

Um ein Resource Gateway zu erstellen
  1. Führen Sie den folgenden Befehl aus, um ein Resource Gateway zu erstellen (ersetzen Sie die VPC-ID und das Subnetz IDs durch Ihre Werte):

    aws vpc-lattice create-resource-gateway \ --name my-sftp-resource-gateway \ --vpc-identifier vpc-12345678 \ --subnet-ids subnet-12345678 subnet-87654321
    Anmerkung

    Resource Gateways benötigen Subnetze in mindestens 2 Availability Zones.

  2. Notieren Sie sich die Resource Gateway-ID aus der Antwort, um sie im nächsten Schritt zu verwenden.

Erstellen Sie eine Ressourcenkonfiguration (nur VPC-Ausgangstyp)

Erstellen Sie eine Ressourcenkonfiguration, die auf Ihren SFTP-Server verweist. Dies kann eine private IP-Adresse für Server in Ihrer VPC oder ein öffentlicher DNS-Name für externe Server sein. Weitere Informationen zu Ressourcenkonfigurationen finden Sie unter Ressourcenkonfigurationen im Amazon VPC Lattice-Benutzerhandbuch.

Um eine Ressourcenkonfiguration zu erstellen
  1. Führen Sie für einen privaten SFTP-Server Folgendes aus:

    aws vpc-lattice create-resource-configuration \ --name my-sftp-resource-config \ --port-ranges 22 \ --type SINGLE \ --resource-gateway-identifier rgw-12345678 \ --resource-configuration-definition ipResource={ipAddress="10.0.1.100"}
  2. Führen Sie für einen öffentlichen SFTP-Server (nur DNS-Name) Folgendes aus:

    aws vpc-lattice create-resource-configuration \ --name my-public-sftp-resource-config \ --port-ranges 22 \ --type SINGLE \ --resource-gateway-identifier rgw-12345678 \ --resource-configuration-definition dnsResource={domainName="sftp.example.com"}
    Anmerkung

    Öffentliche Endpunkte müssen DNS-Namen verwenden, keine IP-Adressen.

  3. Notieren Sie sich den ARN für die Ressourcenkonfiguration aus der Antwort, der beim Erstellen des Connectors verwendet werden soll.

Schritt 2: Erstellen und testen Sie einen SFTP-Connector

In diesem Abschnitt erstellen wir einen SFTP-Connector, der alle Ressourcen verwendet, die wir zuvor erstellt haben. Weitere Details finden Sie unter SFTP-Konnektoren erstellen.

Um einen SFTP-Connector zu erstellen
  1. Öffnen Sie die AWS Transfer Family Konsole unter. https://console.aws.amazon.com/transfer/

  2. Wählen Sie im linken Navigationsbereich SFTP-Connectors und anschließend Create SFTP-Connector aus.

  3. Wählen Sie als Ausgangstyp eine der folgenden Optionen aus:

    • Service managed (Standard): Verwendet die von AWS Transfer Family verwaltete Infrastruktur mit statischen IP-Adressen für ausgehende Verbindungen.

    • VPC Lattice: Leitet den Datenverkehr mithilfe von Cross-VPC Resource Access durch Ihre VPC weiter. Wählen Sie diese Option für private Endpunktkonnektivität oder um Ihre eigenen NAT-Gateways zu verwenden.

    Wichtig

    Sie können den Ausgangstyp nicht ändern, nachdem Sie den Connector erstellt haben. Wählen Sie sorgfältig auf der Grundlage Ihrer Konnektivitätsanforderungen.

  4. Geben Sie im Abschnitt Connector-Konfiguration die folgenden Informationen an:

    • Geben Sie für die URL die URL des Remote-SFTP-Servers ein. Für das Tutorial geben wir die URL des Transfer Family Family-Servers ein, den wir als Remote-SFTP-Server verwenden.

      sftp://s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com

      1111aaaa2222bbbb3Ersetzen Sie es durch Ihre Transfer Family Family-Server-ID.

    • Geben Sie für die Access-Rolle die Rolle ein, die wir zuvor erstellt habensftp-connector-role.

    • Geben Sie für Resource Configuration ARN (nur VPC Lattice Egress Type) den ARN der Ressourcenkonfiguration ein, die Sie zuvor erstellt haben:

      arn:aws:vpc-lattice:us-east-1:account-id:resourceconfiguration/rcfg-12345678
    • Wählen Sie für die Rolle „Logging“ eine Rolle aus, die transfer.amazonaws.com im Principal-Element eine Vertrauensrichtlinie enthält.

      Tipp: Sie können Transfer Family nicht nur als vertrauenswürdige Entität hinzufügen, sondern auch die AWSTransferLoggingAccess AWS verwaltete Richtlinie zur Rolle hinzufügen. Diese Richtlinie wird ausführlich unter beschrieben AWSTransferLoggingAccess.

    Die SFTP-Connector-Konsole der Transfer Family zeigt die Connector-Konfigurationseinstellungen an.
  5. Geben Sie im Abschnitt SFTP-Konfiguration die folgenden Informationen ein:

    • Wählen Sie für Connector-Anmeldeinformationen den Namen Ihrer Secrets Manager Manager-Ressource, die SFTP-Anmeldeinformationen enthält. Für das Tutorial wählen aws/transfer/sftp-connector1 Sie.

    • 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 Dokumentation zum SftpConnectorConfigDatentyp.

    • Wählen Sie für Maximale Anzahl gleichzeitiger Verbindungen einen Ganzzahlwert zwischen 1 und 5 aus: Der Standardwert ist 5.

    Die SFTP-Connector-Konsole der Transfer Family zeigt die SFTP-Konfigurationseinstellungen an.
  6. Nachdem Sie alle Ihre Einstellungen bestätigt haben, wählen Sie Connector erstellen, um den SFTP-Connector zu erstellen.

Sie können Konnektoren auch mit dem AWS Command Line Interface erstellen.

  • Führen Sie den folgenden Befehl aus, um einen SFTP-Connector mit vom Service verwaltetem Ausgang zu erstellen:

    aws transfer create-connector \ --url "sftp://s-1111aaaa2222bbbb3.server.transfer.us-east-1.amazonaws.com" \ --access-role "arn:aws::iam::account-id:role/sftp-connector-role" \ --sftp-config UserSecretId="aws/transfer/sftp-connector1",TrustedHostKeys="ssh-rsa AAAAB3NzaC..."
  • Führen Sie den folgenden Befehl aus, um einen SFTP-Connector mit VPC-basiertem Ausgang zu erstellen:

    aws transfer create-connector \ --url "sftp://my.sftp.server.com:22" \ --access-role "arn:aws::iam::account-id:role/sftp-connector-role" \ --sftp-config UserSecretId="aws/transfer/sftp-connector1",TrustedHostKeys="ssh-rsa AAAAB3NzaC..." \ --egress-config VpcLattice={ResourceConfigurationArn="arn:aws:vpc-lattice:us-east-1:account-id:resourceconfiguration/rcfg-12345678",PortNumber=22}

Nachdem Sie einen SFTP-Connector erstellt haben, empfehlen wir, ihn zu testen, bevor Sie versuchen, Dateien mit Ihrem neuen Connector zu übertragen.

Anmerkung

Bei VPC-Ausgangsverbindern kann die DNS-Auflösung nach der Erstellung mehrere Minuten dauern. Während dieser Zeit wird der Connector-Status „Connector not available“ (Konnektor nicht verfügbar) TestConnection angezeigt PENDING und auch wieder angezeigt. Warten Sie, bis der Status erreicht ist, ACTIVE bevor Sie versuchen, Dateien zu übertragen.

Test a connector using the console
Um einen SFTP-Connector zu testen
  1. Öffnen Sie die AWS Transfer Family Konsole unter. https://console.aws.amazon.com/transfer/

  2. Wählen Sie im linken Navigationsbereich SFTP-Konnektoren und wählen Sie einen Connector aus.

  3. Wählen Sie im Menü Aktionen die Option Verbindung testen aus.

    In der Transfer Family Family-Konsole wird ein ausgewählter SFTP-Connector angezeigt, und die Aktion Verbindung testen ist hervorgehoben.

Das System gibt eine Meldung zurück, in der angegeben wird, ob der Test erfolgreich war oder nicht. Wenn der Test fehlschlägt, gibt das System eine Fehlermeldung aus, die auf dem Grund basiert, warum der Test fehlgeschlagen ist.

Das Verbindungsfeld zum Testen des SFTP-Anschlusses zeigt einen erfolgreichen Test an.
Das Verbindungsfeld zum Testen des SFTP-Anschlusses zeigt einen fehlgeschlagenen Test an: Die Fehlermeldung weist darauf hin, dass die Zugriffsrolle für den Konnektor falsch ist.
Test a connector using the CLI

Um einen Connector mit dem zu testen AWS Command Line Interface, führen Sie den folgenden Befehl an einer Eingabeaufforderung aus (connector-idersetzen Sie ihn durch Ihre tatsächliche Connector-ID):

aws transfer test-connection --connector-id c-connector-id

Wenn der Test erfolgreich ist, werden die folgenden Zeilen zurückgegeben:

{ "Status": "OK", "StatusMessage": "Connection succeeded" }

Wenn der Test nicht erfolgreich ist, erhalten Sie eine beschreibende Fehlermeldung, zum Beispiel:

{ "Status": "ERROR", "StatusMessage": "Unable to assume the configured access role" }

Wenn Sie einen VPC-Ausgangsconnector beschreiben, enthält die Antwort die neuen Felder:

{ "Connector": { "AccessRole": "arn:aws:iam::219573224423:role/sftp-connector-role", "Arn": "arn:aws:transfer:us-east-1:219573224423:connector/c-5dfa309ccabf40759", "ConnectorId": "c-5dfa309ccabf40759", "Status": "ACTIVE", "EgressConfig": { "ResourceConfigurationArn": "arn:aws:vpc-lattice:us-east-1:025066256552:resourceconfiguration/rcfg-079259b27a357a190" }, "EgressType": "VPC", "ServiceManagedEgressIpAddresses": null, "SftpConfig": { "TrustedHostKeys": [ "ssh-rsa AAAAB3NzaC..." ], "UserSecretId": "aws/transfer/sftp-connector1" }, "Url": "sftp://my.sftp.server.com:22" } }

Beachten Sie, dass dieser Wert für VPC-Ausgangs-Connectors Null ServiceManagedEgressIpAddresses ist, da der Datenverkehr über Ihre VPC und nicht über die verwaltete Infrastruktur geleitet wird. AWS

Schritt 3: Senden und Abrufen von Dateien mithilfe des SFTP-Connectors

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 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 SEND-to-SERVER.txt vom Amazon S3 S3-Speicher benannte Datei 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 die Befehle in den folgenden Befehlen connector-id durch Ihre Connector-ID.

Zunächst senden wir eine Datei von unserem Amazon S3 S3-Bucket an den Remote-SFTP-Server. Führen Sie in einer Befehlszeile den folgenden Befehl aus:

aws transfer start-file-transfer --connector-id c-connector-id --send-file-paths "/sftp-server-storage-east/SEND-to-SERVER.txt" / --remote-directory-path "/sftp-server-storage-east/incoming"

Ihr sftp-server-storage-east Bucket sollte jetzt so aussehen.

Der SFTP-Server-Bucket mit der neu übertragenen Datei.

Wenn Sie die Datei nicht wie erwartet sehen, überprüfen Sie Ihre CloudWatch Protokolle.

Um deine CloudWatch Logs zu überprüfen
  1. Öffnen Sie die CloudWatch Amazon-Konsole unter https://console.aws.amazon.com/cloudwatch/

  2. Wählen Sie im linken Navigationsmenü Protokollgruppen aus.

  3. Geben Sie Ihre Connector-ID in die Suchleiste ein, um Ihre Logs zu finden.

  4. Wählen Sie den Protokollstream aus, der bei der Suche zurückgegeben wird.

  5. 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": "/sftp-server-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": "account-id", "connector-arn": "arn:aws:transfer:us-east-1:account-id: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-Bucket ab. Führen Sie in einer Befehlszeile 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 "/sftp-server-storage-east/incoming"

Wenn die Übertragung erfolgreich ist, enthält Ihr Amazon S3 S3-Bucket die übertragene Datei, wie hier gezeigt.

Der Amazon S3 S3-Bucket mit der neu übertragenen Datei.

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": "account-id", "connector-arn": "arn:aws:transfer:us-east-1:account-id:connector/c-connector-id", "local-directory-path": "/sftp-server-storage-east/incoming" }

Fehlerbehebung bei VPC-Ausgangssteckern

Wenn Sie Probleme mit VPC-Ausgangsverbindern haben, überprüfen Sie Folgendes:

  • Der Connector-Status ist AUSSTEHEND: Die DNS-Auflösung für VPC-Connectoren kann mehrere Minuten dauern. Warten Sie, bis der Status AKTIV wird, bevor Sie versuchen, Verbindungen herzustellen.

  • Verbindungstimeouts: Stellen Sie sicher, dass Sicherheitsgruppen Datenverkehr auf Port 22 zwischen Ihren Resource Gateway-Subnetzen und dem Ziel-SFTP-Server zulassen.

  • Fehler bei der Ressourcenkonfiguration: Stellen Sie sicher, dass Ihre Ressourcenkonfiguration auf die richtige IP-Adresse oder den richtigen DNS-Namen verweist und dass sich das Resource Gateway in derselben VPC wie Ihr SFTP-Server befindet (für private Endpunkte). Weitere Informationen finden Sie unter Ressourcenkonfigurationen im Benutzerhandbuch für Amazon VPC Lattice.

  • Probleme mit öffentlichen Endpunkten: Stellen Sie bei öffentlichen Endpunkten sicher, dass Sie in Ihrer Ressourcenkonfiguration einen DNS-Namen und keine IP-Adresse verwenden. Stellen Sie sicher, dass Ihre VPC über ein NAT-Gateway für ausgehenden Internetzugang verfügt.

  • AZ-Verfügbarkeit: Resource Gateways benötigen Subnetze in mindestens 2 Availability Zones. Nicht alle AZs unterstützen VPC Lattice — überprüfen Sie, welche Unterstützung AZs in Ihrer Region unterstützt wird.

Überlegungen zu den Kosten für den VPC-Ausgangstyp:

  • VPC Lattice berechnet als Ressourcenanbieter 0,006 USD/GB für die Datenverarbeitung (direkt von VPC Lattice in Rechnung gestellt)

  • AWS Transfer Family übernimmt die Kosten für den Ressourcenverbrauch von 0,01 USD/GB (erstes 1 PB)

  • Für öffentliche Endpunkte über VPC können zusätzliche NAT-Gateway- und Datenübertragungsgebühren anfallen

  • Keine zusätzlichen Transfer Family Family-Gebühren, die über die standardmäßige Datenverarbeitungsgebühr von 0,40 USD pro GB hinausgehen

Verfahren zum Erstellen eines Transfer Family Family-Servers, der als Remote-SFTP-Server verwendet werden kann

Im Folgenden beschreiben wir die Schritte zum Erstellen eines Transfer Family Family-Servers, der als Remote-SFTP-Server für dieses Tutorial dient. Beachten Sie Folgendes:

  • Wir verwenden einen Transfer Family Family-Server, um einen Remote-SFTP-Server darzustellen. Typische Benutzer von SFTP-Connectoren haben ihren eigenen Remote-SFTP-Server. Siehe Erstellen Sie einen Transfer Family SFTP-Server und einen Benutzer.

  • Da wir einen Transfer Family Family-Server verwenden, verwenden wir auch einen vom Service 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 Anwendungsfälle für SFTP-Connectoren einen separaten SFTP-Benutzer, der keinem Transfer Family Family-Server zugeordnet ist. Siehe Erstellen Sie einen Transfer Family SFTP-Server und einen Benutzer.

  • Da wir Amazon S3-Speicher für unseren Remote-SFTP-Server verwenden, müssen wir für das Tutorial einen zweiten Bucket erstellensftp-server-storage-east, damit wir Dateien von einem Bucket in einen anderen übertragen können.

Erstellen Sie einen Transfer Family SFTP-Server und einen Benutzer

Die meisten Benutzer müssen keinen Transfer Family Family-SFTP-Server und keinen Benutzer erstellen, da Sie bereits über einen SFTP-Server mit Benutzern verfügen und diesen Server verwenden können, um Dateien von und zu übertragen. In diesem Tutorial verwenden wir der Einfachheit halber jedoch einen Transfer Family Family-Server, der als Remote-SFTP-Server 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 lautet s-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: Erstellen und testen Sie einen SFTP-Connector 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:::sftp-server-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:::sftp-server-storage-east/*" ] }, { "Sid": "GetConnectorSecretValue", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333: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.