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.
Konfigurieren Sie einen kontoübergreifenden API Gateway-Lambda-Autorisierer
Sie können jetzt auch eine AWS Lambda Funktion aus einem anderen AWS Konto als Autorisierungsfunktion verwenden. API Jedes Konto kann sich in jeder Region befinden, in der Amazon API Gateway verfügbar ist. Die Lambda-Autorisierungsfunktion kann Bearer-Token-Authentifizierungsstrategien wie oder verwenden. OAuth SAML Dies macht es einfach, eine zentrale Lambda-Autorisierungsfunktion zentral zu verwalten und über mehrere API Gateways hinweg gemeinsam zu nutzen. APIs
In diesem Abschnitt zeigen wir, wie Sie mithilfe der Amazon API Gateway-Konsole eine kontoübergreifende Lambda-Autorisierungsfunktion konfigurieren.
Bei diesen Anweisungen wird davon ausgegangen, dass Sie bereits ein API Gateway API in einem AWS Konto und eine Lambda-Autorisierungsfunktion in einem anderen Konto haben.
Konfigurieren Sie einen kontoübergreifenden Lambda-Autorisierer mithilfe der Gateway-Konsole API
Melden Sie sich bei der Amazon API Gateway-Konsole mit dem Konto an, API in dem Sie angemeldet sind, und gehen Sie dann wie folgt vor:
-
Wählen Sie Ihre API und wählen Sie dann im Hauptnavigationsbereich Authorizers aus.
-
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 Wert ARN für die Lambda-Autorisierungsfunktion ein, die Sie in Ihrem zweiten Konto haben.
Anmerkung
In der Lambda-Konsole finden Sie die ARN für Ihre Funktion 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 Autorisierungs-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. -
Lassen Sie das Feld Lambda-Aufrufrolle leer, damit die API Gateway-Konsole eine ressourcenbasierte Richtlinie festlegen kann. Die Richtlinie gewährt API Gateway die Erlaubnis, die Autorisierungs-Lambda-Funktion aufzurufen. Sie können auch eine IAM Rolle eingeben, damit API Gateway die Autorisierungs-Lambda-Funktion aufrufen kann. Ein Beispiel für eine solche Rolle finden Sie unter Übernehmbare IAM-Rolle erstellen.
-
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 Autorisierungstoken an den Lambda-Autorisierer zu senden.
-
Geben Sie optional für die Token-Validierung eine Anweisung ein RegEx . APIGateway führt eine erste Validierung des Eingabe-Tokens anhand dieses Ausdrucks durch und ruft bei erfolgreicher Überprüfung den Authorizer auf. Dies trägt dazu bei, die Anzahl der Anrufe an Ihre zu reduzieren. API
-
Um die vom Genehmiger generierte Genehmigungsrichtlinie zwischenzuspeichern, lassen Sie Genehmigungs-Caching aktiviert. Wenn das Policy-Caching aktiviert ist, können Sie den TTLWert ändern. Wenn Sie den Wert TTLauf Null setzen, wird das Policy-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
Der TTLStandardwert 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 das Policy-Caching aktiviert ist, können Sie den TTLWert ändern. Wenn Sie den Wert TTLauf Null setzen, wird das Policy-Caching deaktiviert.
APIGateway verwendet die angegebenen Identitätsquellen als Caching-Schlüssel für die Autorisierung von Anfragen. Wenn Caching aktiviert ist, ruft API Gateway die Lambda-Funktion des Autorisierers erst auf, nachdem erfolgreich überprüft wurde, ob alle angegebenen Identitätsquellen zur Laufzeit vorhanden sind. Wenn eine angegebene Identitätsquelle fehlt, Null oder leer ist, gibt API Gateway eine
401 Unauthorized
Antwort zurück, ohne die Autorisierungs-Lambda-Funktion 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
Um das Caching zu aktivieren, muss Ihr Autorisierer eine Richtlinie zurückgeben, die für alle Methoden in einem gilt. API 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.