Définition des autorisations de fonction Lambda avec un rôle d’exécution - AWS Lambda

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.

Définition des autorisations de fonction Lambda avec un rôle d’exécution

Le rôle d'exécution d'une fonction Lambda est un rôle Gestion des identités et des accès AWS (IAM) qui accorde à la fonction l'autorisation d'accès Services AWS et de ressources. Par exemple, vous pouvez créer un rôle d'exécution autorisé à envoyer des journaux à Amazon CloudWatch et à y télécharger des données de suivi AWS X-Ray. Cette page fournit des informations sur la façon de créer, d’afficher et de gérer le rôle d’exécution d’une fonction Lambda.

Lambda assume automatiquement votre rôle d’exécution lorsque vous appelez votre fonction. Vous devez éviter d’appeler sts:AssumeRole manuellement afin d’assumer le rôle d’exécution dans votre code de fonction. Si votre cas d’utilisation nécessite que le rôle soit assumé par lui-même, vous devez inclure le rôle lui-même en tant que principal approuvé dans la politique d’approbation de votre rôle. Pour en savoir plus sur la procédure de modification d’une politique d’approbation des rôles, consultez Modification d’une politique d’approbation de rôle (console)dans le Guide de l’utilisateur IAM.

Pour que Lambda assume correctement votre rôle d’exécution, la politique de confiance du rôle doit spécifier le principal de service Lambda (lambda.amazonaws.com) comme un service de confiance.

Création d’un rôle d’exécution dans la console IAM

Par défaut, Lambda crée un rôle d’exécution avec des autorisations minimales lorsque vous créez une fonction dans la console Lambda. Plus précisément, ce rôle d'exécution inclut la politique AWSLambdaBasicExecutionRole gérée, qui donne à votre fonction les autorisations de base pour consigner des événements sur Amazon CloudWatch Logs. Vous pouvez sélectionner Créer un rôle par défaut dans la section Autorisations.

Vous pouvez choisir un rôle existant en sélectionnant Utiliser un autre rôle dans la section Autorisations. Si votre fonction Lambda a besoin d'autorisations supplémentaires pour effectuer des tâches telles que la mise à jour des entrées dans une base de données Amazon DynamoDB en réponse à des événements, vous pouvez créer un rôle d'exécution personnalisé avec les autorisations nécessaires. Pour ce faire, sélectionnez Utiliser un autre rôle dans la section Autorisations, qui ouvre un tiroir dans lequel vous pouvez personnaliser vos autorisations.

Pour configurer un rôle d'exécution depuis la console
  1. Entrez un nom de rôle dans la section Détails du rôle.

  2. Dans la section Stratégie, sélectionnez Utiliser la politique existante.

  3. Sélectionnez les politiques AWS gérées que vous souhaitez associer à votre rôle. Par exemple, si votre fonction doit accéder à DynamoDB, sélectionnez la politique gérée par DBExecutionDynamo AWSLambda Role.

  4. Choisissez Créer un rôle.

Lorsque vous créez une fonction dans la console Lambda, vous pouvez également associer à la fonction n'importe quel rôle d'exécution que vous avez créé précédemment. Si vous souhaitez associer un nouveau rôle d'exécution à une fonction existante, suivez les étapes décrites dans Mettre à jour le rôle d'exécution d'une fonction.

Création et gestion des rôles à l'aide du AWS CLI

Pour créer un rôle d'exécution avec le AWS Command Line Interface (AWS CLI), utilisez la create-role commande. Lorsque vous utilisez cette commande, vous pouvez préciser la politique d’approbation en ligne. La politique d’approbation d’un rôle accorde aux principaux spécifiés l’autorisation d’assumer le rôle. Dans l’exemple suivant, vous accordez au service Lambda l’autorisation principale d’assumer votre rôle. Notez que les exigences relatives à l’échappement des guillemets dans la chaîne JSON peuvent varier en fonction de votre shell.

aws iam create-role \ --role-name lambda-ex \ --assume-role-policy-document '{"Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'

Vous pouvez également définir la politique d’approbation pour le rôle à l’aide d’un fichier JSON séparé. Dans l’exemple suivant, le fichier trust-policy.json se trouve dans le répertoire actuel.

Exemple trust-policy.json
JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
aws iam create-role \ --role-name lambda-ex \ --assume-role-policy-document file://trust-policy.json

Pour ajouter des autorisations au rôle, utilisez la commande attach-policy-to-role. La commande suivante ajoute la politique gérée AWSLambdaBasicExecutionRole au rôle d’exécution lambda-ex.

aws iam attach-role-policy --role-name lambda-ex --policy-arn arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole

Après avoir créé votre rôle d’exécution, attachez-le à votre fonction. Lorsque vous créez une fonction dans la console Lambda, vous pouvez attacher n’importe quel rôle d’exécution précédemment créé à la fonction. Si vous souhaitez attacher un nouveau rôle d’exécution à une fonction existante, suivez les étapes décrites dans Mise à jour du rôle d’exécution d’une fonction.

Accorder un accès assorti d’un privilège minimum à votre rôle d’exécution Lambda

Lorsque vous créez pour la première fois un rôle IAM pour votre fonction Lambda pendant la phase de développement, il peut arriver que vous accordiez des autorisations au-delà de ce que est nécessaire. Avant de publier votre fonction dans l’environnement de production, une bonne pratique consiste à ajuster la stratégie de manière à inclure uniquement les autorisations requises. Pour en savoir plus, consultez Appliquer les autorisations de moindre privilège dans le Guide de l’utilisateur IAM.

Utilisez IAM Access Analyzer pour identifier les autorisations requises pour la stratégie de rôle d’exécution IAM. IAM Access Analyzer examine vos AWS CloudTrail journaux pendant la période que vous spécifiez et génère un modèle de politique avec uniquement les autorisations utilisées par la fonction pendant cette période. Vous pouvez utiliser le modèle pour créer une stratégie gérée avec des autorisations affinées, puis l’attacher au rôle IAM. Ainsi, vous n'accordez que les autorisations dont le rôle a besoin pour interagir avec les AWS ressources correspondant à votre cas d'utilisation spécifique.

Pour en savoir plus, consultez Générer des stratégies basées sur l’activité d’accès dans le Guide de l’utilisateur IAM.