Lambda-Genehmiger über die API Gateway-Konsole konfigurieren - Amazon API Gateway

Lambda-Genehmiger über die API Gateway-Konsole konfigurieren

Nachdem Sie die Lambda-Funktion erstellt und überprüft haben, ob sie funktioniert, führen Sie die folgenden Schritte aus, um den API Gateway-Lambda-Genehmiger (früher als benutzerdefinierter Genehmiger bezeichnet) in der API Gateway-Konsole zu konfigurieren.

So konfigurieren Sie einen Lambda-Genehmiger in der API Gateway-Konsole:
  1. Melden Sie sich bei der API Gateway-Konsole an.

  2. Erstellen Sie eine neue oder wählen Sie eine vorhandene API und wählen Sie dann Genehmiger.

  3. Wählen Sie Genehmiger erstellen aus.

  4. Geben Sie unter Name des Genehmigers einen Namen für den Genehmiger ein.

  5. Wählen Sie als Genehmiger-Typ Lambda aus.

  6. Wählen Sie für Lambda-Funktion die AWS-Region aus, in der Sie Ihre Lambda-Genehmigerfunktion erstellt haben, und geben Sie dann den Funktionsnamen ein.

  7. Lassen Sie Lambda-Aufrufrolle leer, damit die API-Gateway-Konsole eine ressourcenbasierte Richtlinie festlegen kann. Die Richtlinie gewährt API Gateway die Berechtigung, die Lambda-Genehmigerfunktion aufzurufen. Sie können auch den Namen einer IAM-Rolle eingeben, damit API Gateway die Genehmiger-Lambda-Funktion aufrufen kann. Ein Beispiel für eine solche Rolle finden Sie unter Übernehmbare IAM-Rolle erstellen.

  8. Wählen Sie für Lambda-Ereignisnutzlast entweder Token für einen TOKEN-Genehmiger oder Anfrage für einen REQUEST-Genehmiger. (Dies entspricht dem Einstellen der type-Eigenschaft auf TOKEN oder REQUEST.)

  9. Abhängig von der Auswahl im vorherigen Schritt führen Sie einen der folgenden Schritte aus:

    1. Gehen Sie für die Option Token wie folgt vor:

      • Geben Sie unter Token-Quelle den Header-Namen ein, der das Genehmigungstoken enthält. Der API-Client muss einen Header mit diesem Namen enthalten, um das Autorisierungs-Token an den Lambda-Genehmiger zu senden.

      • Geben Sie optional für Token-Validierung eine RegEx-Anweisung ein. API Gateway führt eine erste Überprüfung des eingegebenen Token für diesen Ausdruck an und ruft nach der erfolgreichen Validierung den Genehmiger auf. Dies trägt dazu bei, die Anzahl der Aufrufe Ihrer API zu reduzieren.

      • Um die vom Genehmiger generierte Genehmigungsrichtlinie zwischenzuspeichern, lassen Sie Genehmigungs-Caching aktiviert. Wenn ein Caching der Richtlinie aktiviert ist, können Sie den TTL-Wert ändern. Durch die Einstellung TTL = 0 wird das Richtlinien-Caching deaktiviert. Wenn das Richtlinien-Caching aktiviert ist, wird der unter Token-Quelle angegebene Header-Name zum Cache-Schlüssel. Wenn in der Anfrage mehrere Werte an diesen Header übergeben werden, werden alle Werte zum Cache-Schlüssel, wobei die Reihenfolge beibehalten wird.

        Anmerkung

        Die TTL-Standardwert ist 300 Sekunden. Der Höchstwert ist 3.600 Sekunden; dieses Limit kann nicht erhöht werden.

    2. Für die Optionen Request machen Sie Folgendes:

      • Wählen Sie für Identitätsquellen-Typ einen Parametertyp aus. Die unterstützten Parametertypen sind Header, Query string, Stage variable und Context. Um weitere Identitätsquellen hinzuzufügen, wählen Sie Parameter hinzufügen.

      • Um die vom Genehmiger generierte Genehmigungsrichtlinie zwischenzuspeichern, lassen Sie Genehmigungs-Caching aktiviert. Wenn ein Caching der Richtlinie aktiviert ist, können Sie den TTL-Wert ändern. Durch die Einstellung TTL = 0 wird das Richtlinien-Caching deaktiviert.

        API Gateway verwendet die angegebenen Identitätsquellen als Cachingschlüssel für den Anfrageautorisierer. Wenn das Caching aktiviert ist, ruft API Gateway die Lambda-Funktion des Genehmigers erst auf, nachdem erfolgreich überprüft wurde, dass alle angegebenen Identitätsquellen zur Laufzeit vorhanden sind. Wenn eine angegebene Identifikationsquelle fehlt, Null oder leer ist, gibt API Gateway eine 401 Unauthorized-Antwort zurück, ohne die Lambda-Genehmigerfunktion aufzurufen.

        Wenn mehrere Identitätsquellen definiert sind, werden sie alle verwendet, um den Cache-Schlüssel des Genehmigers abzuleiten. Das Ändern von Teilen des Cache-Schlüssels bewirkt, dass der Genehmiger das im Cache befindliche Richtliniendokument verwirft und ein neues erstellt. Wenn in der Anfrage ein Header mit mehreren Werten übergeben wird, werden alle Werte Teil des Cache-Schlüssels, wobei die Reihenfolge beibehalten wird.

      • Wenn das Caching deaktiviert ist, ist es nicht erforderlich, eine Identitätsquelle anzugeben.

    Anmerkung

    Zum Aktivieren der Zwischenspeicherung muss der Genehmiger eine Richtlinie zurückgeben, die für alle Methoden einer API anwendbar ist. Um methodenspezifische Richtlinien durchzusetzen, können Sie Genehmiger-Caching deaktivieren.

  10. Wählen Sie Genehmiger erstellen aus.

  11. Nachdem der Genehmiger für die API erstellt wurde, können Sie den Genehmiger testen, bevor er für eine Methode konfiguriert wird. Um einen Genehmiger zu testen, wählen Sie den Namen des Genehmigers aus.

    1. Geben Sie für den TOKEN-Genehmiger unter Token-Wert ein gültiges Token ein. Wählen Sie Genehmiger testen aus. Das Token wird der Lambda-Funktion als der Header übergeben, den Sie in der Einstellung Token-Quelle des Genehmigers angegeben haben.

    2. Wählen Sie für den REQUEST-Genehmiger unter Identitätsquellen-Typ einen Parametertyp aus und geben Sie einen Wert ein. Um weitere Parameter hinzuzufügen, wählen Sie Parameter hinzufügen aus. Wählen Sie Genehmiger testen aus.

    Zusätzlich zur Verwendung der API-Gateway-Konsole können Sie die AWS CLI oder ein AWS-SDK für API Gateway verwenden, um den Aufruf eines Genehmigers zu testen. Informationen zur Vorgehensweise mithilfe der AWS CLI finden Sie unter test-invoke-authorizer.

    Anmerkung

    Der Testaufruf für Methodenausführungen und der Testaufruf für Genehmiger sind voneinander unabhängige Prozesse.

    Informationen zum Testen des Aufrufs einer Methode über die API Gateway-Konsole finden Sie unter Testen einer REST-API-Methode mithilfe der Konsole. Informationen zum Testen eines Methodenaufrufs mithife der AWS CLI finden Sie unter test-invoke-method.

    Um den Aufruf einer Methode und eines konfigurierten Genehmigers zu testen, stellen Sie die API bereit und verwenden dann cURL oder Postman, um die erforderlichen Token oder Anforderungsparameter bereitzustellen.

Das nächste Verfahren zeigt, wie eine API-Methode für die Verwendung des Lambda-Genehmigers konfiguriert wird.

So konfigurieren Sie eine API-Methode für die Verwendung eines Lambda-Genehmigers:
  1. Wählen Sie Resources aus. Wählen Sie eine neue oder eine vorhandene Methode aus. Falls erforderlich, erstellen Sie eine neue Ressource.

  2. Wählen Sie auf der Registerkarte Methodenanfrage unter Methodenanfrage-Einstellungen die Option Bearbeiten aus.

  3. Wählen Sie für Genehmiger aus dem Drop-down-Menü den Lambda-Genehmiger aus, den Sie gerade erstellt haben.

  4. (Optional) Wenn Sie das Genehmigungstoken an das Backend übergeben möchten, wählen Sie HTTP-Anforderungsheader aus. Wählen Sie Header hinzufügen und fügen Sie dann den Namen des Genehmigungsheaders hinzu. Geben Sie unter Name den Header-Namen ein, der mit dem Namen der Token-Quelle übereinstimmt, den Sie beim Erstellen des Lambda-Genehmigers für die API angegeben haben. Dieser Schritt gilt nicht für REQUEST-Genehmiger.

  5. Wählen Sie Speichern.

  6. Wählen Sie Deploy API aus, um die API für eine Stufe bereitzustellen. Notieren Sie den Wert Invoke URL. Sie benötigen ihn, wenn Sie die API aufrufen. Für einen REQUEST-Genehmiger mit Stufenvariablen müssen Sie auch die erforderlichen Stufenvariablen definieren und ihre Werte auf der Seite Stufen angeben.