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 et rôles IAM pour Lambda@Edge
Pour configurer Lambda@Edge, vous devez disposer des autorisations et des rôles IAM pour AWS Lambda :
-
Autorisations IAM : ces autorisations vous permettent de créer votre fonction Lambda et de l'associer CloudFront à votre distribution.
-
Un rôle d’exécution de fonction Lambda (rôle IAM) : les principaux de service Lambda assument ce rôle pour exécuter votre fonction.
-
Rôles liés à un service pour Lambda @Edge — Les rôles liés à un service permettent à des utilisateurs spécifiques de Services AWS répliquer des fonctions Lambda dans des fichiers journaux et de les utiliser. Régions AWS CloudWatch CloudFront
Autorisations IAM requises pour associer les fonctions Lambda @Edge aux distributions CloudFront
Outre les autorisations IAM dont vous avez besoin pour Lambda, vous avez besoin des autorisations suivantes pour associer les fonctions Lambda aux distributions : CloudFront
-
lambda:GetFunction: accorde l’autorisation d’obtenir les informations de configuration de votre fonction Lambda ainsi qu’une URL pré-signée pour télécharger un fichier.zipcontenant la fonction. -
lambda:EnableReplication*: accorde une autorisation à la politique de ressource afin que le service de réplication Lambda puisse récupérer le code et la configuration de la fonction. -
lambda:DisableReplication*: accorde une autorisation à la politique de ressource afin que le service de réplication Lambda puisse supprimer la fonction.Important
Vous devez ajouter l’astérisque (
*) à la fin des actionslambda:EnableReplication*etlambda:DisableReplication*. -
Pour la ressource, spécifiez l'ARN de la version de fonction que vous souhaitez exécuter lorsqu'un CloudFront événement se produit, comme dans l'exemple suivant :
arn:aws:lambda:us-east-1:123456789012:function:TestFunction:2 -
iam:CreateServiceLinkedRole— Accorde l'autorisation de créer un rôle lié à un service que Lambda @Edge utilise pour répliquer les fonctions Lambda. CloudFront Après avoir configuré Lambda@Edge pour la première fois, le rôle lié au service est créé automatiquement pour vous. Il n’est pas nécessaire d’ajouter cette autorisation aux autres distributions qui utilisent Lambda@Edge. -
cloudfront:UpdateDistributionoucloudfront:CreateDistribution: accorde l’autorisation de mettre à jour ou de créer une distribution.
Pour plus d’informations, consultez les rubriques suivantes :
-
Autorisations d’accès aux ressources Lambda dans le Guide du développeur AWS Lambda
Rôle d'exécution de fonction pour les principaux de service
Vous devez créer un rôle IAM que les principaux de service lambda.amazonaws.com et edgelambda.amazonaws.com peuvent assumer lorsqu’ils exécutent votre fonction.
Astuce
Lorsque vous créez votre fonction dans la console Lambda, vous pouvez choisir de créer un nouveau rôle d'exécution à l'aide d'un modèle de AWS politique. Cette étape ajoute automatiquement les autorisations Lambda@Edge requises pour exécuter votre fonction. Consultez l’étape 5 du Didacticiel : création d’une fonction Lambda@Edge simple.
Pour plus d’informations sur la création manuelle d’un rôle IAM, consultez Création des rôles et association des politiques (console) dans le Guide de l’utilisateur IAM.
Exemple : stratégie d’approbation du rôle
Vous pouvez ajouter ce rôle sous l’onglet Relations d’approbation dans la console IAM. N’ajoutez pas cette politique sous l’onglet Autorisations.
Pour plus d’informations sur les autorisations que vous devez associer au rôle d’exécution, consultez Autorisations d’accès aux ressources Lambda dans le Guide du développeur AWS Lambda .
Remarques
-
Par défaut, chaque fois qu'un CloudFront événement déclenche une fonction Lambda, les données sont écrites dans Logs. CloudWatch Si vous souhaitez utiliser ces journaux, le rôle d'exécution doit être autorisé à écrire des données dans les CloudWatch journaux. Vous pouvez utiliser le AWSLambdaBasicExecutionRole prédéfini pour accorder l’autorisation nécessaire au rôle d’exécution.
Pour plus d'informations sur CloudWatch les journaux, consultezJournaux des fonctions de périphérie.
-
Si votre code de fonction Lambda accède à d'autres AWS ressources, telles que la lecture d'un objet depuis un compartiment S3, le rôle d'exécution doit être autorisé pour effectuer cette action.
Rôles liés à un service pour Lambda@Edge
Lambda@Edge utilise des rôles liés à un service IAM. Un rôle lié à un service est un type unique de rôle IAM lié directement à un service. Les rôles liés à un service sont prédéfinis par le service et comprennent toutes les autorisations nécessaires au service pour appeler d'autres services AWS en votre nom.
Lambda@Edge utilise les rôles liés à un service IAM suivants :
-
AWSServiceRoleForLambdaReplicator – Lambda@Edge utilise ce rôle pour autoriser Lambda@Edge à répliquer des fonctions vers Régions AWS.
Lorsque vous ajoutez un déclencheur Lambda @Edge pour la première fois CloudFront, un rôle nommé AWSServiceRoleForLambdaReplicator est créé automatiquement pour permettre à Lambda @Edge de répliquer des fonctions sur. Régions AWS Ce rôle est obligatoire pour utiliser les fonctions Lambda@Edge. L’ARN du rôle AWSServiceRoleForLambdaReplicator ressemble à l’exemple suivant :
arn:aws:iam::123456789012:role/aws-service-role/replicator.lambda.amazonaws.com/AWSServiceRoleForLambdaReplicator -
AWSServiceRoleForCloudFrontLogger— CloudFront utilise ce rôle pour transférer les fichiers journaux dans CloudWatch. Vous pouvez utiliser des fichiers journaux pour corriger les erreurs de validation Lambda@Edge.
Le AWSServiceRoleForCloudFrontLogger rôle est créé automatiquement lorsque vous ajoutez une association de fonctions Lambda @Edge pour permettre de transférer les fichiers CloudFront journaux d'erreurs Lambda @Edge vers. CloudWatch L’ARN pour le rôle AWSServiceRoleForCloudFrontLogger prend la forme suivante :
arn:aws:iam::account_number:role/aws-service-role/logger.cloudfront.amazonaws.com/AWSServiceRoleForCloudFrontLogger
Un rôle lié à un service simplifie la configuration et l'utilisation de Lambda@Edge, car vous n'avez pas besoin d'ajouter manuellement les autorisations requises. Lambda@Edge définit les autorisations de ses rôles liés un service et seul Lambda@Edge peut endosser ces rôles. Les autorisations définies comprennent la politique d'approbation et la politique d'autorisations. Vous ne pouvez pas attacher la politique d'autorisations à une autre entité IAM.
Vous devez supprimer toutes les ressources associées CloudFront ou Lambda @Edge avant de pouvoir supprimer un rôle lié à un service. Cela vous aide à protéger vos ressources Lambda@Edge afin d’éviter la suppression d’un rôle lié à un service qui est encore nécessaire pour accéder à des ressources actives.
Pour plus d’informations sur les rôles liés à un service, consultez Rôles liés à un service pour CloudFront.
Autorisations du rôle lié à un service pour Lambda@Edge
Lambda@Edge utilise deux rôles liés à un service nommé AWSServiceRoleForLambdaReplicator et AWSServiceRoleForCloudFrontLogger. Les sections suivantes décrivent comment gérer les autorisations pour chacun de ces rôles.
Table des matières
Autorisations du rôle lié à un service pour Lambda Replicator
Ce rôle lié à un service permet à Lambda de répliquer les fonctions Lambda@Edge vers Régions AWS.
Le rôle lié à un service AWSServiceRoleForLambdaReplicator fait confiance au service replicator.lambda.amazonaws.com pour endosser le rôle.
La politique d'autorisations du rôle permet à Lambda@Edge de réaliser les actions suivantes sur les ressources spécifiées :
-
lambda:CreateFunctionsurarn:aws:lambda:*:*:function:* -
lambda:DeleteFunctionsurarn:aws:lambda:*:*:function:* -
lambda:DisableReplicationsurarn:aws:lambda:*:*:function:* -
iam:PassRolesurall AWS resources -
cloudfront:ListDistributionsByLambdaFunctionsurall AWS resources
Autorisations de rôle liées au service pour l'enregistreur CloudFront
Ce rôle lié à un service permet de CloudFront transférer des fichiers journaux CloudWatch afin que vous puissiez corriger les erreurs de validation Lambda @Edge.
Le rôle lié à un service AWSServiceRoleForCloudFrontLogger fait confiance au service logger.cloudfront.amazonaws.com pour endosser le rôle.
La politique d’autorisations du rôle permet à Lambda@Edge de réaliser les actions suivantes sur les ressources arn:aws:logs:*:*:log-group:/aws/cloudfront/* spécifiées :
-
logs:CreateLogGroup -
logs:CreateLogStream -
logs:PutLogEvents
Vous devez configurer les autorisations de manière à permettre à une entité IAM (comme un utilisateur, groupe ou rôle) de supprimer les rôles liés à un service Lambda@Edge. Pour plus d’informations, consultez Autorisations de rôles liés à un service dans le Guide de l’utilisateur IAM.
Création de rôles liés à un service pour Lambda@Edge
Vous n'avez généralement pas besoin de créer manuellement les rôles liés à un service pour Lambda@Edge. Le service crée les rôles automatiquement pour vous dans les scénarios suivants :
-
Lorsque vous créez un déclencheur pour la première fois, le service crée le rôle AWSServiceRoleForLambdaReplicator (s’il n’existe pas encore.). Ce rôle permet à Lambda de répliquer les fonctions Lambda@Edge vers Régions AWS.
Si vous supprimez le rôle lié à un service, le rôle sera à nouveau créé lorsque vous ajouterez un nouveau déclencheur pour Lambda@Edge dans une distribution.
-
Lorsque vous mettez à jour ou créez une CloudFront distribution associée à Lambda @Edge, le service crée le AWSServiceRoleForCloudFrontLogger rôle (si le rôle n'existe pas déjà). Ce rôle permet CloudFront de transférer vos fichiers journaux vers CloudWatch.
Si vous supprimez le rôle lié à un service, le rôle sera créé à nouveau lorsque vous mettrez à jour ou créerez une CloudFront distribution associée à Lambda @Edge.
Pour créer manuellement ces rôles liés à un service, vous pouvez exécuter les commandes suivantes AWS Command Line Interface (AWS CLI) :
Pour créer le rôle AWSServiceRoleForLambdaReplicator
-
Exécutez la commande suivante.
aws iam create-service-linked-role --aws-service-name replicator.lambda.amazonaws.com
Pour créer le rôle AWSServiceRoleForCloudFrontLogger
-
Exécutez la commande suivante.
aws iam create-service-linked-role --aws-service-name logger.cloudfront.amazonaws.com
Modification des rôles liés à un service Lambda@Edge.
Lambda@Edge ne vous permet pas de modifier les rôles liés à un service AWSServiceRoleForLambdaReplicator ou AWSServiceRoleForCloudFrontLogger. Une fois que le service a créé un rôle lié à un service, vous ne pouvez pas changer le nom du rôle, car plusieurs entités peuvent y faire référence. Néanmoins, vous pouvez utiliser IAM pour modifier la description du rôle. Pour plus d’informations, consultez Modification d’un rôle lié à un service dans le Guide de l’utilisateur IAM.
Pris en charge Régions AWS pour les rôles liés au service Lambda @Edge
CloudFront prend en charge l'utilisation de rôles liés à un service pour Lambda @Edge dans les domaines suivants : Régions AWS
-
USA Est (Virginie du Nord) –
us-east-1 -
USA Est (Ohio) –
us-east-2 -
USA Ouest (Californie du Nord) –
us-west-1 -
USA Ouest (Oregon) –
us-west-2 -
Asie-Pacifique (Mumbai) –
ap-south-1 -
Asie-Pacifique (Séoul) –
ap-northeast-2 -
Asie-Pacifique (Singapour) –
ap-southeast-1 -
Asie-Pacifique (Sydney) –
ap-southeast-2 -
Asie-Pacifique (Tokyo) :
ap-northeast-1 -
Europe (Francfort) –
eu-central-1 -
Europe (Irlande) –
eu-west-1 -
Europe (Londres) –
eu-west-2 -
South America (São Paulo) –
sa-east-1