Kontenübergreifenden Lambda-Genehmiger konfigurieren - Amazon API Gateway

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.

Kontenübergreifenden Lambda-Genehmiger konfigurieren

Sie können jetzt auch eine - AWS Lambda Funktion aus einem anderen AWS Konto als API-Genehmigerfunktion verwenden. Jedes Konto kann sich in jeder Region befinden, in der Amazon API Gateway verfügbar ist. Die Lambda-Genehmiger-Funktion unterstützt Bearer-Token-Authentifizierungsstrategien wie OAuth oder SAML. Dies erleichtert die zentrale Verwaltung und gemeinsame Nutzung einer zentralen Lambda-Genehmigerfunktion über mehrere API Gateway-APIs hinweg.

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 über eine API Gateway-API in einem AWS Konto und eine Lambda-Genehmigerfunktion in einem anderen Konto verfügen.

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:

  1. Wählen Sie Ihre API und dann im Hauptnavigationsbereich Genehmiger.

  2. Wählen Sie Genehmiger erstellen aus.

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

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

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

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

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

  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. 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 Sie AUTHORIZER_ID durch die ID Ihres Genehmigers. Dadurch erhält Ihr erstes Konto Zugriff auf die Lambda-Genehmigerfunktion Ihres zweiten Kontos.