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.
Sie können jetzt auch eine AWS Lambda Funktion aus einem anderen AWS Konto als API-Autorisierungsfunktion verwenden. Jedes Konto kann sich in jeder Region befinden, in der Amazon API Gateway verfügbar ist. Die Lambda-Autorisierungsfunktion kann Bearer-Token-Authentifizierungsstrategien wie OAuth SAML verwenden. Dies macht es einfach, eine zentrale Lambda-Autorisierungsfunktion zentral zu verwalten und über mehrere API Gateway gemeinsam zu nutzen. APIs
In diesem Abschnitt zeigen wir, wie eine kontoübergreifende Lambda-Genehmigerfunktion mit der Amazon API Gateway-Konsole konfiguriert wird.
Bei diesen Anweisungen wird davon ausgegangen, dass Sie bereits eine API-Gateway-API in einem AWS Konto und eine Lambda-Autorisierungsfunktion in einem anderen Konto haben.
Kontoübergreifenden Lambda-Genehmiger mit der API Gateway-Konsole konfigurieren
Melden Sie sich in der Amazon-API-Gateway-Konsole bei dem Konto an, in dem Ihre API enthalten ist, und gehen Sie wie folgt vor:
-
Wählen Sie Ihre API und dann im Hauptnavigationsbereich Genehmiger.
-
Wählen Sie Genehmiger erstellen aus.
-
Geben Sie unter Name des Genehmigers einen Namen für den Genehmiger ein.
-
Wählen Sie als Genehmiger-Typ Lambda aus.
-
Geben Sie für Lambda-Funktion den vollständigen ARN der Lambda-Genehmigerfunktion aus Ihrem zweiten Konto ein.
Anmerkung
Sie finden den ARN für Ihre Funktion in der Lambda-Konsole in der oberen rechten Ecke des Konsolenfensters.
-
Eine Warnung mit einer
aws lambda add-permission
-Befehlszeichenfolge wird angezeigt. Diese Richtlinie gewährt API Gateway die Berechtigung, die Genehmiger-Lambda-Funktion aufzurufen. Kopieren Sie den Befehl und speichern Sie ihn für später. Führen Sie den Befehl aus, nachdem Sie den Genehmiger erstellt haben. -
Wählen Sie für Lambda-Ereignisnutzlast entweder Token für einen
TOKEN
-Genehmiger oder Anfrage für einenREQUEST
-Genehmiger. -
Abhängig von der Auswahl im vorherigen Schritt führen Sie einen der folgenden Schritte aus:
-
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 die Token-Validierung eine Anweisung ein RegEx . 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.
-
-
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
undContext
. 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.
-
-
Wählen Sie Genehmiger erstellen aus.
-
Fügen Sie die
aws lambda add-permission
Befehlszeichenfolge, die Sie in einem vorherigen Schritt kopiert haben, in ein AWS CLI Fenster ein, das für Ihr zweites Konto konfiguriert ist. Ersetzen SieAUTHORIZER_ID
durch die ID Ihres Genehmigers. Dadurch erhält Ihr erstes Konto Zugriff auf die Lambda-Genehmigerfunktion Ihres zweiten Kontos.