Je souhaite comprendre les différences entre les autorisations de rôle d'exécution de la fonction AWS Lambda et les autorisations d'invocation. Je souhaite également savoir en quoi les deux types d'autorisations AWS Identity and Access Management (IAM) pour Lambda sont différents.
Résolution
Important : Lorsque vous créez des stratégies IAM, il est recommandé de n'accorder que les autorisations nécessaires à l'exécution d'une tâche spécifique.
Autorisations de rôle d'exécution de la 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 à des ressources AWS spécifiques. Lorsque vous n'accordez pas d'autorisations de rôle d'exécution à votre fonction pour un service ou une ressource, la fonction ne peut pas accéder au service ou à la ressource.
Autorisations de rôle d'exécution Lambda
Pour accorder des autorisations de rôle d'exécution Lambda, vous devez répertorier les actions d'API spécifiques au service, telles que s3:GetObject ou sns:Publish, dans l'élément Action d'une instruction de stratégie IAM. Puis, vous associez la stratégie à un rôle d'exécution IAM que votre fonction Lambda assume lorsqu'elle est invoquée.
Pour les services qui génèrent une file d'attente ou un flux de données, vous devez configurer un mappage de sources d'événements afin que Lambda interroge la file d'attente ou le flux de données. Un mappage des sources d'événements utilise les autorisations du rôle d'exécution de la fonction pour lire et gérer les éléments de la source de l'événement.
Remarque : Les autorisations, les structures d’événement, les paramètres et le comportement d’interrogation varient en fonction de la source de l'événement. Pour un exemple de stratégie IAM qui inclut des autorisations d'interrogation Lambda, consultez la section Stratégie IAM pour autoriser une fonction AWS Lambda à accéder aux enregistrements de flux Amazon DynamoDB.
Autorisations d'invocation de la fonction Lambda
Les autorisations d'invocation de la fonction Lambda sont des autorisations IAM qui accordent à un service ou à une ressource spécifique l'autorisation d'invoquer une fonction Lambda. Lorsque vous n'accordez aucune autorisation d'invocation de service ou de ressource pour votre fonction Lambda, le service ou la ressource ne peut pas invoquer votre fonction.
Important : Vous devez accorder l'autorisation d'invocation aux services qui envoient des sources d'événements à la fonction Lambda. Par exemple, utilisez la stratégie basée sur les ressources de la fonction pour autoriser Amazon API Gateway à invoquer une fonction Lambda.
Accorder des autorisations d'invocation
Pour accorder des autorisations d'invocation Lambda, vous devez répertorier l'action d'API lambda:InvokeFunction dans l’élément Action de l’instruction de stratégie basée sur les ressources IAM d'une fonction Lambda. Vous configurez la stratégie basée sur les ressources de la fonction Lambda séparément du rôle d'exécution de la fonction.
Remarque : Dans ce cas, l'identifiant de l'action lambda:InvokeFunction est différent de l'opération d'invocation de l’API. Pour les autres actions, l'identifiant de l'action est le nom de l'opération avec le préfixe lambda:.
Lorsque vous utilisez la console Lambda pour ajouter un déclencheur à votre fonction, les autorisations d'invocation requises sont automatiquement ajoutées à la stratégie basée sur les ressources de la fonction. Pour accorder des autorisations à des comptes ou à des services AWS qui ne sont pas disponibles dans la console, vous devez utiliser l'action d'API AddPermission.
Pour en savoir plus, consultez la page Octroi de l’accès à la fonction Lambda aux services AWS.
Informations connexes
Gestion des autorisations dans AWS Lambda
Utilisation des stratégies gérées par AWS dans le rôle d'exécution