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.
Einrichtung einer Amazon API Gateway-Methode als benutzerdefinierter Identitätsanbieter
Dieses Tutorial zeigt, wie Sie eine Amazon API Gateway-Methode einrichten und sie als benutzerdefinierten Identitätsanbieter verwenden, um Dateien auf einen AWS Transfer Family Server hochzuladen. In diesem Tutorial werden die Stack-Vorlage Basic
Themen
Voraussetzungen
Bevor Sie die Transfer Family Family-Ressourcen in erstellen AWS CloudFormation, erstellen Sie Ihren Speicher und Ihre Benutzerrolle.
Um Speicherplatz anzugeben und eine Benutzerrolle zu erstellen
Je nachdem, welchen Speicher Sie verwenden, finden Sie weitere Informationen in der folgenden Dokumentation:
Informationen zum Erstellen eines Amazon S3 S3-Buckets finden Sie unter Wie erstelle ich einen S3-Bucket? im Amazon Simple Storage Service-Benutzerhandbuch.
-
Informationen zum Erstellen eines EFS Amazon-Dateisystems finden Sie unterEin EFS Amazon-Dateisystem konfigurieren.
-
Informationen zum Erstellen einer Benutzerrolle finden Sie unter Erstellen Sie eine IAM Rolle und eine Richtlinie
Sie geben die Details für Ihren Speicher und Ihre Benutzerrolle ein, wenn Sie Ihren AWS CloudFormation Stack im nächsten Abschnitt erstellen.
Schritt 1: Erstellen Sie einen CloudFormation Stack
Um einen AWS CloudFormation Stapel aus der bereitgestellten Vorlage zu erstellen
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.
-
Wählen Sie Stack erstellen und dann Mit neuen Ressourcen (Standard) aus.
-
Wählen Sie im Bereich Voraussetzung — Vorlage vorbereiten die Option Vorlage ist bereit aus.
-
Kopieren Sie diesen Link, Basic Stack Template
, und fügen Sie ihn in das Amazon S3 URL S3-Feld ein. -
Klicken Sie auf Weiter.
-
Geben Sie Parameter an, einschließlich eines Namens für Ihren Stack. Stellen Sie sicher, dass Sie Folgendes tun:
Ersetzen Sie die Standardwerte für UserNameund UserPassword.
-
Geben Sie für UserHomeDirectorydie Details für den Speicher (entweder einen Amazon S3 S3-Bucket oder ein EFS Amazon-Dateisystem) ein, den Sie zuvor erstellt haben.
-
Ersetzen Sie den Standard UserRoleArndurch die Benutzerrolle, die Sie zuvor erstellt haben. Die Rolle AWS Identity and Access Management (IAM) muss über die entsprechenden Berechtigungen verfügen. Ein Beispiel für eine IAM Rollen- und Bucket-Richtlinie finden Sie unterSchritt 6: Beschränken Sie den Zugriff auf den Bucket.
-
Wenn Sie sich mit einem öffentlichen Schlüssel statt mit einem Passwort authentifizieren möchten, geben Sie Ihren öffentlichen Schlüssel in das Feld UserPublicKey1 ein. Wenn Sie zum ersten Mal eine Verbindung zum Server herstellenSFTP, geben Sie dann den privaten Schlüssel anstelle eines Kennworts ein.
-
Wählen Sie Weiter und klicken Sie dann auf der Seite Stack-Optionen konfigurieren erneut auf Weiter.
-
Überprüfen Sie die Details für den Stack, den Sie gerade erstellen, und wählen Sie dann Stapel erstellen aus.
Anmerkung
Unten auf der Seite müssen Sie unter Funktionen angeben, dass dadurch AWS CloudFormation möglicherweise IAM Ressourcen erstellt werden.
Schritt 2: Überprüfen Sie die Konfiguration der API Gateway-Methode für Ihren Server
Anmerkung
Um die Sicherheit zu verbessern, können Sie eine Firewall für Webanwendungen konfigurieren. AWS WAF ist eine Firewall für Webanwendungen, mit der Sie die HTTP HTTPS Anfragen überwachen können, die an ein Amazon API Gateway weitergeleitet werden. Details hierzu finden Sie unter Fügen Sie eine Firewall für Webanwendungen hinzu.
Um die API Gateway-Methodenkonfiguration für Ihren Server zu überprüfen und bereitzustellen
-
Öffnen Sie die API Gateway-Konsole unter https://console.aws.amazon.com/apigateway/
. -
Wählen Sie die Basisvorlage Transfer Custom Identity Provider ausAPI, die mit der AWS CloudFormation Vorlage generiert wurde.
-
Wählen Sie GETim Bereich Ressourcen die Option Method Request aus.
-
Wählen Sie für Aktionen die Option Bereitstellen ausAPI. Wählen Sie für die Bereitstellungsphase die Option prod und dann Deploy aus.
Nachdem die API Gateway-Methode erfolgreich bereitgestellt wurde, können Sie sich ihre Leistung im Abschnitt Stage Editor ansehen.
Anmerkung
Kopieren Sie die URLAufrufadresse, die oben auf der Seite angezeigt wird. Sie benötigen sie für den nächsten Schritt.
Schritt 3: Die Transfer Family Family-Serverdetails anzeigen
Wenn Sie die Vorlage verwenden, um einen AWS CloudFormation Stack zu erstellen, wird automatisch ein Transfer Family Family-Server erstellt.
So zeigen Sie Ihre Transfer Family Family-Serverdetails an
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. Wählen Sie den Stack aus, den Sie erstellt haben.
Wählen Sie die Registerkarte Resources (Ressourcen) aus.
Der Server ARN wird in der Spalte Physikalische ID für die TransferServerZeile angezeigt. Die Server-ID ist beispielsweise in der Datei ARN s-11112222333344445 enthalten.
Öffnen Sie die AWS Transfer Family Konsole unter und wählen Sie auf der https://console.aws.amazon.com/transfer/
Seite Server den neuen Server aus. Die Server-ID entspricht der ID, die für die TransferServerRessource in angezeigt wird AWS CloudFormation.
Schritt 4: Testen Sie, ob Ihr Benutzer eine Verbindung zum Server herstellen kann
Um zu testen, ob Ihr Benutzer mithilfe der Transfer Family Family-Konsole eine Verbindung zum Server herstellen kann
Öffnen Sie die AWS Transfer Family Konsole unter https://console.aws.amazon.com/transfer/
. -
Wählen Sie auf der Seite Server Ihren neuen Server aus, klicken Sie auf Aktionen und dann auf Test.
-
Geben Sie den Text für Ihre Anmeldeinformationen in das Feld Benutzername und in das Feld Passwort ein. Dies sind die Werte, die Sie bei der Bereitstellung des AWS CloudFormation Stacks festgelegt haben.
-
Wählen Sie für Serverprotokoll die Option aus SFTP, und geben Sie für Quell-IP den Wert ein
127.0.0.1
. -
Wählen Sie Test aus.
Wenn die Benutzerauthentifizierung erfolgreich ist, gibt der Test eine
StatusCode: 200
HTML Antwort und ein JSON Objekt zurück, das die Details der Rollen und Berechtigungen des Benutzers enthält. Beispielsweise:{ "Response": "{\"Role\": \"arn:aws:iam::
123456789012
:role/my-user-role
\",\"HomeDirectory\": \"/${transfer:HomeBucket}/\"}", "StatusCode": 200, "Message": "", "Url": "https://1a2b3c4d5e
.execute-api.us-east-2
.amazonaws.com/prod/servers/s-1234abcd5678efgh0
/users/myuser
/config" }Wenn der Test fehlschlägt, fügen Sie der Rolle, die Sie für Ihre API verwenden, eine der vom API Gateway AWS verwalteten Richtlinien hinzu.
Schritt 5: Testen Sie die SFTP Verbindung und die Dateiübertragung
Um die SFTP Verbindung zu testen
-
Öffnen Sie auf einem Linux- oder macOS-Gerät ein Befehlsterminal.
-
Geben Sie einen der folgenden Befehle ein, je nachdem, ob Sie ein Passwort oder ein key pair für die Authentifizierung verwenden.
-
Wenn Sie ein Passwort verwenden, geben Sie diesen Befehl ein:
sftp -o PubkeyAuthentication=no
myuser
@server-ID
.server.transfer.region-code
.amazonaws.com.rproxy.goskope.comGeben Sie bei der Aufforderung Ihr Passwort ein.
-
Wenn Sie ein key pair verwenden, geben Sie diesen Befehl ein:
sftp -i
private-key-file
myuser
@server-ID
.server.transfer.region-code
.amazonaws.com
Anmerkung
Geben Sie für diese
sftp
Befehle den Code für den Standort AWS-Region Ihres Transfer Family Family-Servers ein. Wenn sich Ihr Server beispielsweise in USA Ost (Ohio) befindet, geben Sie einus-east-2
. -
-
Stellen Sie bei der
sftp>
Aufforderung sicher, dass Sie Verzeichnisse und Dateien hochladen (put
get
), herunterladen () und anzeigen können (pwd
undls
).
Schritt 6: Beschränken Sie den Zugriff auf den Bucket
Sie können einschränken, wer auf einen bestimmten Amazon S3 S3-Bucket zugreifen kann. Das folgende Beispiel zeigt die Einstellungen, die in Ihrem CloudFormation Stack und in der Richtlinie, die Sie für Ihren Benutzer auswählen, zu verwenden sind.
In diesem Beispiel legen wir die folgenden Parameter für den AWS CloudFormation Stack fest:
CreateServer:
true
UserHomeDirectory:
/myuser-bucket
UserName:
myuser
UserPassword:
MySuperSecretPassword
Wichtig
Dies ist ein Beispielpasswort. Achten Sie bei der Konfiguration Ihrer API Gateway-Methode darauf, dass Sie ein sicheres Passwort eingeben.
UserPublicKey1:
your-public-key
UserRoleArn:
arn:aws:iam::
role-id
:role/myuser-api-gateway-role
Die UserPublicKey1 ist ein öffentlicher Schlüssel, den Sie als Teil eines öffentlichen/privaten key pair generiert haben.
Der
ist einzigartig für die Benutzerrolle, die Sie erstellen. Die dem beigefügte Richtlinie role-id
myuser-api-gateway-role
lautet wie folgt:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::myuser-bucket" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObjectAcl", "s3:GetObject", "s3:DeleteObjectVersion", "s3:DeleteObject", "s3:PutObjectAcl", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::myuser-bucket/*" } ] }
Um eine Verbindung mit dem Server herzustellenSFTP, geben Sie an der Eingabeaufforderung einen der folgenden Befehle ein.
Wenn Sie ein Passwort zur Authentifizierung verwenden, führen Sie den folgenden Befehl aus:
sftp -o PubkeyAuthentication=no
myuser
@transfer-server-ID
.server.transfer.region-id
.amazonaws.com.rproxy.goskope.comGeben Sie bei der Aufforderung Ihr Passwort ein.
-
Wenn Sie ein key pair zur Authentifizierung verwenden, führen Sie den folgenden Befehl aus:
sftp -i
private-key-file
myuser@transfer-server-ID
.server.transfer.region-id
.amazonaws.com
Anmerkung
Verwenden Sie für diese sftp
Befehle die ID des Ortes, AWS-Region an dem sich Ihr Transfer Family Family-Server befindet. Wenn sich Ihr Server beispielsweise in USA Ost (Ohio) befindet, verwenden Sieus-east-2
.
An der sftp
Eingabeaufforderung werden Sie zu Ihrem Home-Verzeichnis weitergeleitet, das Sie anzeigen können, indem Sie den pwd
Befehl ausführen. Beispielsweise:
sftp> pwd Remote working directory: /myuser-bucket
Der Benutzer kann keine Verzeichnisse oberhalb des Home-Verzeichnisses anzeigen. Beispielsweise:
sftp> pwd Remote working directory: /myuser-bucket sftp> cd .. sftp> ls Couldn't read directory: Permission denied
Aktualisieren Sie Lambda, wenn Sie Amazon verwenden EFS
Wenn Sie Amazon EFS als Speicheroption für Ihren Transfer Family Family-Server ausgewählt haben, müssen Sie die Lambda-Funktion für Ihren Stack bearbeiten.
Um Ihrer Lambda-Funktion ein Posix-Profil hinzuzufügen
Öffnen Sie die Lambda-Konsole unter https://console.aws.amazon.com/lambda/
. -
Wählen Sie die Lambda-Funktion aus, die Sie zuvor erstellt haben. Die Lambda-Funktion hat das Format von
stack-name
-GetUserConfigLambda-lambda-identifier
, wostack-name
ist der CloudFormation Stackname undlambda-identifier
ist der Bezeichner für die Funktion. -
Wählen Sie auf der Registerkarte Code die Datei index.js aus, um den Code für die Funktion anzuzeigen.
-
Fügen Sie im
response
die folgende Zeile zwischenPolicy
und hinzuHomeDirectory
:PosixProfile: {"Uid":
uid-value
, "Gid":gid-value
},Wo der
uid-value
andgid-value
sind ganze Zahlen, 0 oder größer, die jeweils die Benutzer-ID und die Gruppen-ID darstellen.Nachdem Sie das Posix-Profil hinzugefügt haben, könnte das Antwortfeld beispielsweise wie folgt aussehen:
response = { Role: 'arn:aws:iam::123456789012:role/api-gateway-transfer-efs-role', // The user will be authenticated if and only if the Role field is not blank Policy: '', // Optional JSON blob to further restrict this user's permissions PosixProfile: {"Gid": 65534, "Uid": 65534}, HomeDirectory: '/fs-fab2c234' // Not required, defaults to '/' };