

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.

# Verwenden Sie Amazon API Gateway zur Integration Ihres Identitätsanbieters
<a name="authentication-api-gateway"></a>

In diesem Thema wird beschrieben, wie Sie eine AWS Lambda Funktion verwenden, um eine API-Gateway-Methode zu unterstützen. Verwenden Sie diese Option, wenn Sie eine RESTful API zur Integration Ihres Identitätsanbieters benötigen oder wenn Sie deren Funktionen zum Geoblocking oder AWS WAF zur Ratenbegrenzung von Anfragen nutzen möchten.

Für die meisten Anwendungsfälle wird empfohlen, einen benutzerdefinierten Identitätsanbieter zu konfigurieren, die Verwendung von. [Lösung für einen benutzerdefinierten Identitätsanbieter](custom-idp-toolkit.md)

**Einschränkungen bei der Verwendung eines API Gateway zur Integration Ihres Identitätsanbieters**
+ Diese Konfiguration unterstützt keine benutzerdefinierten Domänen.
+ Diese Konfiguration unterstützt keine private API-Gateway-URL.

Wenn Sie eines davon benötigen, können Sie Lambda als Identitätsanbieter ohne API Gateway verwenden. Details hierzu finden Sie unter [Wird AWS Lambda zur Integration Ihres Identitätsanbieters verwendet](custom-lambda-idp.md).

## Authentifizierung mit einer API-Gateway-Methode
<a name="authentication-custom-ip"></a>

Sie können eine API-Gateway-Methode zur Verwendung als Identitätsanbieter für Transfer Family erstellen. Dieser Ansatz bietet Ihnen eine äußerst sichere Methode zum Erstellen und Bereitstellen APIs. Mit API Gateway können Sie einen HTTPS-Endpunkt erstellen, sodass alle eingehenden API-Operationen mit größerer Sicherheit übertragen werden. Weitere Informationen zum API Gateway-Dienst finden Sie im [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html).

API Gateway bietet eine Autorisierungsmethode mit dem Namen`AWS_IAM`, die Ihnen dieselbe Authentifizierung auf Basis von AWS Identity and Access Management (IAM) bietet, die auch intern AWS verwendet wird. Wenn Sie die Authentifizierung mit aktivieren`AWS_IAM`, können nur Aufrufer mit ausdrücklichen Berechtigungen zum Aufrufen einer API die API-Gateway-Methode dieser API erreichen.

Um Ihre API Gateway Gateway-Methode als benutzerdefinierten Identitätsanbieter für Transfer Family zu verwenden, aktivieren Sie IAM für Ihre API Gateway Gateway-Methode. Im Rahmen dieses Prozesses stellen Sie eine IAM-Rolle mit Berechtigungen für Transfer Family bereit, Ihr Gateway zu verwenden.

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

**So verwenden Sie Ihre API Gateway Gateway-Methode für die benutzerdefinierte Authentifizierung mit Transfer Family**

1. Erstellen Sie einen CloudFormation Stapel. So gehen Sie vor:
**Anmerkung**  
Die Stack-Vorlagen wurden aktualisiert und verwenden nun BASE64 -kodierte Passwörter: Einzelheiten finden Sie unter. [Verbesserungen an den Vorlagen CloudFormation](#base64-templates)

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

   1. Folgen Sie den Anweisungen zum Bereitstellen eines CloudFormation Stacks aus einer vorhandenen Vorlage unter [Auswahl einer Stack-Vorlage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-console-create-stack-template.html) im *AWS CloudFormation Benutzerhandbuch*.

   1. Verwenden Sie eine der folgenden Basisvorlagen, um eine AWS Lambda-gestützte API-Gateway-Methode zur Verwendung als benutzerdefinierter Identitätsanbieter in Transfer Family zu erstellen.
      + [Grundlegende Stack-Vorlage](https://s3.amazonaws.com/aws-transfer-resources/custom-idp-templates/aws-transfer-custom-idp-basic-apig.template.yml)

        Standardmäßig wird Ihre API Gateway Gateway-Methode als benutzerdefinierter Identitätsanbieter verwendet, um einen einzelnen Benutzer auf einem einzelnen Server mithilfe eines hartcodierten SSH-Schlüssels (Secure Shell) oder eines Passworts zu authentifizieren. Nach der Bereitstellung können Sie den Lambda-Funktionscode ändern, um etwas anderes zu tun.
      + [AWS Secrets Manager Vorlage stapeln](https://s3.amazonaws.com/aws-transfer-resources/custom-idp-templates/aws-transfer-custom-idp-secrets-manager-apig.template.yml)

        Standardmäßig authentifiziert sich Ihre API Gateway Gateway-Methode anhand eines Eintrags im Secrets Manager des Formats`aws/transfer/server-id/username`. Darüber hinaus muss das Geheimnis die Schlüssel-Wert-Paare für alle Benutzereigenschaften enthalten, die an Transfer Family zurückgegeben werden. Nach der Bereitstellung können Sie den Lambda-Funktionscode ändern, um etwas anderes zu tun. Weitere Informationen finden Sie im Blogbeitrag [Aktivieren der Kennwortauthentifizierung für die AWS Transfer Family Verwendung AWS Secrets Manager](https://aws.amazon.com/blogs/storage/enable-password-authentication-for-aws-transfer-family-using-aws-secrets-manager-updated/).
      + [Okta-Stack-Vorlage](https://s3.amazonaws.com/aws-transfer-resources/custom-idp-templates/aws-transfer-custom-idp-okta-apig.template.yml)

        Ihre API-Gateway-Methode lässt sich in Okta als benutzerdefinierter Identitätsanbieter in Transfer Family integrieren. Weitere Informationen finden Sie im Blogbeitrag [Okta als Identitätsanbieter verwenden mit](https://aws.amazon.com/blogs/storage/using-okta-as-an-identity-provider-with-aws-transfer-for-sftp/). AWS Transfer Family

   Die Bereitstellung eines dieser Stacks ist der einfachste Weg, einen benutzerdefinierten Identitätsanbieter in den Transfer Family Family-Workflow zu integrieren. Jeder Stack verwendet die Lambda-Funktion, um Ihre API-Methode auf Basis von API Gateway zu unterstützen. Anschließend können Sie Ihre API-Methode als benutzerdefinierten Identitätsanbieter in Transfer Family verwenden. Standardmäßig authentifiziert die Lambda-Funktion einen einzelnen Benutzer, der `myuser` mit dem Passwort aufgerufen wird. `MySuperSecretPassword` Nach der Bereitstellung können Sie diese Anmeldeinformationen bearbeiten oder den Lambda-Funktionscode aktualisieren, um etwas anderes zu tun.
**Wichtig**  
Wir empfehlen, dass Sie die standardmäßigen Benutzer- und Kennwortanmeldedaten bearbeiten.

   Nachdem der Stack bereitgestellt wurde, können Sie Details dazu auf der Registerkarte **Ausgaben** in der CloudFormation Konsole einsehen. Zu diesen Details gehören der Amazon-Ressourcenname (ARN) des Stacks, der ARN der IAM-Rolle, die der Stack erstellt hat, und die URL für Ihr neues Gateway.
**Anmerkung**  
Wenn Sie die Option des benutzerdefinierten Identitätsanbieters verwenden, um die passwortbasierte Authentifizierung für Ihre Benutzer zu aktivieren, und Sie die von API Gateway bereitgestellte Anfrage- und Antwortprotokollierung aktivieren, protokolliert API Gateway die Passwörter Ihrer Benutzer in Ihren Amazon Logs. CloudWatch Wir empfehlen nicht, dieses Protokoll in Ihrer Produktionsumgebung zu verwenden. Weitere Informationen finden Sie unter [ CloudWatch API-Protokollierung in API Gateway einrichten](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-logging.html) im *API Gateway Developer Guide*.

1. Überprüfen Sie die Konfiguration der API Gateway Gateway-Methode für Ihren Server. So gehen Sie vor:

   1. Ö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. Möglicherweise müssen Sie Ihre Region auswählen, um Ihre Gateways zu sehen.

   1. Wählen Sie im Bereich **Ressourcen** die Option **GET** aus. Der folgende Screenshot zeigt die korrekte Methodenkonfiguration.  
![\[API-Konfigurationsdetails mit den Methodenkonfigurationsparametern für die Anforderungspfade und die für die URL-Abfragezeichenfolge.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/apig-config-method-fields.png)

   Zu diesem Zeitpunkt ist Ihr API-Gateway bereit für die Bereitstellung.

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 unter **Stufen** **> Phasendetails** ansehen, wie im folgenden Screenshot gezeigt.
**Anmerkung**  
Kopieren Sie die **Invoke-URL-Adresse**, die oben auf dem Bildschirm angezeigt wird. Möglicherweise benötigen Sie sie für den nächsten Schritt.  
![\[Details zur Phase, wobei die Aufruf-URL hervorgehoben ist.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/apig-config-method-invoke.png)

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

1. Eine Transfer Family sollte für Sie erstellt worden sein, als Sie den Stack erstellt haben. Wenn nicht, konfigurieren Sie Ihren Server mithilfe dieser Schritte.

   1. Wählen Sie **Server erstellen**, um die Seite **Server erstellen** zu öffnen. **Wählen Sie für Wählen Sie einen Identitätsanbieter** die Option **Benutzerdefiniert** und dann **Amazon API Gateway verwenden, um eine Verbindung zu Ihrem Identitätsanbieter** herzustellen, wie im folgenden Screenshot gezeigt.  
![\[Der Identitätsanbieter-Bildschirm mit ausgewähltem Custom Identity Provider und ausgewähltem API Gateway für die Verbindung mit Ihrem Identitätsanbieter.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/create-server-choose-idp-custom.png)

   1. Fügen Sie in das Textfeld **Geben Sie eine Amazon API Gateway Gateway-URL** ein die **Aufruf-URL-Adresse** des API Gateway-Endpunkts ein, den Sie in Schritt 3 dieses Verfahrens erstellt haben.

   1. Wählen Sie unter **Rolle** die IAM-Rolle aus, die mit der CloudFormation Vorlage erstellt wurde. Diese Rolle ermöglicht es Transfer Family, Ihre API-Gateway-Methode aufzurufen.

      Die Aufrufrolle enthält den CloudFormation Stack-Namen, den Sie für den Stack ausgewählt haben, den Sie in Schritt 1 erstellt haben. Es hat das folgende Format:`CloudFormation-stack-name-TransferIdentityProviderRole-ABC123DEF456GHI`.

   1. Füllen Sie die verbleibenden Felder aus und wählen Sie dann **Server erstellen**. Einzelheiten zu den verbleibenden Schritten zum Erstellen eines Servers finden Sie unter[Konfiguration eines SFTP-, FTPS- oder FTP-Serverendpunkts](tf-server-endpoint.md).

## Implementierung Ihrer API-Gateway-Methode
<a name="authentication-api-method"></a>

Um einen benutzerdefinierten Identitätsanbieter für Transfer Family zu erstellen, muss Ihre API-Gateway-Methode eine einzelne Methode implementieren, die einen Ressourcenpfad von hat`/servers/serverId/users/username/config`. Die `username` Werte `serverId` und stammen aus dem RESTful Ressourcenpfad. Fügen Sie außerdem `sourceIp` und `protocol` als **URL-Abfragezeichenfolgenparameter** zur **Methodenanforderung** hinzu, wie in der folgenden Abbildung gezeigt.

![\[Der Ressourcenbildschirm des API Gateway mit den GET Methodendetails.\]](http://docs.aws.amazon.com/de_de/transfer/latest/userguide/images/apig-config-method-request.png)


**Anmerkung**  
Der Benutzername muss mindestens 3 und maximal 100 Zeichen lang sein. Sie können die folgenden Zeichen im Benutzernamen verwenden: a—z, A-Z, 0—9, Unterstrich '\$1', Bindestrich '-', Punkt '.' und das Zeichen '@'. Der Benutzername darf nicht mit einem Bindestrich '-', einem Punkt '.' oder einem Zeichen '@' beginnen.

Wenn Transfer Family versucht, Ihren Benutzer mit einem Passwort zu authentifizieren, stellt der Dienst ein `Password:` Header-Feld bereit. In Ermangelung eines `Password:` Headers versucht Transfer Family, Ihren Benutzer mit einer Authentifizierung mit öffentlichem Schlüssel zu authentifizieren.

Wenn Sie einen Identitätsanbieter zur Authentifizierung und Autorisierung von Endbenutzern verwenden, können Sie neben der Überprüfung ihrer Anmeldeinformationen auch Zugriffsanfragen auf der Grundlage der IP-Adressen der von Ihren Endbenutzern verwendeten Clients zulassen oder ablehnen. Mit dieser Funktion können Sie sicherstellen, dass auf Daten, die in Ihren S3-Buckets oder Ihrem Amazon EFS-Dateisystem gespeichert sind, über die unterstützten Protokolle nur von IP-Adressen aus zugegriffen werden kann, die Sie als vertrauenswürdig angegeben haben. Um diese Funktion zu aktivieren, müssen Sie sie `sourceIp` in der Abfragezeichenfolge angeben.

Wenn Sie mehrere Protokolle für Ihren Server aktiviert haben und den Zugriff mit demselben Benutzernamen über mehrere Protokolle ermöglichen möchten, können Sie dies tun, sofern die für jedes Protokoll spezifischen Anmeldeinformationen in Ihrem Identitätsanbieter eingerichtet wurden. Um diese Funktion zu aktivieren, müssen Sie den `protocol` Wert in den RESTful Ressourcenpfad aufnehmen.

Ihre API Gateway Gateway-Methode sollte immer den HTTP-Statuscode zurückgeben`200`. Jeder andere HTTP-Statuscode bedeutet, dass beim Zugriff auf die API ein Fehler aufgetreten ist.

**Amazon S3 S3-Beispielantwort**  
Der Beispielantworttext ist ein JSON-Dokument der folgenden Form für Amazon S3.

```
{
 "Role": "IAM role with configured S3 permissions",
 "PublicKeys": [
     "ssh-rsa public-key1",
     "ssh-rsa public-key2"
  ],
 "Policy": "STS Assume role session policy",
 "HomeDirectory": "/amzn-s3-demo-bucket/path/to/home/directory"
}
```

**Anmerkung**  
 Der Richtlinie wird JSON als Zeichenfolge maskiert. Beispiel:   

****  

```
"Policy":
"{
  \"Version\": \"2012-10-17\",
  \"Statement\":
     [
     {\"Condition\":
        {\"StringLike\":
            {\"s3:prefix\":
               [\"user/*\", \"user/\"]}},
     \"Resource\": \"arn:aws:s3:::amzn-s3-demo-bucket\",
     \"Action\": \"s3:ListBucket\",
     \"Effect\": \"Allow\",
     \"Sid\": \"ListHomeDir\"},
     {\"Resource\": \"arn:aws:s3:::*\",
        \"Action\": [\"s3:PutObject\",
        \"s3:GetObject\",
        \"s3:DeleteObjectVersion\",
        \"s3:DeleteObject\",
        \"s3:GetObjectVersion\",
        \"s3:GetObjectACL\",
        \"s3:PutObjectACL\"],
     \"Effect\": \"Allow\",
     \"Sid\": \"HomeDirObjectAccess\"}]
}"
```

Die folgende Beispielantwort zeigt, dass ein Benutzer einen logischen Home-Verzeichnistyp hat.

```
{
   "Role": "arn:aws:iam::123456789012:role/transfer-access-role-s3",
   "HomeDirectoryType":"LOGICAL",
   "HomeDirectoryDetails":"[{\"Entry\":\"/\",\"Target\":\"/amzn-s3-demo-bucket1\"}]",
   "PublicKeys":[""]
}
```

**Amazon EFS-Beispielantwort**  
Der Beispielantworttext ist ein JSON-Dokument der folgenden Form für Amazon EFS.

```
{
 "Role": "IAM role with configured EFS permissions",
 "PublicKeys": [
     "ssh-rsa public-key1",
     "ssh-rsa public-key2"
  ],
 "PosixProfile": {
   "Uid": "POSIX user ID",
   "Gid": "POSIX group ID",
   "SecondaryGids": [Optional list of secondary Group IDs],
 },
 "HomeDirectory": "/fs-id/path/to/home/directory"
}
```

Das `Role` Feld zeigt, dass eine erfolgreiche Authentifizierung stattgefunden hat. Bei der Passwortauthentifizierung (wenn Sie einen `Password:` Header angeben), müssen Sie keine öffentlichen SSH-Schlüssel angeben. Wenn ein Benutzer nicht authentifiziert werden kann, z. B. wenn das Passwort falsch ist, sollte Ihre Methode eine Antwort zurückgeben, die nicht gesetzt ist. `Role` Ein Beispiel für eine solche Antwort ist ein leeres JSON-Objekt.

 Die folgende Beispielantwort zeigt einen Benutzer mit einem logischen Home-Verzeichnistyp. 

```
{
    "Role": "arn:aws:iam::123456789012:role/transfer-access-role-efs",
    "HomeDirectoryType": "LOGICAL",
    "HomeDirectoryDetails":"[{\"Entry\":\"/\",\"Target\":\"/faa1a123\"}]",
    "PublicKeys":[""],
    "PosixProfile":{"Uid":65534,"Gid":65534}
}
```

Sie können Benutzerrichtlinien in die Lambda-Funktion im JSON-Format aufnehmen. Weitere Informationen zur Konfiguration von Benutzerrichtlinien in Transfer Family finden Sie unter[Verwaltung von Zugriffssteuerungen](users-policies.md).

## Standard-Lambda-Funktion
<a name="authentication-lambda-examples-default"></a>

Um verschiedene Authentifizierungsstrategien zu implementieren, bearbeiten Sie die Lambda-Funktion, die Ihr Gateway verwendet. Um Ihnen zu helfen, die Anforderungen Ihrer Anwendung zu erfüllen, können Sie die folgenden Lambda-Beispielfunktionen in Node.js verwenden. Weitere Informationen zu Lambda finden Sie im [AWS Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) oder im [Building Lambda functions with Node.js](https://docs.aws.amazon.com/lambda/latest/dg/lambda-nodejs.html).

Die folgende Lambda-Beispielfunktion verwendet Ihren Benutzernamen, Ihr Passwort (wenn Sie eine Passwortauthentifizierung durchführen), Ihre Server-ID, Ihr Protokoll und Ihre Client-IP-Adresse. Sie können eine Kombination dieser Eingaben verwenden, um nach Ihrem Identitätsanbieter zu suchen und festzustellen, ob die Anmeldung akzeptiert werden soll.

**Anmerkung**  
Wenn Sie mehrere Protokolle für Ihren Server aktiviert haben und den Zugriff mit demselben Benutzernamen über mehrere Protokolle ermöglichen möchten, können Sie dies tun, sofern die für das Protokoll spezifischen Anmeldeinformationen in Ihrem Identitätsanbieter eingerichtet wurden.  
Für das File Transfer Protocol (FTP) empfehlen wir, separate Anmeldeinformationen für Secure Shell (SSH) File Transfer Protocol (SFTP) und File Transfer Protocol over SSL (FTPS) zu verwenden. Wir empfehlen, separate Anmeldeinformationen für FTP zu verwenden, da FTP im Gegensatz zu SFTP und FTPS Anmeldeinformationen im Klartext überträgt. Wenn FTP-Anmeldeinformationen von SFTP oder FTPS isoliert werden, bleiben Ihre Workloads, die SFTP oder FTPS verwenden, sicher, wenn FTP-Anmeldeinformationen geteilt oder offengelegt werden.

Diese Beispielfunktion gibt die Rollen- und logischen Basisverzeichnisdetails zusammen mit den öffentlichen Schlüsseln zurück (sofern sie die Authentifizierung mit öffentlichen Schlüsseln durchführt).

Wenn Sie vom Service verwaltete Benutzer erstellen, legen Sie deren Basisverzeichnis fest, entweder logisch oder physisch. In ähnlicher Weise benötigen wir die Ergebnisse der Lambda-Funktion, um die gewünschte physische oder logische Verzeichnisstruktur des Benutzers zu vermitteln. Die von Ihnen festgelegten Parameter hängen vom Wert für das [https://docs.aws.amazon.com//transfer/latest/APIReference/API_CreateUser.html#TransferFamily-CreateUser-request-HomeDirectoryType](https://docs.aws.amazon.com//transfer/latest/APIReference/API_CreateUser.html#TransferFamily-CreateUser-request-HomeDirectoryType)Feld ab.
+ `HomeDirectoryType`gesetzt auf `PATH` — das `HomeDirectory` Feld muss dann ein absolutes Amazon S3 S3-Bucket-Präfix oder ein absoluter Amazon EFS-Pfad sein, der für Ihre Benutzer sichtbar ist.
+ `HomeDirectoryType`gesetzt auf `LOGICAL` — Legen Sie *kein* `HomeDirectory` Feld fest. Stattdessen legen wir ein `HomeDirectoryDetails` Feld fest, das die gewünschten Entry/Target Zuordnungen bereitstellt, ähnlich den im [https://docs.aws.amazon.com//transfer/latest/APIReference/API_CreateUser.html#TransferFamily-CreateUser-request-HomeDirectoryMappings](https://docs.aws.amazon.com//transfer/latest/APIReference/API_CreateUser.html#TransferFamily-CreateUser-request-HomeDirectoryMappings)Parameter beschriebenen Werten für vom Service verwaltete Benutzer.

Die Beispielfunktionen sind unter aufgeführt. [Beispiele für Lambda-Funktionen](custom-lambda-idp.md#lambda-auth-examples)

## Lambda-Funktion zur Verwendung mit AWS Secrets Manager
<a name="authentication-lambda-examples-secrets-mgr"></a>

Um sie AWS Secrets Manager als Identitätsanbieter zu verwenden, können Sie mit der Lambda-Funktion in der CloudFormation Beispielvorlage arbeiten. Die Lambda-Funktion fragt den Secrets Manager Manager-Dienst mit Ihren Anmeldeinformationen ab und gibt bei Erfolg ein bestimmtes Geheimnis zurück. Weitere Informationen zu Secrets Manager finden Sie im [Benutzerhandbuch für AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html).

Um eine CloudFormation Beispielvorlage herunterzuladen, die diese Lambda-Funktion verwendet, rufen Sie den [Amazon S3 S3-Bucket auf, der von bereitgestellt wird AWS Transfer Family](https://s3.amazonaws.com/aws-transfer-resources/custom-idp-templates/aws-transfer-custom-idp-secrets-manager-apig.template.yml).

## Verbesserungen an den Vorlagen CloudFormation
<a name="base64-templates"></a>

An den veröffentlichten CloudFormation Vorlagen wurden Verbesserungen an der API Gateway Gateway-Schnittstelle vorgenommen. Die Vorlagen verwenden jetzt BASE64 -kodierte Passwörter mit dem API Gateway. Ihre bestehenden Bereitstellungen funktionieren auch ohne diese Erweiterung, lassen jedoch keine Passwörter zu, deren Zeichen außerhalb des grundlegenden US-ASCII-Zeichensatzes liegen.

Die Änderungen in der Vorlage, die diese Funktion ermöglichen, lauten wie folgt:
+ Die `GetUserConfigRequest AWS::ApiGateway::Method` Ressource muss diesen `RequestTemplates` Code haben (die kursiv gedruckte Zeile ist die aktualisierte Zeile)

  ```
  RequestTemplates:
     application/json: |
     {
        "username": "$util.urlDecode($input.params('username'))",
        "password": "$util.escapeJavaScript($util.base64Decode($input.params('PasswordBase64'))).replaceAll("\\'","'")",
        "protocol": "$input.params('protocol')",
        "serverId": "$input.params('serverId')",
        "sourceIp": "$input.params('sourceIp')"
  }
  ```
+ Der Wert `RequestParameters` für die `GetUserConfig` Ressource muss geändert werden, damit der `PasswordBase64` Header verwendet werden kann (die kursiv gedruckte Zeile ist die aktualisierte Zeile):

  ```
  RequestParameters:
     method.request.header.PasswordBase64: false
     method.request.querystring.protocol: false
     method.request.querystring.sourceIp: false
  ```

**Um zu überprüfen, ob die Vorlage für Ihren Stack die neueste ist**

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

1. Wählen Sie aus der Liste der Stacks Ihren Stack aus.

1. Wählen Sie im Detailbereich die Registerkarte **Vorlage** aus.

1. Achten Sie auf Folgendes:
   + Suchen Sie nach dieser Zeile und stellen Sie sicher`RequestTemplates`, dass Sie sie haben:

     ```
     "password": "$util.escapeJavaScript($util.base64Decode($input.params('PasswordBase64'))).replaceAll("\\'","'")",
     ```
   + Suchen Sie nach dieser Zeile und stellen Sie sicher`RequestParameters`, dass Sie sie haben:

     ```
     method.request.header.PasswordBase64: false
     ```

Wenn Sie die aktualisierten Zeilen nicht sehen, bearbeiten Sie Ihren Stapel. Einzelheiten zum Aktualisieren Ihres CloudFormation Stacks finden Sie unter [Ändern einer Stack-Vorlage](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-get-template.html) im *AWS CloudFormation; Benutzerhandbuch*.