

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
<a name="lambda-edge-permissions"></a>

Pour configurer Lambda@Edge, vous devez disposer des autorisations et des rôles IAM pour AWS Lambda : 
+ [Autorisations IAM](#lambda-edge-permissions-required) : 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](#lambda-edge-permissions-function-execution) (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](#using-service-linked-roles-lambda-edge) 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
<a name="lambda-edge-permissions-required"></a>

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 `.zip` contenant 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 actions `lambda:EnableReplication*` et `lambda: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:UpdateDistribution` ou `cloudfront:CreateDistribution` : accorde l’autorisation de mettre à jour ou de créer une distribution.

Pour plus d’informations, consultez les rubriques suivantes :
+ [Identity and Access Management pour Amazon CloudFront](security-iam.md)
+ [Autorisations d’accès aux ressources Lambda](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role) dans le *Guide du développeur AWS Lambda *

## Rôle d'exécution de fonction pour les principaux de service
<a name="lambda-edge-permissions-function-execution"></a>

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](lambda-edge-how-it-works-tutorial.md#lambda-edge-how-it-works-tutorial-create-function).

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)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions_create-policies.html) dans le *Guide de l’utilisateur IAM*.

**Example 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**.    
****  

```
{
   "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 associer au rôle d’exécution, consultez [Autorisations d’accès aux ressources Lambda](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role) 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, consultez[Journaux des fonctions de périphérie](edge-functions-logs.md).
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
<a name="using-service-linked-roles-lambda-edge"></a>

Lambda@Edge utilise des [rôles liés à un service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) 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](security_iam_service-with-iam.md#security_iam_service-with-iam-roles-service-linked). 

### Autorisations du rôle lié à un service pour Lambda@Edge
<a name="slr-permissions-lambda-edge"></a>

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.

**Contents**
+ [

#### Autorisations du rôle lié à un service pour Lambda Replicator
](#slr-permissions-lambda-replicator)
+ [

#### Autorisations de rôle liées au service pour l'enregistreur CloudFront
](#slr-permissions-cloudfront-logger)

#### Autorisations du rôle lié à un service pour Lambda Replicator
<a name="slr-permissions-lambda-replicator"></a>

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:CreateFunction` sur `arn:aws:lambda:*:*:function:*`
+ `lambda:DeleteFunction` sur `arn:aws:lambda:*:*:function:*`
+ `lambda:DisableReplication` sur `arn:aws:lambda:*:*:function:*`
+ `iam:PassRole` sur `all AWS resources`
+  `cloudfront:ListDistributionsByLambdaFunction` sur `all AWS resources`

#### Autorisations de rôle liées au service pour l'enregistreur CloudFront
<a name="slr-permissions-cloudfront-logger"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) dans le *Guide de l’utilisateur IAM*.

### Création de rôles liés à un service pour Lambda@Edge
<a name="create-slr-lambda-edge"></a>

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.
<a name="edit-slr-lambda-edge"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) dans le *Guide de l’utilisateur IAM*.

### Pris en charge Régions AWS pour les rôles liés au service Lambda @Edge
<a name="slr-regions-lambda-edge"></a>

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`