Configuration d'un autorisateur Lambda API Gateway multi-comptes - 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 autorisateur Lambda API Gateway multi-comptes

Vous pouvez désormais également utiliser une AWS Lambda fonction d'un autre AWS compte comme fonction API d'autorisation. Chaque compte peut se trouver dans n'importe quelle région où Amazon API Gateway est disponible. La fonction d'autorisation Lambda peut utiliser des stratégies d'authentification par jeton porteur telles que ou. OAuth SAML Cela facilite la gestion et le partage centralisés d'une fonction d'autorisation Lambda centrale sur plusieurs passerelles. API APIs

Dans cette section, nous expliquons 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 passerelle API dans un AWS compte et d'une fonction d'autorisation Lambda dans un autre compte.

Configuration d'un système d'autorisation Lambda entre comptes à l'aide de la console Gateway API

Connectez-vous à la console Amazon API Gateway avec le compte qui contient le API vôtre, puis effectuez les opérations suivantes :

  1. Choisissez votreAPI, puis dans le volet de navigation principal, choisissez Authorizers.

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

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

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

  5. Pour la fonction Lambda, saisissez la valeur complète de la fonction ARN d'autorisation Lambda que vous avez dans votre deuxième compte.

    Note

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

  6. Un avertissement accompagné d'une chaîne de commande aws lambda add-permission s'affichera. Cette politique autorise API Gateway à invoquer la fonction Lambda de l'autorisateur. Copiez la commande et enregistrez-la pour plus tard. Vous exécuterez la commande après avoir créé le mécanisme d'autorisation.

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

  8. Pour Charge utile d'événement Lambda, sélectionnez Jeton pour un mécanisme d'autorisation TOKEN ou Effectuer une demande pour un mécanisme d'autorisation REQUEST.

  9. Selon le choix effectué à l'étape précédente, réalisez l'une des actions suivantes :

    1. Pour l'option Jeton, procédez comme suit :

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

      • Pour la validation du jeton, entrez éventuellement une RegEx instruction. APIGateway effectue la validation initiale du jeton d'entrée par rapport à cette expression et invoque l'autorisateur en cas de validation réussie. Cela permet de réduire le nombre d'appels vers votreAPI.

      • 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 choisir de modifier la TTLvaleur. La mise TTLà zéro désactive la mise en cache des politiques. 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. Si plusieurs valeurs sont transmises à cet en-tête dans la demande, toutes les valeurs deviennent la clé de cache, l'ordre étant préservé.

        Note

        La TTLvaleur par défaut est de 300 secondes. Actuellement, sa valeur maximale est de 3 600 secondes ; elle ne peut pas être augmentée.

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

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

      • 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 choisir de modifier la TTLvaleur. La mise TTLà zéro désactive la mise en cache des politiques.

        APIGateway utilise les sources d'identité spécifiées comme clé de mise en cache de l'autorisateur de demande. Lorsque la mise en cache est activée, API Gateway appelle la fonction Lambda de l'autorisateur uniquement après avoir vérifié avec succès que toutes les sources d'identité spécifiées sont présentes lors de l'exécution. Si une source d'identification spécifiée est manquante, nulle ou vide, API Gateway renvoie une 401 Unauthorized réponse sans appeler la fonction Lambda de l'autorisateur.

        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. Si un en-tête à plusieurs valeurs est transmis dans la demande, toutes les valeurs font partie de la clé de cache, l'ordre étant préservé.

      • Lorsque la mise en cache est désactivée, il n'est pas nécessaire de spécifier une source d'identité.

    Note

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

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

  11. Collez la chaîne de aws lambda add-permission commande que vous avez copiée à l'étape précédente dans une AWS CLI fenêtre configurée pour votre deuxième compte. Remplacez AUTHORIZER_ID par l'ID de votre mécanisme d'autorisation. Cela permet d'accorder à votre premier compte l'accès à la fonction de mécanisme d'autorisation Lambda de votre deuxième compte.