

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 Gateway-Methode als benutzerdefinierter Identitätsanbieter
<a name="gateway-api-tutorial"></a>

Dieses Tutorial zeigt, wie Sie eine Amazon API Gateway 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](https://s3.amazonaws.com/aws-transfer-resources/custom-idp-templates/aws-transfer-custom-idp-basic-apig.template.yml) und andere grundlegende Funktionen nur als Beispiel verwendet. 

**Topics**
+ [Voraussetzungen](#prereq-api-gateway-tutorial)
+ [Schritt 1: Erstellen Sie einen CloudFormation Stack](#create-cf-stack)
+ [Schritt 2: Überprüfen Sie die Konfiguration der API Gateway Gateway-Methode für Ihren Server](#deploy-api-gateway)
+ [Schritt 3: Die Transfer Family Family-Serverdetails anzeigen](#create-transfer-server)
+ [Schritt 4: Testen Sie, ob Ihr Benutzer eine Verbindung zum Server herstellen kann](#test-user-server-connect)
+ [Schritt 5: Testen Sie die SFTP-Verbindung und die Dateiübertragung](#test-sftp-connection)
+ [Schritt 6: Beschränken Sie den Zugriff auf den Bucket](#example-bucket)
+ [Aktualisieren Sie Lambda, wenn Sie Amazon EFS verwenden](#lambda-posix)

## Voraussetzungen
<a name="prereq-api-gateway-tutorial"></a>

Bevor Sie die Transfer Family Family-Ressourcen in erstellen CloudFormation, erstellen Sie Ihren Speicher und Ihre Benutzerrolle.

**Um Speicherplatz anzugeben und eine Benutzerrolle zu erstellen**

1. 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?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket-overview.html) im *Amazon Simple Storage Service-Benutzerhandbuch*.
   + Informationen zum Erstellen eines Amazon EFS-Dateisystems finden Sie unter[Ein Amazon EFS-Dateisystem konfigurieren](configure-storage.md#requirements-efs).

1. Informationen zum Erstellen einer Benutzerrolle finden Sie unter [Erstellen Sie eine IAM-Rolle und -Richtlinie](requirements-roles.md)

Sie geben die Details für Ihren Speicher und Ihre Benutzerrolle ein, wenn Sie Ihren CloudFormation Stack im nächsten Abschnitt erstellen.

## Schritt 1: Erstellen Sie einen CloudFormation Stack
<a name="create-cf-stack"></a>

**Um einen AWS CloudFormation Stapel aus der bereitgestellten Vorlage zu erstellen**

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie **Stack erstellen** und anschließend **Mit neuen Ressourcen (Standard)** aus. 

1. Wählen Sie im Bereich **Voraussetzung — Vorlage vorbereiten** die Option **Vorhandene Vorlage auswählen aus**. 

1. Kopieren Sie diesen Link, [Basic Stack Template](https://s3.amazonaws.com/aws-transfer-resources/custom-idp-templates/aws-transfer-custom-idp-basic-apig.template.yml), und fügen Sie ihn in das **Amazon S3 S3-URL-Feld** ein. 

1. Klicken Sie auf **Weiter**. 

1. 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 **UserName**und **UserPassword**.
   + Geben Sie für **UserHomeDirectory**die Details für den Speicher (entweder einen Amazon S3 S3-Bucket oder ein Amazon EFS-Dateisystem) ein, den Sie zuvor erstellt haben.
   + Ersetzen Sie den Standard **UserRoleArn**durch die Benutzerrolle, die Sie zuvor erstellt haben. Die AWS Identity and Access Management (IAM-) Rolle muss über die entsprechenden Berechtigungen verfügen. Ein Beispiel für eine IAM-Rolle und eine Bucket-Richtlinie finden Sie unter. [Schritt 6: Beschränken Sie den Zugriff auf den Bucket](#example-bucket) 
   + Wenn Sie sich mit einem öffentlichen Schlüssel statt mit einem Passwort authentifizieren möchten, geben Sie Ihren öffentlichen Schlüssel in das **UserPublicKey1**Feld ein. Wenn Sie zum ersten Mal über SFTP eine Verbindung zum Server herstellen, geben Sie anstelle eines Kennworts den privaten Schlüssel an. 

1. Wählen Sie **Weiter** und klicken Sie dann auf der Seite **Stack-Optionen konfigurieren** erneut auf **Weiter**. 

1. Ü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 CloudFormation möglicherweise IAM-Ressourcen erstellt werden. 

## Schritt 2: Überprüfen Sie die Konfiguration der API Gateway Gateway-Methode für Ihren Server
<a name="deploy-api-gateway"></a>

**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- und 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](web-application-firewall.md).

**API-Gateway-Caching nicht aktivieren**  
Aktivieren Sie das Caching nicht für Ihre API-Gateway-Methode, wenn Sie sie als benutzerdefinierten Identitätsanbieter für Transfer Family verwenden. Caching ist aus folgenden Gründen unangemessen und für Authentifizierungsanfragen ungültig:  
Jede Authentifizierungsanfrage ist einzigartig und erfordert eine Live-Antwort, keine zwischengespeicherte Antwort
Caching bietet keine Vorteile, da Transfer Family niemals doppelte oder wiederholte Anfragen an das API Gateway sendet.
Wenn Sie das Caching aktivieren, antwortet das API Gateway mit nicht übereinstimmenden Daten, was zu ungültigen Antworten auf Authentifizierungsanfragen führt.

**Um die Konfiguration der API Gateway Gateway-Methode für Ihren Server zu überprüfen und bereitzustellen**

1. <a name="step_invoke_url"></a>

   Öffnen Sie die API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/). 

1. Wählen Sie die **Basisvorlagen-API für Transfer Custom Identity Provider** aus, die von der CloudFormation Vorlage generiert wurde.

1. Wählen Sie im Bereich **Ressourcen** die Option **GET** und anschließend **Method Request** aus.

1. Wählen Sie für **Aktionen** die Option **Deploy API** aus. Wählen Sie für die **Bereitstellungsphase** die Option **prod** und dann **Deploy** aus.

   Nachdem die API Gateway Gateway-Methode erfolgreich bereitgestellt wurde, können Sie sich ihre Leistung im Abschnitt **Stage Editor** ansehen.
**Anmerkung**  
Kopieren Sie die **Aufruf-URL-Adresse**, 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
<a name="create-transfer-server"></a>

Wenn Sie die Vorlage verwenden, um einen CloudFormation Stack zu erstellen, wird automatisch ein Transfer Family Family-Server erstellt.

**So zeigen Sie Ihre Transfer Family Family-Serverdetails an**

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie den Stapel aus, den Sie erstellt haben.

1. Wählen Sie die Registerkarte **Resources (Ressourcen)** aus.  
![Bildschirm mit der Liste der Ressourcen, die bei der Erstellung des CloudFormation Stacks erstellt wurden, wobei die Details für den Transfer Family Family-Server hervorgehoben sind.](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/apig-find-server-id.png)

   Der Server-ARN wird in der Spalte **Physikalische ID** für die **TransferServer**Zeile angezeigt. Die Server-ID ist im ARN enthalten, zum Beispiel **s-11112222333344445**.

1. **Öffnen Sie die AWS Transfer Family Konsole unter und wählen Sie auf der [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)Seite Server den neuen Server aus.**

   Die Server-ID entspricht der ID, die für die **TransferServer**Ressource in angezeigt wird CloudFormation.

## Schritt 4: Testen Sie, ob Ihr Benutzer eine Verbindung zum Server herstellen kann
<a name="test-user-server-connect"></a>

**Um zu testen, ob Ihr Benutzer mithilfe der Transfer Family Family-Konsole eine Verbindung zum Server herstellen kann**

1. Öffnen Sie die AWS Transfer Family Konsole unter [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/).

1. Wählen Sie auf der Seite **Server** Ihren neuen Server aus, klicken Sie auf **Aktionen** und dann auf **Test**.

1. 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 CloudFormation Stacks festgelegt haben.

1. Wählen Sie für **Serverprotokoll** die Option **SFTP** aus, und geben **127.0.0.1** Sie für **Quell-IP** den Wert ein. 

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. Beispiel:

   ```
   {
       "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 von API Gateway AWS verwalteten Richtlinien hinzu. 

## Schritt 5: Testen Sie die SFTP-Verbindung und die Dateiübertragung
<a name="test-sftp-connection"></a>

**Um die SFTP-Verbindung zu testen**

1. Öffnen Sie auf einem Linux- oder macOS-Gerät ein Befehlsterminal. 

1. 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 ` 

     Geben 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 ein**us-east-2**.

1.  Stellen Sie bei der `sftp>` Aufforderung sicher, dass Sie Verzeichnisse und Dateien hochladen (`put``get`), herunterladen () und anzeigen können (`pwd`und`ls`). 

## Schritt 6: Beschränken Sie den Zugriff auf den Bucket
<a name="example-bucket"></a>

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 CloudFormation Stack fest: 
+ **CreateServer**: `true`
+ **UserHomeDirectory**: `/amzn-s3-demo-bucket1`
+ **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`

``Das **UserPublicKey1**ist ein öffentlicher Schlüssel, den Sie als Teil eines public/private key pair generiert haben.

Der `{{role-id}}` ist einzigartig für die Benutzerrolle, die Sie erstellen. Die dem beigefügte Richtlinie `myuser-api-gateway-role` lautet wie folgt: 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:GetObject",
                "s3:DeleteObjectVersion",
                "s3:DeleteObject",
                "s3:PutObjectAcl",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket1/*"
        }
    ]
}
```

 Um über SFTP eine Verbindung zum Server herzustellen, 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` 

  Geben 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 Sie`us-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. Beispiel: 

```
sftp> pwd
Remote working directory: /amzn-s3-demo-bucket1
```

Der Benutzer kann keine Verzeichnisse oberhalb des Home-Verzeichnisses anzeigen. Beispiel: 

```
sftp> pwd
Remote working directory: /amzn-s3-demo-bucket1
sftp> cd ..
sftp> ls
Couldn't read directory: Permission denied
```

## Aktualisieren Sie Lambda, wenn Sie Amazon EFS verwenden
<a name="lambda-posix"></a>

 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**

1. Öffnen Sie die Lambda-Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1.  Wählen Sie die Lambda-Funktion aus, die Sie zuvor erstellt haben. Die Lambda-Funktion hat das Format **{{stack-name}}- GetUserConfigLambda - {{lambda-identifier}}**, wobei {{stack-name}} der CloudFormation Stack-Name und der Bezeichner für die Funktion {{lambda-identifier}} ist. 

1.  Wählen Sie auf der Registerkarte **Code** die Option **index.js** aus, um den Code für die Funktion anzuzeigen. 

1.  Fügen Sie im `response` die folgende Zeile zwischen `Policy` und hinzu`HomeDirectory`: 

    ` PosixProfile: {"Uid": {{uid-value}}, "Gid": {{gid-value}}}, ` 

    Wobei {{gid-value}} es sich bei {{uid-value}} und um ganze Zahlen (0 oder größer) handelt, 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 '/'
       };
   ```