Configuration d'un API autorisateur Gateway Lambda - APIPasserelle Amazon

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d'un API autorisateur Gateway Lambda

Après avoir créé une fonction Lambda, vous configurez la fonction Lambda en tant qu'autorisateur pour votre. API Vous configurez ensuite votre méthode pour appeler votre autorisateur Lambda afin de déterminer si un appelant peut invoquer votre méthode. Vous pouvez créer une fonction Lambda dans le même compte, ou sur un compte différent, à partir duquel vous avez créé votre. API

Vous pouvez tester votre autorisateur Lambda à l'aide des outils intégrés à la console API Gateway ou à l'aide de Postman. Pour savoir comment utiliser Postman pour tester votre fonction d'autorisation Lambda, consultez. Appelez un API avec un autorisateur API Gateway Lambda

Configuration d'un autorisateur Lambda (console)

La procédure suivante montre comment créer un autorisateur Lambda dans la API console Gateway. REST API Pour en savoir plus sur les différents types d'autorisateurs Lambda, consultez. Choisir un type d'autorisateur Lambda

REQUEST authorizer
Pour configurer un autorisateur REQUEST Lambda
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sélectionnez unAPI, puis choisissez Authorizers.

  3. Choisissez Créer un mécanisme d'autorisation.

  4. Pour Nom du mécanisme d’autorisation, entrez un nom pour le mécanisme d’autorisation.

  5. Pour Type de mécanisme d'autorisation, sélectionnez Lambda.

  6. Pour la fonction Lambda, sélectionnez l' Région AWS endroit où vous avez créé votre fonction d'autorisation Lambda, puis entrez le nom de la fonction.

  7. Laissez le rôle d'appel Lambda vide pour permettre à la REST API console API Gateway de définir une politique basée sur les ressources. La politique accorde à API Gateway l'autorisation d'invoquer la fonction d'autorisation Lambda. Vous pouvez également choisir de saisir le nom d'un IAM rôle pour permettre à API Gateway d'appeler la fonction d'autorisation Lambda. Pour un exemple de rôle, voirCréation d'un rôle IAM assumable.

  8. Pour Charge utile d'événement Lambda, sélectionnez Effectuer une demande.

  9. Pour Type de source d'identité, sélectionnez un type de paramètre. Les types de paramètre pris en charge sont Header, Query string, Stage variable et Context. Pour ajouter des sources d'identité supplémentaires, choisissez Ajouter un paramètre.

  10. Pour mettre en cache la politique d'autorisation générée par le mécanisme d'autorisation, maintenez active l'option Mise en cache des autorisations. Lorsque la mise en cache des politiques est activée, vous pouvez modifier la TTLvaleur. La mise TTLà zéro désactive la mise en cache des politiques.

    Si vous activez la mise en cache, votre autorisateur doit renvoyer une politique applicable à toutes les méthodes d'un. API Pour appliquer une politique spécifique à une méthode, utilisez les variables $context.path de contexte et. $context.httpMethod

  11. Choisissez Créer un mécanisme d'autorisation.

TOKEN authorizer
Pour configurer un autorisateur TOKEN Lambda
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sélectionnez unAPI, puis choisissez Authorizers.

  3. Choisissez Créer un mécanisme d'autorisation.

  4. Pour Nom du mécanisme d’autorisation, entrez un nom pour le mécanisme d’autorisation.

  5. Pour Type de mécanisme d'autorisation, sélectionnez Lambda.

  6. Pour la fonction Lambda, sélectionnez l' Région AWS endroit où vous avez créé votre fonction d'autorisation Lambda, puis entrez le nom de la fonction.

  7. Laissez le rôle d'appel Lambda vide pour permettre à la REST API console API Gateway de définir une politique basée sur les ressources. La politique accorde à API Gateway l'autorisation d'invoquer la fonction d'autorisation Lambda. Vous pouvez également choisir de saisir le nom d'un IAM rôle pour permettre à API Gateway d'appeler la fonction d'autorisation Lambda. Pour un exemple de rôle, voirCréation d'un rôle IAM assumable.

  8. Pour Charge utile d'événement Lambda, sélectionnez Jeton.

  9. Pour Source de jeton, entrez le nom de l'en-tête contenant le jeton d'autorisation. L'appelant doit inclure un en-tête de ce nom pour envoyer le jeton d'autorisation à l'autorisateur Lambda.

  10. (Facultatif) Pour la validation du jeton, entrez une RegEx déclaration. APIGateway effectue la validation initiale du jeton d'entrée par rapport à cette expression et invoque l'autorisateur en cas de validation réussie.

  11. Pour mettre en cache la politique d'autorisation générée par le mécanisme d'autorisation, maintenez active l'option Mise en cache des autorisations. Si la mise en cache de la politique est activée, le nom de l'en-tête spécifié dans Source de jeton devient la clé de cache. Lorsque la mise en cache des politiques est activée, vous pouvez modifier la TTLvaleur. La mise TTLà zéro désactive la mise en cache des politiques.

    Si vous activez la mise en cache, votre autorisateur doit renvoyer une politique applicable à toutes les méthodes d'un. API Pour appliquer une politique spécifique à une méthode, vous pouvez désactiver la mise en cache des autorisations.

  12. Choisissez Créer un mécanisme d'autorisation.

Après avoir créé votre autorisateur Lambda, vous pouvez le tester. La procédure suivante indique comment tester votre autorisateur Lambda.

REQUEST authorizer
Pour tester un autorisateur REQUEST Lambda
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sélectionnez le nom de votre autorisateur.

  3. Sous Autorisateur de test, entrez une valeur pour votre source d'identité.

    Si vous utilisez leExemple de fonction REQUEST Lambda d'autorisation, procédez comme suit :

    1. Sélectionnez En-tête et entrez headerValue1, puis choisissez Ajouter un paramètre.

    2. Sous Type de source d'identité, sélectionnez Chaîne de requête et entrez queryValue1, puis choisissez Ajouter un paramètre.

    3. Sous Type de source d'identité, sélectionnez Variable d'étape et entrez stageValue1.

    Vous ne pouvez pas modifier les variables de contexte pour l'appel de test, mais vous pouvez modifier le modèle d'événement de test APIGateway Authorizer pour votre fonction Lambda. Vous pouvez ensuite tester votre fonction d'autorisation Lambda avec des variables de contexte modifiées. Pour plus d'informations, consultez la section Tester les fonctions Lambda dans la console dans le Guide du AWS Lambda développeur.

  4. Choisissez Tester le mécanisme d'autorisation.

TOKEN authorizer
Pour tester un autorisateur TOKEN Lambda
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sélectionnez le nom de votre autorisateur.

  3. Sous Autorisateur de test, entrez une valeur pour votre jeton.

    Si vous utilisez leExemple de fonction TOKEN Lambda d'autorisation, procédez comme suit :

    1. Pour le authorizationToken, entrezallow.

  4. Choisissez Tester le mécanisme d'autorisation.

    Si votre autorisateur Lambda refuse avec succès une demande dans l'environnement de test, le test répond par une réponse. 200 OK HTTP Toutefois, en dehors de l'environnement de test, API Gateway renvoie une 403 Forbidden HTTP réponse et la demande de méthode échoue.

Configurer un autorisateur Lambda ()AWS CLI

La commande create-authorizer suivante montre comment créer un autorisateur Lambda à l'aide du. AWS CLI

REQUEST authorizer

L'exemple suivant crée un REQUEST autorisateur et utilise l'Authorizeren-tête et la variable de accountId contexte comme sources d'identité :

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Request_Custom_Authorizer' \ --type REQUEST \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization,context.accountId' \ --authorizer-result-ttl-in-seconds 300
TOKEN authorizer

L'exemple suivant crée un TOKEN autorisateur et utilise l'Authorizationen-tête comme source d'identité :

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Token_Custom_Authorizer' \ --type TOKEN \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization' \ --authorizer-result-ttl-in-seconds 300

Après avoir créé votre autorisateur Lambda, vous pouvez le tester. La test-invoke-authorizercommande suivante indique comment tester votre autorisateur Lambda :

aws apigateway test-invoke-authorizer --rest-api-id 1234123412 \ --authorizer-id efg1234 \ --headers Authorization='Value'

Configurer une méthode pour utiliser un autorisateur Lambda (console)

Après avoir configuré votre autorisateur Lambda, vous devez l'associer à une méthode pour votre. API

Pour configurer une API méthode afin d'utiliser un autorisateur Lambda
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Sélectionnez unAPI.

  3. Choisissez Ressources, puis choisissez une nouvelle méthode ou choisissez une méthode existante.

  4. Dans l'onglet Demande de méthode, sous Paramètres de demande de méthode, choisissez Modifier.

  5. Pour Mécanisme d'autorisation, dans le menu déroulant, sélectionnez le mécanisme d'autorisation Lambda que vous venez de créer.

  6. (Facultatif) Si vous souhaitez transmettre le jeton d'autorisation au backend, choisissez les en-têtes de HTTP demande. Choisissez Ajouter un en-tête, puis ajoutez le nom de l'en-tête d'autorisation. Pour Nom, entrez le nom d'en-tête qui correspond au nom de la source du jeton que vous avez spécifié lorsque vous avez créé l'autorisateur Lambda pour le. API Cette étape ne s'applique pas aux mécanismes d'autorisation REQUEST.

  7. Choisissez Enregistrer.

  8. Choisissez Deploy API pour le API déployer sur une étape. Pour un mécanisme d'autorisation REQUEST utilisant les variables d'étape, vous devez également définir les variables d'étape requises et spécifier leurs valeurs dans la page Étapes.

Configurer une méthode pour utiliser un autorisateur Lambda ()AWS CLI

Après avoir configuré votre autorisateur Lambda, vous devez l'associer à une méthode pour votre. API Vous pouvez créer une nouvelle méthode ou utiliser une opération de correctif pour associer un autorisateur à une méthode existante.

La commande put-method suivante montre comment créer une nouvelle méthode utilisant un autorisateur Lambda :

aws apigateway put-method --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method PUT \ --authorization-type CUSTOM \ --authorizer-id efg1234

La commande update-method suivante montre comment mettre à jour une méthode existante pour utiliser un autorisateur Lambda :

aws apigateway update-method \ --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method PUT \ --patch-operations op="replace",path="/authorizationType",value="CUSTOM" op="replace",path="/authorizerId",value="efg1234"