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 :
-
Choisissez votreAPI, puis dans le volet de navigation principal, choisissez Authorizers.
-
Choisissez Créer un mécanisme d'autorisation.
-
Pour Nom du mécanisme d’autorisation, entrez un nom pour le mécanisme d’autorisation.
-
Pour Type de mécanisme d'autorisation, sélectionnez Lambda.
-
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.
-
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. -
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.
-
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'autorisationREQUEST
. -
Selon le choix effectué à l'étape précédente, réalisez l'une des actions suivantes :
-
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.
-
-
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
etContext
. 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.
-
-
Choisissez Créer un mécanisme d'autorisation.
-
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. RemplacezAUTHORIZER_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.