Configuration d'un mécanisme d'autorisation Lambda entre comptes - Amazon API Gateway

Configuration d'un mécanisme d'autorisation Lambda entre comptes

Vous pouvez à présent utiliser une fonction AWS Lambda provenant d'un compte AWS différent comme fonction de mécanisme d'autorisation d'API. Chaque compte peut se trouver dans n'importe quelle région où Amazon API Gateway est disponible. La fonction de mécanisme d'automatisation Lambda peut utiliser des stratégies d'authentification par jeton de porteur, par exemple OAuth ou SAML. Cela facilite la gestion centralisée et le partage de la fonction de mécanisme d'autorisation Lambda centrale entre plusieurs API API Gateway.

Dans cette section, nous montrons comment configurer une fonction d'autorisation Lambda entre comptes à l'aide de la console Amazon API Gateway.

Ces instructions supposent que vous disposez déjà d'une API API Gateway dans un compte AWS et d'une fonction de mécanisme d'autorisation Lambda dans un autre compte.

Configuration d'un mécanisme d'autorisation Lambda entre comptes à l'aide de la console API Gateway

Connectez-vous à la console Amazon API Gateway dans votre premier compte (celui qui contient votre API) et effectuez les opérations suivantes :

  1. Recherchez votre API et choisissez Authorizers (Mécanismes d'autorisation).

  2. Choisissez Créer une nouveau mécanisme d'autorisation.

  3. Pour l'option Create Authorizer, saisissez le nom d'un mécanisme d'autorisation dans le champ de saisie Name.

  4. Dans Type, choisissez l'option Lambda.

  5. Pour Lambda Function (Fonction Lambda), copiez-collez l'ARN complet de la fonction de mécanisme d'autorisation Lambda que vous avez dans votre deuxième compte.

    Note

    Dans la console Lambda, vous trouverez l'ARN de votre fonction dans le coin supérieur droit de la fenêtre de la console.

  6. Laissez Lambda Invoke Role (Rôle d'appel Lambda) vide pour que la console API Gateway définisse une stratégie basée sur les ressources. La stratégie accorde des autorisations API Gateway pour appeler la fonction Lambda du mécanisme d'autorisation. Vous pouvez également choisir de saisir le nom d'un rôle IAM pour autoriser API Gateway à appeler la fonction Lambda du mécanisme d'autorisation. Pour voir un exemple de rôle, consultez Création d'un rôle IAM assumable.

    Si vous choisissez de laisser la console API Gateway définir la stratégie basée sur les ressources, la boîte de dialogue Add Permission to Lambda Function (Ajouter une autorisation à une fonction Lambda) s'affiche. Choisissez OK. Une fois l'autorisation Lambda créée, vous pouvez la tester avec les valeurs de jeton d'autorisation appropriées pour vérifier qu'elle fonctionne comme prévu.

  7. Pour Lambda Event Payload (Charge utile d'événement Lambda), choisissez Token (Jeton) pour un mécanisme d'autorisation TOKEN ou Request (Demande) pour un mécanisme d'autorisation REQUEST.

  8. Selon le choix effectué à l'étape précédente, exécutez l'une des actions suivantes :

    1. Pour les options Token, procédez comme suit :

      1. Saisissez le nom d'un en-tête dans Token Source. Le client d'API doit inclure un en-tête portant ce nom pour envoyer le jeton d'autorisation au mécanisme d'autorisation Lambda.

      2. Vous pouvez également fournir une instruction RegEx dans le champ de saisie Token Validation (Validation du jeton). API Gateway effectue la validation initiale du jeton d'entrée en fonction de cette expression et appelle le mécanisme d'autorisation quand la validation aboutit. Cela permet de limiter le risque de facturation de jetons non valides.

      3. Pour Authorization Caching, activez ou désactivez l'option Enabled, selon que vous voulez mettre en cache la stratégie d'autorisation générée par le mécanisme d'autorisation ou non. Quand la mise en cache de la stratégie est activée, vous pouvez choisir de remplacer la valeur TTL par défaut (300). La configuration TTL=0 désactive la mise en cache de la stratégie. Si la mise en cache de la stratégie est activée, le nom de l'en-tête spécifié dans Token Source devient la clé du cache.

    2. Pour l'option Request, effectuez les opérations suivantes :

      1. Pour Identity Sources, saisissez un nom de paramètre de demande pour le type de paramètre choisi. Les types de paramètre pris en charge sont Header, Query String, Stage Variable et Context. Pour ajouter d'autres sources d'identité, choisissez Add Identity Source.

        API Gateway utilise les sources d'identité spécifiées comme clé de mise en cache du mécanisme d'autorisation de la demande. Lorsque la mise en cache est activée, API Gateway appelle la fonction Lambda du mécanisme d'autorisation uniquement si toutes les sources d'identité spécifiées sont présentes lors de l'exécution. Si une source d'identité spécifiée est absente, nulle ou vide, API Gateway renvoie une réponse 401 Unauthorized sans appeler la fonction Lambda du mécanisme d'autorisation.

        Lorsque plusieurs sources d'identité sont définies, elles sont toutes utilisées pour obtenir la clé du cache du mécanisme d'autorisation. Si une partie de la clé du cache est modifiée, le mécanisme d'autorisation ignore le document de la stratégie mis en cache et en génère un nouveau.

      2. Pour Authorization Caching (Mise en cache du mécanisme d'autorisation), laissez l'option Enabled (Activée) sélectionnée. Laissez la valeur de TTL définie sur la valeur par défaut (300).

  9. Choisissez Create (Créer) pour créer un mécanisme d'autorisation Lambda pour l'API choisie.

  10. Vous voyez alors apparaître une fenêtre contextuelle indiquant le texte suivant : Add Permission to Lambda Function: You have selected a Lambda function from another account. Please ensure that you have the appropriate Function Policy on this function. You can do this by running the following AWS CLI command from account 123456789012:, suivi d'une chaîne de commande aws lambda add-permission.

  11. Faites un copier-coller de la chaîne de commande aws lambda add-permission dans une fenêtre de l'interface de ligne de commande AWS qui est configurée pour votre deuxième compte. Cela permet d'accorder à votre premier compte l'accès à la fonction de mécanisme d'autorisation Lambda de votre deuxième compte.

  12. Dans la fenêtre contextuelle de l'étape précédente, choisissez OK.