Configurare un autorizzatore API Gateway Lambda per più account - Amazon API Gateway

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurare un autorizzatore API Gateway Lambda per più account

Ora puoi anche utilizzare una AWS Lambda funzione di un AWS account diverso come funzione di autorizzazione. API Ogni account può trovarsi in qualsiasi regione in cui Amazon API Gateway è disponibile. La funzione di autorizzazione Lambda può utilizzare strategie di autenticazione con token portatori come o. OAuth SAML Ciò semplifica la gestione e la condivisione centralizzata di una funzione di autorizzazione Lambda centrale su più gateway. API APIs

In questa sezione, mostriamo come configurare una funzione di autorizzazione Lambda per più account utilizzando la console Amazon API Gateway.

Queste istruzioni presuppongono che tu abbia già un API Gateway API in un AWS account e una funzione di autorizzazione Lambda in un altro account.

Configurare un autorizzatore Lambda per più account utilizzando la console Gateway API

Accedi alla console Amazon API Gateway con l'account che contiene il tuoAPI, quindi procedi come segue:

  1. Scegli il tuoAPI, quindi nel pannello di navigazione principale scegli Autorizzatori.

  2. Scegli Create Authorizer (Crea autorizzazioni).

  3. In Nome del provider di autorizzazioni, immetti il nome di un provider di autorizzazioni.

  4. In Tipo di autorizzazione, seleziona Lambda.

  5. Per Lambda Function, inserisci il valore completo ARN per la funzione di autorizzazione Lambda che hai nel tuo secondo account.

    Nota

    Nella console Lambda, puoi trovare la funzione ARN per la tua funzione nell'angolo in alto a destra della finestra della console.

  6. Verrà visualizzato un avviso con una stringa del comando aws lambda add-permission. Questa politica concede a API Gateway l'autorizzazione a richiamare la funzione di autorizzazione Lambda. Copiare il comando e salvarlo per un secondo momento. È possibile eseguire il comando dopo aver creato l'autorizzatore.

  7. Lascia vuoto il ruolo di richiamo Lambda per consentire alla console API Gateway di impostare una policy basata sulle risorse. La politica concede a API Gateway l'autorizzazione a richiamare la funzione di autorizzazione Lambda. Puoi anche scegliere di inserire un IAM ruolo per consentire a API Gateway di richiamare la funzione di autorizzazione Lambda. Per un esempio di ruolo, consulta Creazione di un ruolo IAM assumibile.

  8. In Payload evento Lambda, scegli Token per una funzione di autorizzazione basata su TOKEN o Richiesta per una funzione di autorizzazione basata su REQUEST.

  9. A seconda dell'opzione scelta in precedenza, esegui una di queste operazioni:

    1. Per l'opzione Token esegui le operazioni indicate di seguito:

      • In Origine token, immetti il nome dell'intestazione contenente il token di autorizzazione. Il API client deve includere un'intestazione con questo nome per inviare il token di autorizzazione all'autorizzatore Lambda.

      • Facoltativamente, per la convalida del token, inserisci una dichiarazione. RegEx APIGateway esegue la convalida iniziale del token di input rispetto a questa espressione e richiama l'autorizzatore dopo la convalida riuscita. Questo aiuta a ridurre le chiamate al tuo. API

      • Per memorizzare nella cache la policy di autorizzazione generata dalla funzione di autorizzazione, attiva l'opzione Autorizzazione caching. Quando la memorizzazione nella cache delle policy è abilitata, puoi scegliere di modificare il TTLvalore. L'impostazione TTLsu zero disabilita la memorizzazione nella cache delle policy. Quando la memorizzazione della policy nella cache è abilitata, il nome dell'intestazione specificato in Origine token diventa la chiave della cache. Se nella richiesta vengono passati più valori a questa intestazione, tutti i valori diventeranno la chiave della cache, con l'ordine mantenuto.

        Nota

        Il TTLvalore predefinito è 300 secondi. Il valore massimo è 3600 secondi e non è possibile aumentare questo limite.

    2. Per l'opzione Request (Richiesta), esegui queste operazioni:

      • In Tipo di origine identità, seleziona un tipo di parametro. I tipi di parametri supportati sono Header, Query string, Stage variable e Context. Per aggiungere altre origini di identità, scegli Aggiungi parametro.

      • Per memorizzare nella cache la policy di autorizzazione generata dalla funzione di autorizzazione, attiva l'opzione Autorizzazione caching. Quando la memorizzazione nella cache delle policy è abilitata, è possibile scegliere di modificare il TTLvalore. L'impostazione TTLsu zero disabilita la memorizzazione nella cache delle policy.

        APIGateway utilizza le fonti di identità specificate come chiave di memorizzazione nella cache dell'autorizzazione della richiesta. Quando la memorizzazione nella cache è abilitata, API Gateway chiama la funzione Lambda dell'autorizzatore solo dopo aver verificato con successo che tutte le fonti di identità specificate siano presenti in fase di esecuzione. Se una fonte di identificazione specificata è mancante, nulla o vuota, API Gateway restituisce una 401 Unauthorized risposta senza chiamare la funzione Lambda dell'autorizzazione.

        Quando sono definite più origini di identità, vengono utilizzate tutte per derivare la chiave cache delle autorizzazioni. Se vengono modificate parti della chiave cache, le autorizzazioni rimuovono il documento di policy memorizzato nella cache e ne generano uno nuovo. Se nella richiesta viene passata un'intestazione con più valori, tutti i valori diventeranno la chiave della cache, con l'ordine mantenuto.

      • Quando la memorizzazione nella cache è disattivata, non è necessario specificare un'origine di identità.

    Nota

    Per abilitare la memorizzazione nella cache, l'autorizzatore deve restituire una politica applicabile a tutti i metodi di un. API Per applicare policy specifiche del metodo, puoi disattivare l'opzione Autorizzazione caching.

  10. Scegli Create Authorizer (Crea autorizzazioni).

  11. Incolla la stringa di aws lambda add-permission comando che hai copiato in un passaggio precedente in una AWS CLI finestra configurata per il tuo secondo account. Sostituire AUTHORIZER_ID con l'ID del proprio autorizzatore. In questo modo, al primo account verrà concesso l'accesso alla funzione di autorizzazione Lambda del secondo account.