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 IAM des autorisations et des rôles pour Lambda @Edge
Pour configurer Lambda @Edge, vous devez disposer des IAM autorisations et des rôles suivants pour : AWS Lambda
-
IAMautorisations — Ces autorisations vous permettent de créer votre fonction Lambda et de l'associer à votre CloudFront distribution.
-
Un rôle d'exécution de fonction Lambda (IAMrôle) — Les responsables du 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
IAMautorisations requises pour associer les fonctions Lambda @Edge aux distributions CloudFront
Outre les IAM autorisations 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 des informations de configuration pour votre fonction Lambda et un présigné URL pour télécharger un.zip
fichier contenant la fonction. -
lambda:EnableReplication*
— Accorde l'autorisation à la politique de ressources afin que le service de réplication Lambda puisse obtenir le code de fonction et la configuration. -
lambda:DisableReplication*
— Accorde l'autorisation à la politique de ressources afin que le service de réplication Lambda puisse supprimer la fonction.Important
Vous devez ajouter l'astérisque (
*
) à la fin deslambda:DisableReplication*
actionslambda:EnableReplication*
et. -
Pour la ressource, spécifiez la version ARN de la 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é à un service est automatiquement créé pour vous. Il n'est pas nécessaire d'ajouter cette autorisation aux autres distributions qui utilisent Lambda @Edge. -
cloudfront:UpdateDistribution
oucloudfront:CreateDistribution
— Autorise la mise à jour ou la création d'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 IAM rôle que les responsables lambda.amazonaws.com
et les responsables du edgelambda.amazonaws.com
service 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 IAM rôle, consultez la section Création de rôles et attachement de politiques (console) dans le guide de IAM l'utilisateur.
Exemple : politique de confiance dans les rôles
Vous pouvez ajouter ce rôle sous l'onglet Trust Relationship de la IAM console. N'ajoutez pas cette politique sous l'onglet Autorisations.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com", "edgelambda.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
Pour plus d'informations sur les autorisations que vous devez accorder au rôle d'exécution, consultez la section Autorisations d'accès aux ressources Lambda dans le Guide du AWS Lambda développeur.
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 prédéfini AWSLambdaBasicExecutionRole pour accorder l'autorisation au rôle d'exécution.
Pour plus d'informations sur CloudWatch les journaux, consultezJournaux des fonctions Edge.
-
Si le code de votre 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 IAM service. Un rôle lié à un service est un type unique de IAM rôle directement lié à 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 aux IAM services 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 requis pour utiliser les fonctions Lambda @Edge. Le ARN pour le AWSServiceRoleForLambdaReplicator le rôle 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 un rôle est créé automatiquement lorsque vous ajoutez une association de fonctions Lambda @Edge pour permettre de transférer les CloudFront fichiers journaux d'erreurs Lambda @Edge vers. CloudWatch Le ARN pour le AWSServiceRoleForCloudFrontLogger le rôle ressemble à ceci :
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 stratégie d'approbation et la stratégie d'autorisations. Vous ne pouvez associer la politique d'autorisation à aucune autre IAM entité.
Vous devez supprimer toutes les ressources associées CloudFront ou Lambda @Edge avant de pouvoir supprimer un rôle lié à un service. Cela permet de protéger vos ressources Lambda @Edge afin de ne pas supprimer un rôle lié à un service qui est toujours nécessaire pour accéder aux 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és AWSServiceRoleForLambdaReplicator et AWSServiceRoleForCloudFrontLogger. Les sections suivantes décrivent 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 AWSServiceRoleForLambdaReplicator un rôle lié à un service fait confiance au replicator.lambda.amazonaws.com
service pour assumer 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:CreateFunction
surarn:aws:lambda:*:*:function:*
-
lambda:DeleteFunction
surarn:aws:lambda:*:*:function:*
-
lambda:DisableReplication
surarn:aws:lambda:*:*:function:*
-
iam:PassRole
surall AWS resources
-
cloudfront:ListDistributionsByLambdaFunction
surall 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 AWSServiceRoleForCloudFrontLogger un rôle lié à un service fait confiance au logger.cloudfront.amazonaws.com
service pour assumer le rôle.
La politique d'autorisation des rôles permet à Lambda @Edge d'effectuer les actions suivantes sur la ressource spécifiée arn:aws:logs:*:*:log-group:/aws/cloudfront/*
:
-
logs:CreateLogGroup
-
logs:CreateLogStream
-
logs:PutLogEvents
Vous devez configurer les autorisations pour autoriser une IAM entité (telle qu'un utilisateur, un groupe ou un rôle) à supprimer les rôles liés au service Lambda @Edge. Pour plus d'informations, consultez la section Autorisations relatives aux rôles liés à un service dans le Guide de l'IAMutilisateur.
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 AWSServiceRoleForLambdaReplicator rôle (s'il n'existe pas déjà). Ce rôle permet à Lambda de répliquer les fonctions Lambda @Edge sur. 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 dotée d'une association Lambda @Edge, le service crée 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 AWSServiceRoleForLambdaReplicator rôle
-
Exécutez la commande suivante.
aws iam create-service-linked-role --aws-service-name replicator.lambda.amazonaws.com
Pour créer le AWSServiceRoleForCloudFrontLogger rôle
-
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 le AWSServiceRoleForLambdaReplicator or AWSServiceRoleForCloudFrontLogger rôles liés aux services. Une fois que le service a créé un rôle lié au service, vous ne pouvez pas modifier le nom du rôle car différentes entités peuvent y faire référence. Toutefois, vous pouvez l'utiliser IAM pour modifier la description du rôle. Pour plus d'informations, consultez la section Modification d'un rôle lié à un service dans le Guide de l'IAMutilisateur.
Pris en charge Régions AWS pour les CloudFront rôles liés à un service
CloudFront prend en charge l'utilisation de rôles liés à un service pour Lambda @Edge dans les domaines suivants : Régions AWS
-
US East (N. Virginia) –
us-east-1
-
US East (Ohio) –
us-east-2
-
US West (N. California) –
us-west-1
-
US West (Oregon) –
us-west-2
-
Asia Pacific (Mumbai) –
ap-south-1
-
Asie-Pacifique (Séoul) –
ap-northeast-2
-
Asia Pacific (Singapore) –
ap-southeast-1
-
Asie-Pacifique (Sydney) –
ap-southeast-2
-
Asie-Pacifique (Tokyo) –
ap-northeast-1
-
Europe (Frankfurt) –
eu-central-1
-
Europe (Ireland) –
eu-west-1
-
Europe (London) –
eu-west-2
-
South America (São Paulo) –
sa-east-1