Quelle est la différence entre les autorisations de rôle d'exécution des fonctions Lambda et les autorisations d'appel ?

Dernière mise à jour : 09/03/2022

Je souhaite comprendre les différences entre les autorisations de rôle d'exécution de fonction AWS Lambda et les autorisations d'appel. En quoi les deux types d'autorisations AWS Identity and Access Management (IAM) pour Lambda sont-ils différents ?

Solution

Important : lorsque vous créez des politiques IAM, il est recommandé d'accorder uniquement les autorisations nécessaires à l'exécution d'une tâche spécifique. Pour plus d'informations, consultez la section Accorder le moindre privilège du guide de l'utilisateur IAM.

Autorisations de rôle d'exécution de fonction Lambda

Les autorisations de rôle d'exécution Lambda sont des autorisations IAM qui accordent à une fonction Lambda l'autorisation d'accéder à des services et ressources AWS Cloud spécifiques. Si vous n'accordez pas d'autorisation de rôle d'exécution de fonction pour un service ou une ressource AWS Cloud, la fonction ne peut pas y accéder.

Important : pour les fonctions Lambda qui interrogent d'autres AWS Cloud services, des autorisations de rôle d'exécution permettant à la fonction de récupérer des registres de ces services sont requises.

Méthode permettant d'accorder des autorisations de rôle d'exécution

Les autorisations de rôle d'exécution Lambda sont données sous la forme d'identifiants d'action d'API spécifiques (par exemple s3:GetObject). Ces identifiants d'action sont répertoriés dans l'élément Action d'une déclaration de politique IAM. La politique est ensuite attachée à un rôle IAM nommé rôle d'exécution que votre fonction Lambda assume chaque fois qu'elle est appelée.

Pour les services qui génèrent une file d'attente ou un flux de données, vous devez configurer un mappage de source d'événement pour que Lambda interroge la file d'attente ou le flux de données. Un mappage de source d'événement utilise les autorisations du rôle d'exécution de la fonction afin de lire et gérer les éléments de la source d'événement.

Remarque : les autorisations, la structure des événements, les paramètres et le comportement d'interrogation varient selon la source d'événement. Afin d'obtenir un exemple de politique IAM incluant des autorisations d'interrogation Lambda, veuillez consulter la section Politique IAM pour autoriser une fonction AWS Lambda à accéder aux registres de flux DynamoDB.

Autorisations d'appel de fonction Lambda

Les autorisations d'appel de fonction Lambda sont des autorisations IAM accordant à un service ou à une ressource AWS Cloud spécifique l'autorisation d'appeler une fonction Lambda. Si vous n'accordez pas à un service ou à une ressource d'autorisation d'appel pour votre fonction Lambda, ce service ou cette ressource ne peut pas appeler votre fonction.

Important : pour les fonctions Lambda appelées par des AWS Cloud services transmettant des sources d'événements à la fonction, des autorisations d'appel sont requises.

Méthode permettant d'accorder des autorisations d'appel

Les autorisations d'appel Lambda sont données sous la forme d'un identifiant d'action d'API spécifique : lambda:InvokeFunction. Cet identifiant d'action est répertorié dans l'élément Action de la déclaration de politique basée sur les ressources IAM d'une fonction Lambda. La politique basée sur les ressources d'une fonction Lambda est configurée séparément du rôle d'exécution de la fonction.

Remarque : il s'agit d'un cas particulier où l'identifiant d'action (lambda:InvokeFunction) est différent de l'opération d'API (Invoke). Pour les autres actions, l'identifiant d'action est le nom de l'opération ayant le préfixe lambda:.

Lorsque vous utilisez la console Lambda afin d'ajouter un déclencheur à votre fonction, les autorisations d'appel requises sont ajoutées automatiquement à la politique basée sur les ressources de la fonction. Pour accorder des autorisations à des comptes ou des services qui ne sont pas disponibles dans la console, vous devez utiliser l'action d'API Lambda AddPermission.

Pour plus d'informations, veuillez consulter la section Autorisation d'accès à une fonction pour les services AWS.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?