Konfigurieren Sie den Speicher für die Verwendung mit AWS Transfer Family - 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.

Konfigurieren Sie den Speicher für die Verwendung mit AWS Transfer Family

In diesem Thema werden die Speicheroptionen beschrieben, die Sie zusammen verwenden können AWS Transfer Family. Sie können entweder Amazon S3 oder Amazon EFS als Speicher für Ihre Transfer Family Family-Server verwenden.

Einen Amazon S3 S3-Bucket konfigurieren

AWS Transfer Family greift auf Ihren Amazon S3 S3-Bucket zu, um die Übertragungsanfragen Ihrer Benutzer zu bearbeiten. Daher müssen Sie im Rahmen der Einrichtung Ihres File-Transfer-Protokoll-fähigen Servers einen Amazon S3 S3-Bucket bereitstellen. Sie können einen vorhandenen Bucket verwenden oder einen neuen Bucket erstellen.

Anmerkung

Sie müssen keinen Server und keinen Amazon S3 S3-Bucket verwenden, die sich in derselben AWS Region befinden, aber wir empfehlen dies als bewährte Methode.

Wenn Sie Ihre Benutzer einrichten, weisen Sie ihnen jeweils eine IAM-Rolle zu. Diese Rolle bestimmt die Zugriffsebene, die sie auf Ihren Amazon S3 S3-Bucket haben.

Informationen zum Erstellen eines neuen Buckets finden Sie unter Wie erstelle ich einen S3-Bucket? im Amazon Simple Storage Service-Benutzerhandbuch.

Anmerkung

Sie können Amazon S3 Object Lock verwenden, um zu verhindern, dass Objekte für einen bestimmten Zeitraum oder auf unbestimmte Zeit überschrieben werden. Dies funktioniert bei Transfer Family genauso wie bei anderen Diensten. Wenn ein Objekt existiert und geschützt ist, ist es nicht erlaubt, in diese Datei zu schreiben oder sie zu löschen. Weitere Informationen zu Amazon S3 Object Lock finden Sie unter Verwenden von Amazon S3 Object Lock im Amazon Simple Storage Service-Benutzerhandbuch.

Amazon S3 Access Points

AWS Transfer Family unterstützt Amazon S3 Access Points, eine Funktion von Amazon S3, mit der Sie den detaillierten Zugriff auf gemeinsam genutzte Datensätze einfach verwalten können. Sie können S3 Access Point-Aliase überall verwenden, wo Sie einen S3-Bucket-Namen verwenden. Sie können in Amazon S3 Hunderte von Access Points für Benutzer erstellen, die über unterschiedliche Berechtigungen für den Zugriff auf gemeinsam genutzte Daten in einem Amazon S3 S3-Bucket verfügen.

Beispielsweise können Sie Access Points verwenden, um drei verschiedenen Teams den Zugriff auf denselben gemeinsamen Datensatz zu ermöglichen, wobei ein Team Daten aus S3 lesen kann, ein zweites Team Daten in S3 schreiben kann und das dritte Team Daten aus S3 lesen, schreiben und löschen kann. Um eine detaillierte Zugriffskontrolle wie oben erwähnt zu implementieren, können Sie einen S3-Zugriffspunkt erstellen, der eine Richtlinie enthält, die verschiedenen Teams asymmetrischen Zugriff gewährt. Sie können S3-Zugriffspunkte mit Ihrem Transfer Family Family-Server verwenden, um eine differenzierte Zugriffskontrolle zu erreichen, ohne eine komplexe S3-Bucket-Richtlinie zu erstellen, die Hunderte von Anwendungsfällen umfasst. Weitere Informationen zur Verwendung von S3 Access Points mit einem Transfer Family Family-Server finden Sie im Blogbeitrag Enhance data access control with AWS Transfer Family and Amazon S3.

Anmerkung

AWS Transfer Family unterstützt derzeit keine Amazon S3 Multi-Region Access Points.

HeadObject Verhalten von Amazon S3

Anmerkung

Wenn Sie einen Transfer Family Family-Server erstellen oder aktualisieren, können Sie die Leistung Ihrer Amazon S3 S3-Verzeichnisse optimieren, wodurch HeadObject Anrufe vermieden werden.

In Amazon S3 sind Buckets und Objekte die primären Ressourcen, in denen Objekte in Buckets gespeichert werden. Amazon S3 kann ein hierarchisches Dateisystem nachahmen, sich aber manchmal anders verhalten als ein typisches Dateisystem. Beispielsweise sind Verzeichnisse in Amazon S3 kein erstklassiges Konzept, sondern basieren stattdessen auf Objektschlüsseln. AWS Transfer Family leitet einen Verzeichnispfad ab, indem der Schlüssel eines Objekts durch den Schrägstrich (/) geteilt wird, das letzte Element als Dateinamen behandelt und dann Dateinamen, die dasselbe Präfix haben, unter demselben Pfad gruppiert werden. Null-Byte-Objekte werden erstellt, um den Pfad eines Ordners darzustellen, wenn Sie mit mkdir oder mithilfe der Amazon S3 S3-Konsole ein leeres Verzeichnis erstellen. Der Schlüssel für diese Objekte endet mit einem abschließenden Schrägstrich. Diese Null-Byte-Objekte werden unter Organisieren von Objekten in der Amazon S3 S3-Konsole mithilfe von Ordnern im Amazon S3 S3-Benutzerhandbuch beschrieben.

Wenn Sie einen ls Befehl ausführen und einige Ergebnisse Amazon S3 S3-Null-Byte-Objekte sind (diese Objekte haben Schlüssel, die mit einem Schrägstrich enden), gibt Transfer Family eine HeadObject Anfrage für jedes dieser Objekte aus (Einzelheiten finden Sie HeadObjectin der Amazon Simple Storage Service API-Referenz). Dies kann zu den folgenden Problemen führen, wenn Sie Amazon S3 als Speicher mit Transfer Family verwenden.

Gewähren Sie die Möglichkeit, nur Dateien zu schreiben und aufzulisten

In einigen Fällen möchten Sie möglicherweise nur Schreibzugriff auf Ihre Amazon S3 S3-Objekte anbieten. Beispielsweise möchten Sie möglicherweise Zugriff auf Schreib- (oder Upload) und Auflisten von Objekten in einem Bucket gewähren, nicht jedoch auf Objekte zum Lesen (Herunterladen). Um mkdir Befehle mithilfe von Dateiübertragungsclients ausführen ls zu können, benötigen Sie Amazon S3 ListObjects und die PutObject entsprechenden Berechtigungen. Wenn Transfer Family jedoch einen HeadObject Aufruf tätigen muss, um Dateien zu schreiben oder aufzulisten, schlägt der Anruf mit der Fehlermeldung Zugriff verweigert fehl, da für diesen Aufruf die GetObject entsprechende Genehmigung erforderlich ist.

Anmerkung

Wenn Sie einen Transfer Family Family-Server erstellen oder aktualisieren, können Sie die Leistung Ihrer Amazon S3 S3-Verzeichnisse optimieren, wodurch HeadObject Anrufe vermieden werden.

In diesem Fall können Sie Zugriff gewähren, indem Sie eine AWS Identity and Access Management (IAM-) Richtlinienbedingung hinzufügen, die die GetObject Berechtigung nur für Objekte hinzufügt, die mit einem Schrägstrich (/) enden. Diese Bedingung verhindert das GetObject Aufrufen von Dateien (sodass sie nicht gelesen werden können), ermöglicht es dem Benutzer jedoch, Ordner aufzulisten und zu durchsuchen. Die folgende Beispielrichtlinie bietet nur Schreib- und Listenzugriff auf Ihre Amazon S3 S3-Buckets. Um diese Richtlinie zu verwenden, DOC-EXAMPLE-BUCKET ersetzen Sie sie durch den Namen Ihres Buckets.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowListing", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" }, { "Sid": "AllowReadWrite", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "DenyIfNotFolder", "Effect": "Deny", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "NotResource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*/" ] } ] }
Anmerkung

Diese Richtlinie erlaubt es Benutzern nicht, Dateien anzuhängen. Mit anderen Worten, ein Benutzer, dem diese Richtlinie zugewiesen wurde, kann keine Dateien öffnen, um ihnen Inhalte hinzuzufügen oder sie zu ändern. Wenn Ihr Anwendungsfall außerdem vor dem Hochladen einer Datei einen HeadObject Anruf erfordert, funktioniert diese Richtlinie nicht für Sie.

Große Anzahl von Null-Byte-Objekten verursacht Latenzprobleme

Wenn Ihre Amazon S3 S3-Buckets eine große Anzahl dieser Null-Byte-Objekte enthalten, gibt Transfer Family viele HeadObject Aufrufe aus, was zu Verarbeitungsverzögerungen führen kann. Die empfohlene Lösung für dieses Problem besteht darin, Optimized Directories zu aktivieren, um die Latenz zu reduzieren.

Nehmen wir zum Beispiel an, Sie gehen in Ihr Home-Verzeichnis und Sie haben 10.000 Unterverzeichnisse. Mit anderen Worten, Ihr Amazon S3 S3-Bucket hat 10.000 Ordner. Wenn Sie in diesem Szenario den Befehl ls (list) ausführen, dauert der Listenvorgang zwischen sechs und acht Minuten. Wenn Sie Ihre Verzeichnisse optimieren, dauert dieser Vorgang jedoch nur wenige Sekunden. Sie legen diese Option während der Servererstellung oder -aktualisierung im Fenster Zusätzliche Details konfigurieren fest. Diese Verfahren werden unter dem Konfiguration eines SFTP-, FTPS- oder FTP-Serverendpunkts Thema detailliert beschrieben.

Anmerkung

GUI-Clients geben möglicherweise einen ls Befehl aus, auf den Sie keinen Einfluss haben. Daher ist es wichtig, diese Einstellung zu aktivieren, wenn Sie können.

Wenn Sie Ihre Verzeichnisse nicht optimieren oder nicht optimieren können, besteht eine alternative Lösung für dieses Problem darin, alle Ihre Null-Byte-Objekte zu löschen. Beachten Sie Folgendes:

  • Leere Verzeichnisse werden nicht mehr existieren. Verzeichnisse existieren nur, weil ihre Namen im Schlüssel eines Objekts stehen.

  • Hindert jemanden nicht daran, erneut anzurufen mkdir und Dinge kaputt zu machen. Sie könnten dies mildern, indem Sie eine Richtlinie erstellen, die die Erstellung von Verzeichnissen verhindert.

  • In einigen Szenarien werden diese 0-Byte-Objekte verwendet. Sie haben beispielsweise eine Struktur wie /inboxes/customer1000 und das Posteingangsverzeichnis wird täglich gereinigt.

Schließlich besteht eine weitere mögliche Lösung darin, die Anzahl der sichtbaren Objekte durch eine Richtlinienbedingung zu begrenzen, um die Anzahl der Aufrufe zu reduzieren. HeadObject Damit dies eine praktikable Lösung ist, müssen Sie akzeptieren, dass Sie möglicherweise nur eine begrenzte Anzahl all Ihrer Unterverzeichnisse anzeigen können.

Ein Amazon EFS-Dateisystem konfigurieren

AWS Transfer Family greift auf Amazon Elastic File System (Amazon EFS) zu, um die Übertragungsanfragen Ihrer Benutzer zu bearbeiten. Daher müssen Sie im Rahmen der Einrichtung Ihres File-Transfer-Protokoll-fähigen Servers ein Amazon EFS-Dateisystem bereitstellen. Sie können ein vorhandenes Dateisystem verwenden oder ein neues erstellen.

Beachten Sie Folgendes:

  • Wenn Sie einen Transfer Family Family-Server und ein Amazon EFS-Dateisystem verwenden, müssen sich der Server und das Dateisystem im selben System befinden AWS-Region.

  • Der Server und das Dateisystem müssen sich nicht im selben Konto befinden. Wenn sich der Server und das Dateisystem nicht in demselben Konto befinden, muss die Dateisystemrichtlinie der Benutzerrolle eine ausdrückliche Genehmigung erteilen.

    Informationen zum Einrichten mehrerer Konten finden Sie im AWS Organizations Benutzerhandbuch unter Verwaltung der AWS Konten in Ihrer Organisation.

  • Wenn Sie Ihre Benutzer einrichten, weisen Sie ihnen jeweils eine IAM-Rolle zu. Diese Rolle bestimmt die Zugriffsebene, die sie auf Ihr Amazon EFS-Dateisystem haben.

  • Einzelheiten zum Mounten eines Amazon EFS-Dateisystems finden Sie unter Bereitstellen von Amazon EFS-Dateisystemen.

Weitere Informationen zur Zusammenarbeit mit AWS Transfer Family Amazon EFS finden Sie unter Verwenden für AWS Transfer Family den Zugriff auf Dateien in Ihrem Amazon EFS-Dateisystem im Amazon Elastic File System-Benutzerhandbuch.

Besitz von Amazon EFS-Dateien

Amazon EFS verwendet das POSIX-Dateiberechtigungsmodell (Portable Operating System Interface), um den Dateibesitz darzustellen.

In POSIX werden Benutzer im System in drei verschiedene Berechtigungsklassen eingeteilt: Wenn Sie einem Benutzer den Zugriff auf Dateien ermöglichen, die in einem Amazon EFS-Dateisystem gespeichert sind AWS Transfer Family, müssen Sie ihm ein „POSIX-Profil“ zuweisen. Dieses Profil wird verwendet, um ihren Zugriff auf Dateien und Verzeichnisse im Amazon EFS-Dateisystem zu bestimmen.

  • Benutzer (u): Besitzer der Datei oder des Verzeichnisses. Normalerweise ist der Ersteller einer Datei oder eines Verzeichnisses auch der Eigentümer.

  • Gruppe (g): Gruppe von Benutzern, die identischen Zugriff auf Dateien und Verzeichnisse benötigen, die sie gemeinsam nutzen.

  • Andere (o): Alle anderen Benutzer, die Zugriff auf das System haben, mit Ausnahme des Besitzers und der Gruppenmitglieder. Diese Berechtigungsklasse wird auch als „Öffentlich“ bezeichnet.

Im POSIX-Berechtigungsmodell ist jedes Dateisystemobjekt (Dateien, Verzeichnisse, symbolische Links, Named Pipes und Sockets) mit den zuvor genannten drei Berechtigungssätzen verknüpft. Amazon EFS-Objekten ist ein Modus im UNIX-Stil zugeordnet. Dieser Moduswert definiert die Berechtigungen zum Ausführen von Aktionen für dieses Objekt.

Darüber hinaus werden Benutzer und Gruppen auf Unix-Systemen numerischen Bezeichnern zugeordnet, die Amazon EFS zur Darstellung von Dateibesitz verwendet. Bei Amazon EFS gehören Objekte einem einzelnen Besitzer und einer einzelnen Gruppe. Amazon EFS verwendet die zugeordneten numerischen IDs, um die Berechtigungen zu prüfen, wenn ein Benutzer versucht, auf ein Dateisystemobjekt zuzugreifen.

Amazon EFS-Benutzer für Transfer Family einrichten

Bevor Sie Ihre Amazon EFS-Benutzer einrichten, können Sie einen der folgenden Schritte ausführen:

Anmerkung

Transfer Family Family-Server unterstützen keine Amazon EFS-Zugriffspunkte zur Festlegung von POSIX-Berechtigungen. Die POSIX-Profile von Transfer Family Family-Benutzern (im vorherigen Abschnitt beschrieben) bieten die Möglichkeit, POSIX-Berechtigungen festzulegen. Diese Berechtigungen werden auf Benutzerebene für einen detaillierten Zugriff auf der Grundlage von UID, GID und sekundären GIDs festgelegt.

Transfer Family Family-Benutzer auf Amazon EFS konfigurieren

Transfer Family ordnet die Benutzer der von Ihnen angegebenen UID/GID und den von Ihnen angegebenen Verzeichnissen zu. Wenn die UID/GID/Verzeichnisse noch nicht in EFS vorhanden sind, sollten Sie sie erstellen, bevor Sie sie in Transfer an einen Benutzer zuweisen. Die Einzelheiten zum Erstellen von Amazon EFS-Benutzern werden unter Arbeiten mit Benutzern, Gruppen und Berechtigungen auf Netzwerkdateisystemebene (NFS) im Amazon Elastic File System-Benutzerhandbuch beschrieben.

Schritte zum Einrichten von Amazon EFS-Benutzern in Transfer Family
  1. Ordnen Sie die EFS-UID und GID für Ihren Benutzer in Transfer Family mithilfe der PosixProfileFelder zu.

  2. Wenn Sie möchten, dass der Benutzer bei der Anmeldung in einem bestimmten Ordner startet, können Sie das EFS-Verzeichnis unter dem HomeDirectoryFeld angeben.

Sie können den Prozess automatisieren, indem Sie eine CloudWatch Regel und eine Lambda-Funktion verwenden. Ein Beispiel für eine Lambda-Funktion, die mit EFS interagiert, finden Sie unter Verwenden von Amazon EFS für AWS Lambda in Ihren serverlosen Anwendungen.

Darüber hinaus können Sie logische Verzeichnisse für Ihre Transfer Family Family-Benutzer konfigurieren. Einzelheiten finden Sie im Logische Verzeichnisse für Amazon EFS konfigurieren Abschnitt des Verwendung logischer Verzeichnisse zur Vereinfachung Ihrer Transfer Family Family-Verzeichnisstrukturen Themas.

Erstellen Sie einen Amazon EFS-Root-Benutzer

Wenn Ihre Organisation bereit ist, den Root-Benutzerzugriff über SFTP/FTPS für die Konfiguration Ihrer Benutzer zu aktivieren, können Sie einen Benutzer erstellen, dessen UID und GID 0 sind (Root-Benutzer), dann diesen Root-Benutzer verwenden, um Ordner zu erstellen und den übrigen Benutzern POSIX-ID-Besitzer zuzuweisen. Der Vorteil dieser Option besteht darin, dass das Amazon EFS-Dateisystem nicht bereitgestellt werden muss.

Führen Sie die unter beschriebenen Schritte aus und geben Sie sowohl für die Benutzer-ID als auch für die Gruppen-ID 0 (Null) ein. Hinzufügen von serviceverwalteten Amazon-EFS-Benutzern

Unterstützte Amazon EFS-Befehle

Die folgenden Befehle werden für Amazon EFS for unterstützt AWS Transfer Family.

  • cd

  • ls/dir

  • pwd

  • put

  • get

  • rename

  • chown: Nur Root-Benutzer (d. h. Benutzer mit uid=0) können den Besitz und die Berechtigungen von Dateien und Verzeichnissen ändern.

  • chmod: Nur Root kann den Besitz und die Berechtigungen von Dateien und Verzeichnissen ändern.

  • chgrp: Wird entweder für Root-Benutzer oder für den Eigentümer der Datei unterstützt, der die Gruppe einer Datei nur in eine seiner sekundären Gruppen ändern kann.

  • ln -s/symlink

  • mkdir

  • rm/delete

  • rmdir

  • chmtime