

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.

# Utilisation des variables d’environnement Lambda
<a name="configuration-envvars"></a>

Vous pouvez utiliser des variables d’environnement pour ajuster le comportement de votre fonction sans mettre à jour le code. Une variable d’environnement est une paire de chaînes stockées dans la configuration spécifique à la version d’une fonction. L’environnement d’exécution de Lambda met les variables d’environnement à la disposition de votre code et définit les variables d’environnement supplémentaires qui contiennent des informations sur la fonction et la demande d’invocation.

**Note**  
Pour renforcer la sécurité, nous vous recommandons d'utiliser à la AWS Secrets Manager place des variables d'environnement pour stocker les informations d'identification de la base de données et d'autres informations sensibles telles que les clés d'API ou les jetons d'autorisation. Pour de plus amples informations, veuillez consulter [Utiliser des secrets Secrets Manager dans des fonctions Lambda](with-secrets-manager.md).

Les variables d’environnement ne sont pas évaluées avant l’invocation de la fonction. Toute valeur que vous définissez est considérée comme une chaîne littérale et non développée. Effectuez l’évaluation de la variable dans le code de votre fonction.

## Création de variables d’environnement Lambda
<a name="create-environment-variables"></a>

Vous pouvez configurer les variables d'environnement dans Lambda à l'aide de la console Lambda, du AWS Command Line Interface (AWS CLI), AWS Serverless Application Model (AWS SAM) ou d'un SDK. AWS 

------
#### [ Console ]

Vous définissez des variables d’environnement sur la version non publiée de votre fonction. Lorsque vous publiez une version, les variables d’environnement sont verrouillées pour cette version ainsi que d’autres [paramètres de configuration spécifiques à la version](configuration-versions.md).

Vous créez une variable d’environnement pour votre fonction en définissant une clé et une valeur. Votre fonction utilise le nom de la clé pour récupérer la valeur de la variable d’environnement.

**Pour définir des variables d’environnement dans la console Lambda**

1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

1. Choisissez une fonction.

1. Choisissez **Configuration**, puis **Variables d’environnement**.

1. Sous **Variables d’environnement**, choisissez **Modifier**.

1. Choisissez **Ajouter une variable d’environnement**.

1. Entrez une clé et une valeur.

**Exigences**
   + Les clés commencent par une lettre et comportent au moins deux caractères.
   + Les clés contiennent uniquement des lettres, des chiffres et le caractère de soulignement (`_`).
   + Les clés ne sont pas [réservées par Lambda](#configuration-envvars-runtime).
   + La taille totale de toutes les variables d’environnement ne dépasse pas 4 Ko.

1. Choisissez **Enregistrer**.

**Pour générer une liste de variables d’environnement dans l’éditeur de code de la console**

Vous pouvez générer une liste de variables d’environnement dans l’éditeur de code Lambda. Il s’agit d’un moyen rapide de référencer vos variables d’environnement pendant que vous codez.

1. Cliquez sur l’onglet **Code**.

1. Faites défiler l’écran jusqu’à la section **VARIABLES D’ENVIRONNEMENT** de l’éditeur de code. Les variables d’environnement existantes sont répertoriées ici :  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/env-var.png)

1. Pour créer de nouvelles variables d’environnement, choisissez le signe plus (![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/add-plus.png)) :  
![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/create-env-var.png)

Les variables d’environnement restent chiffrées lorsqu’elles sont répertoriées dans l’éditeur de code de la console. Si vous avez activé les assistants de chiffrement pour le chiffrement en transit, ces paramètres restent inchangés. Pour de plus amples informations, veuillez consulter [Sécurisation de variables d’environnement Lambda](configuration-envvars-encryption.md).

La liste des variables d’environnement est en lecture seule et n’est disponible que sur la console Lambda. Ce fichier n’est pas inclus lorsque vous téléchargez l’archive .zip de la fonction et vous ne pouvez pas ajouter de variables d’environnement en chargeant ce fichier.

------
#### [ AWS CLI ]

L’exemple suivant définit deux variables d’environnement sur une fonction nommée `my-function`.

```
aws lambda update-function-configuration \
  --function-name my-function \
  --environment "Variables={BUCKET=amzn-s3-demo-bucket,KEY=file.txt}"
```

Lorsque vous appliquez des variables d’environnement avec la commande `update-function-configuration`, l’ensemble du contenu de la structure `Variables` est remplacé. Pour conserver les variables d’environnement existantes lorsque vous en ajoutez une nouvelle, incluez toutes les valeurs existantes dans votre demande.

Pour obtenir la configuration actuelle, utilisez la commande `get-function-configuration`.

```
aws lambda get-function-configuration \
  --function-name my-function
```

Vous devriez voir la sortie suivante :

```
{
    "FunctionName": "my-function",
    "FunctionArn": "arn:aws:lambda:us-east-2:111122223333:function:my-function",
    "Runtime": "nodejs24.x",
    "Role": "arn:aws:iam::111122223333:role/lambda-role",
    "Environment": {
        "Variables": {
            "BUCKET": "amzn-s3-demo-bucket",
            "KEY": "file.txt"
        }
    },
    "RevisionId": "0894d3c1-2a3d-4d48-bf7f-abade99f3c15",
    ...
}
```

Vous pouvez transmettre l’identifiant de révision depuis la sortie de `get-function-configuration` en tant que paramètre à `update-function-configuration`. Cela garantit que les valeurs ne changent pas entre le moment où vous lisez la configuration et celui où vous la mettez à jour.

Pour configurer la clé de chiffrement d’une fonction, définissez l’option `KMSKeyARN`.

```
aws lambda update-function-configuration \
  --function-name my-function \
  --kms-key-arn arn:aws:kms:us-east-2:111122223333:key/055efbb4-xmpl-4336-ba9c-538c7d31f599
```

------
#### [ AWS SAM ]

Vous pouvez utiliser [AWS Serverless Application Model](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/serverless-getting-started.html ) pour configurer les variables d’environnement de votre fonction. Mettez à jour les propriétés [Environnement](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-environment) et [Variables](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-environment.html#cfn-lambda-function-environment-variables) dans votre fichier `template.yaml`, puis exécutez [sam deploy](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html).

**Example template.yaml**  

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An AWS Serverless Application Model template describing your function.
Resources:
  my-function:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: .
      Description: ''
      MemorySize: 128
      Timeout: 120
      Handler: index.handler
      Runtime: nodejs24.x
      Architectures:
        - x86_64
      EphemeralStorage:
        Size: 10240
      Environment:
        Variables:
          BUCKET: amzn-s3-demo-bucket
          KEY: file.txt
      # Other function properties...
```

------
#### [ AWS SDKs ]

Pour gérer les variables d'environnement à l'aide d'un AWS SDK, utilisez les opérations d'API suivantes.
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)
+ [GetFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionConfiguration.html)
+ [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)

Pour en savoir plus, référez-vous à la [documentation du kit SDK AWS](https://aws.amazon.com/developer/tools/) correspondant à votre langage de programmation préféré.

------

## Exemple de scénario pour les variables d’environnement
<a name="configuration-envvars-example"></a>

Vous pouvez utiliser des variables d’environnement pour personnaliser le comportement des fonctions dans vos environnements de test et de production. Vous pouvez par exemple créer deux fonctions avec le même code mais une configuration différente. Une fonction se connecte à une base de données de test et l’autre à une base de données de production. Dans ce cas, vous utilisez des variables d’environnement pour transmettre à la fonction le nom d’hôte, ainsi que d’autres détails de connexion pour la base de données. 

L’exemple suivant montre comment définir l’hôte de la base de données et le nom de base de données en tant que variables d’environnement.

![\[\]](http://docs.aws.amazon.com/fr_fr/lambda/latest/dg/images/console-env.png)


Si vous souhaitez que votre environnement de test génère plus d’informations de débogage que l’environnement de production, vous pouvez définir une variable d’environnement pour configurer votre environnement de test de manière à utiliser une journalisation plus approfondie ou un suivi plus détaillé.

Par exemple, dans votre environnement de test, vous pouvez définir une variable d’environnement avec la clé `LOG_LEVEL` et une valeur indiquant le niveau de journalisation du débogage ou du suivi. Dans le code de votre fonction Lambda, vous pouvez ensuite utiliser cette variable d’environnement pour définir le niveau de journalisation.

Les exemples de code suivants en Python et Node.js illustrent la façon dont vous pouvez y parvenir. Ces exemples supposent que la valeur de votre variable d’environnement est `DEBUG` en Python, ou `debug` en Node.js.

------
#### [ Python ]

**Example Code Python pour définir le niveau de journalisation**  

```
import os
import logging

# Initialize the logger
logger = logging.getLogger()

# Get the log level from the environment variable and default to INFO if not set
log_level = os.environ.get('LOG_LEVEL', 'INFO')

# Set the log level
logger.setLevel(log_level)

def lambda_handler(event, context):
    # Produce some example log outputs
    logger.debug('This is a log with detailed debug information - shown only in test environment')
    logger.info('This is a log with standard information - shown in production and test environments')
```

------
#### [ Node.js (ES module format) ]

**Example Code Node.js pour définir le niveau de journalisation**  
Cet exemple utilise la bibliothèque de journalisation `winston`. Utilisez npm pour ajouter cette bibliothèque au package de déploiement de votre fonction. Pour de plus amples informations, veuillez consulter [Création d’un package de déploiement .zip avec dépendances](nodejs-package.md#nodejs-package-create-dependencies).  

```
import winston from 'winston';

// Initialize the logger using the log level from environment variables, defaulting to INFO if not set
const logger = winston.createLogger({
   level: process.env.LOG_LEVEL || 'info',
   format: winston.format.json(),
   transports: [new winston.transports.Console()]
});

export const handler = async (event) => {
   // Produce some example log outputs
   logger.debug('This is a log with detailed debug information - shown only in test environment');
   logger.info('This is a log with standard information - shown in production and test environment');
   
};
```

------

## Récupération de variables d’environnement Lambda
<a name="retrieve-environment-variables"></a>

Pour récupérer les variables d’environnement dans le code de votre fonction, utilisez la méthode standard pour votre langage de programmation.

------
#### [ Node.js ]

```
let region = process.env.AWS_REGION
```

------
#### [ Python ]

```
import os
  region = os.environ['AWS_REGION']
```

**Note**  
Dans certains cas, vous devrez peut-être utiliser le format suivant :  

```
region = os.environ.get('AWS_REGION')
```

------
#### [ Ruby ]

```
region = ENV["AWS_REGION"]
```

------
#### [ Java ]

```
String region = System.getenv("AWS_REGION");
```

------
#### [ Go ]

```
var region = os.Getenv("AWS_REGION")
```

------
#### [ C\$1 ]

```
string region = Environment.GetEnvironmentVariable("AWS_REGION");
```

------
#### [ PowerShell ]

```
$region = $env:AWS_REGION
```

------

Lambda stocke les variables d’environnement en toute sécurité en les chiffrant au repos. Vous pouvez [configurer Lambda pour utiliser une clé de chiffrement différente](configuration-envvars-encryption.md), chiffrer les valeurs des variables d'environnement côté client ou définir des variables d'environnement dans un CloudFormation modèle avec. AWS Secrets Manager

## Variables d’environnement d’exécution définies
<a name="configuration-envvars-runtime"></a>

Les [runtimes](lambda-runtimes.md) Lambda définissent plusieurs variables d’environnement lors de l’initialisation. La plupart des variables d’environnement fournissent des informations sur la fonction ou l’exécution. Les clés de ces variables d’environnement sont *réservées* et ne peuvent pas être définies dans la configuration de la fonction.

**Variables d’environnement réservées**
+ `_HANDLER` – Emplacement de gestionnaire configuré sur la fonction.
+ `_X_AMZN_TRACE_ID` – [En-tête de suivi X-Ray](services-xray.md). Cette variable d'environnement change à chaque invocation.
  + Cette variable d'environnement n'est pas définie pour les environnements d'exécution uniquement basés sur le système d'exploitation (famille des environnements d'exécution `provided`). Vous pouvez définir `_X_AMZN_TRACE_ID` pour les environnements d’exécution personnalisés à l’aide de l’en-tête de réponse `Lambda-Runtime-Trace-Id` de l’[Invocation suivante](runtimes-api.md#runtimes-api-next).
  + Pour les versions 17 et ultérieures du runtime Java, cette variable d'environnement n'est pas utilisée. Lambda stocke plutôt les informations de suivi dans la propriété du système `com.amazonaws.xray.traceHeader`.
+ `AWS_DEFAULT_REGION`— L' Région AWS endroit par défaut où la fonction Lambda est exécutée.
+ `AWS_REGION`— L' Région AWS endroit où la fonction Lambda est exécutée. Si elle est définie, cette valeur remplace `AWS_DEFAULT_REGION`.
  + Pour plus d'informations sur l'utilisation des variables d' Région AWS environnement avec AWS SDKs, consultez [AWS la section Région](https://docs.aws.amazon.com/sdkref/latest/guide/feature-region.html#feature-region-sdk-compat) dans le *guide de référence des outils AWS SDKs et*.
+ `AWS_EXECUTION_ENV` – [Identifiant d’exécution](lambda-runtimes.md), doté du préfixe `AWS_Lambda_` (par exemple, `AWS_Lambda_java8`). Cette variable d'environnement n'est pas définie pour les environnements d'exécution uniquement basés sur le système d'exploitation (famille des environnements d'exécution `provided`).
+ `AWS_LAMBDA_FUNCTION_NAME` – Nom de la fonction.
+ `AWS_LAMBDA_FUNCTION_MEMORY_SIZE` – Quantité de mémoire disponible pour la fonction en Mo.
+ `AWS_LAMBDA_FUNCTION_VERSION` – Version de la fonction en cours d’exécution.
+ `AWS_LAMBDA_INITIALIZATION_TYPE`— Le type d'initialisation de la fonction, qui est `on-demand` `provisioned-concurrency``snap-start`, ou`lambda-managed-instances`. Pour plus d'informations, consultez [Configuration de la simultanéité provisionnée](provisioned-concurrency.md)[Améliorer les performances de démarrage avec Lambda SnapStart](snapstart.md), ou. [Instances gérées par Lambda](lambda-managed-instances.md)
+ `AWS_LAMBDA_LOG_GROUP_NAME`, `AWS_LAMBDA_LOG_STREAM_NAME` — Le nom du groupe Amazon CloudWatch Logs et du flux associés à la fonction. Les [variables `AWS_LAMBDA_LOG_GROUP_NAME` d'`AWS_LAMBDA_LOG_STREAM_NAME`environnement](#configuration-envvars-runtime) et ne sont pas disponibles dans les fonctions Lambda SnapStart .
+ `AWS_ACCESS_KEY`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN` – Clés d’accès obtenues du [rôle d’exécution](lambda-intro-execution-role.md) de la fonction.
+ `AWS_LAMBDA_RUNTIME_API` – ([exécution personnalisée](runtimes-custom.md)) Hôte et port de l’[API d’exécution.](runtimes-api.md).
+ `LAMBDA_TASK_ROOT` – Chemin d’accès du code de la fonction Lambda.
+ `LAMBDA_RUNTIME_DIR` – Chemin d’accès des bibliothèques de l’environnement d’exécution.
+ `AWS_LAMBDA_MAX_CONCURRENCY`— (Instances gérées par Lambda uniquement) Le nombre maximum d'appels simultanés que Lambda enverra à un environnement d'exécution.
+ `AWS_LAMBDA_METADATA_API`— L'adresse du serveur de point de [terminaison de métadonnées](configuration-metadata-endpoint.md) au format `{ipv4_address}:{port}` (par exemple,`169.254.100.1:9001`).
+ `AWS_LAMBDA_METADATA_TOKEN`— Un jeton d'authentification unique pour l'environnement d'exécution actuel utilisé pour authentifier les demandes adressées au point de [terminaison des métadonnées](configuration-metadata-endpoint.md). Lambda génère ce jeton automatiquement lors de l'initialisation.

Les variables d’environnement supplémentaires suivantes ne sont pas réservées et peuvent être étendues dans la configuration de la fonction.

**Variables d’environnement non réservées**
+ `LANG` – Paramètres régionaux de l’environnement d’exécution (`en_US.UTF-8`).
+ `PATH` – Chemin d’exécution (`/usr/local/bin:/usr/bin/:/bin:/opt/bin`).
+ `LD_LIBRARY_PATH` – Chemin de la bibliothèque système (`/var/lang/lib:/lib64:/usr/lib64:$LAMBDA_RUNTIME_DIR:$LAMBDA_RUNTIME_DIR/lib:$LAMBDA_TASK_ROOT:$LAMBDA_TASK_ROOT/lib:/opt/lib`).
+ `NODE_PATH` – ([Node.js](lambda-nodejs.md)) Chemin d’accès de la bibliothèque Node.js (`/opt/nodejs/node12/node_modules/:/opt/nodejs/node_modules:$LAMBDA_RUNTIME_DIR/node_modules`).
+ `NODE_OPTIONS` – ([Node.js](lambda-nodejs.md)) Pour les environnements d’exécution Node.js, vous pouvez utiliser `NODE_OPTIONS` pour réactiver les fonctionnalités expérimentales que Lambda désactive par défaut.
+ `PYTHONPATH` : ([Python](lambda-python.md)) le chemin de la bibliothèque Python (`$LAMBDA_RUNTIME_DIR`).
+ `GEM_PATH` – ([Ruby](lambda-ruby.md)) Chemin d’accès de la bibliothèque Ruby (`$LAMBDA_TASK_ROOT/vendor/bundle/ruby/3.3.0:/opt/ruby/gems/3.3.0`).
+ `AWS_XRAY_CONTEXT_MISSING` – Pour le suivi X-Ray, Lambda définit cette valeur sur `LOG_ERROR` pour éviter de générer des erreurs d’environnement d’exécution à partir du kit SDK X-Ray.
+ `AWS_XRAY_DAEMON_ADDRESS` – Pour le suivi X-Ray, adresse IP et le port du démon X-Ray.
+ `AWS_LAMBDA_DOTNET_PREJIT` : ([.NET](lambda-csharp.md)) définissez cette variable pour activer ou désactiver les optimisations d’environnement d’exécution spécifiques à .NET. Les valeurs incluent `always`, `never` et `provisioned-concurrency`. Pour de plus amples informations, veuillez consulter [Configuration de la simultanéité provisionnée pour une fonction](provisioned-concurrency.md).
+ `TZ` – Fuseau horaire de l’environnement (`:UTC`). L’environnement d’exécution utilise NTP pour synchroniser l’horloge système.

Les valeurs d’exemple affichées reflètent les derniers moteurs d’exécution. La présence de variables spécifiques ou leurs valeurs peuvent varier dans les anciens environnements d’exécution.

# Sécurisation de variables d’environnement Lambda
<a name="configuration-envvars-encryption"></a>

Pour sécuriser vos variables d’environnement, vous pouvez utiliser le chiffrement côté serveur pour protéger vos données au repos, et le chiffrement côté client pour protéger vos données en transit.

**Note**  
Pour renforcer la sécurité de la base de données, nous vous recommandons d'utiliser à la AWS Secrets Manager place des variables d'environnement pour stocker les informations d'identification de la base de données. Pour de plus amples informations, veuillez consulter [Utiliser des secrets Secrets Manager dans des fonctions Lambda](with-secrets-manager.md).

**Sécurité au repos**  
Lambda fournit toujours le chiffrement côté serveur au repos grâce à une AWS KMS key. Par défaut, Lambda utilise une Clé gérée par AWS. Si ce comportement par défaut convient à votre flux de travail, vous n’avez pas besoin de configurer quoi que ce soit d’autre. Lambda les crée Clé gérée par AWS dans votre compte et gère les autorisations pour vous. AWS l'utilisation de cette clé ne vous est pas facturée.

Si vous préférez, vous pouvez plutôt fournir une clé gérée par le AWS KMS client. Vous pouvez procéder ainsi pour contrôler la rotation de la clé KMS ou pour répondre aux exigences de votre organisation en matière de gestion des clés KMS. Si vous utilisez une clé gérée par le client, seuls les utilisateurs de votre compte ayant accès à la clé KMS peuvent afficher ou gérer les variables d’environnement sur la fonction.

Les clés gérées par le client entraînent des AWS KMS frais standard. Pour en savoir plus, consultez [Pricing AWS Key Management Service](https://aws.amazon.com/kms/pricing/) (Tarification).

**Sécurité pendant le transit**  
Pour plus de sécurité, vous pouvez activer les assistants pour le chiffrement en transit, ce qui garantit que vos variables d’environnement sont chiffrées côté client pour une meilleure protection pendant le transit.

**Pour configurer le chiffrement de vos variables d’environnement**

1. Utilisez le AWS Key Management Service (AWS KMS) pour créer des clés gérées par le client que Lambda utilisera pour le chiffrement côté serveur et côté client. Pour en savoir plus, consultez [Création des clés](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) dans le *AWS Key Management Service Guide du développeur *.

1. À l’aide de la console Lambda, accédez à la page **Modifier les variables d’environnement**.

   1. Ouvrez la [page Functions](https://console.aws.amazon.com/lambda/home#/functions) (Fonctions) de la console Lambda.

   1. Choisissez une fonction.

   1. Choisissez **Configuration**, puis **Variables d’environnement** dans la barre de navigation de gauche.

   1. Dans la section **Variables d’environnement)**, choisissez **Modifier**.

   1. Développez **Configuration du chiffrement**.

1. (Facultatif) Activez les assistants de chiffrement de la console afin qu’ils utilisent le chiffrement côté client pour protéger vos données en transit.

   1. Sous **Encryption in transit** (Chiffrement pendant le transit), choisissez **Enable helpers for encryption in transit** (Activer les assistants pour le chiffrement pendant le transit).

   1. Pour chaque variable d’environnement pour laquelle vous souhaitez activer les assistants de chiffrement de la console, choisissez **Encrypt** (Chiffrer) en regard de la variable d’environnement.

   1.  Sous AWS KMS key Pour chiffrer en cours de transfert, choisissez une clé gérée par le client que vous avez créée au début de cette procédure.

   1. Choisissez **Politique de rôle d’exécution** et copiez la politique. Cette politique octroie au rôle d’exécution de votre fonction l’autorisation de déchiffrer les variables d’environnement.

      Enregistrez cette politique, car vous l’utiliserez à la dernière étape de cette procédure.

   1. Ajoutez le code à votre fonction qui déchiffre les variables d’environnement . Pour obtenir un exemple, choisissez **Déchiffrer l’extrait de secrets**.

1. (Facultatif) Spécifiez votre clé gérée par le client pour le chiffrement au repos.

   1. Choisissez **Utiliser une clé principale client**.

   1. Choisissez une clé gérée par le client que vous avez créée au début de cette procédure.

1. Choisissez **Enregistrer**.

1. Configurez des autorisations.

   Si vous utilisez une clé gérée par le client avec chiffrement côté serveur, octroyez des autorisations à tous les utilisateurs ou rôles que vous voulez pouvoir afficher ou pour gérer des variables d’environnement sur la fonction. Pour de plus amples informations, veuillez consulter [Gestion des autorisations sur votre clé de chiffrement KMS côté serveur](#managing-permissions-to-your-server-side-encryption-key).

   Si vous activez le chiffrement côté client pour la sécurité pendant le transit, votre fonction doit disposer d’une autorisation pour appeler l’opération d’API `kms:Decrypt`. Ajoutez la politique que vous avez précédemment enregistrée dans cette procédure au [rôle d’exécution](lambda-intro-execution-role.md) de la fonction.

## Gestion des autorisations sur votre clé de chiffrement KMS côté serveur
<a name="managing-permissions-to-your-server-side-encryption-key"></a>

Aucune AWS KMS autorisation n'est requise pour que votre utilisateur ou le rôle d'exécution de la fonction utilise la clé de chiffrement par défaut. Pour utiliser une clé gérée par le client, vous devez disposer des autorisations appropriées pour utiliser la clé. Lambda utilise vos autorisations pour créer un octroi sur la clé. Cela permet à Lambda de l’utiliser pour le chiffrement.
+ `kms:ListAliases` – Pour afficher les clés dans la console Lambda.
+ `kms:CreateGrant`, `kms:Encrypt` – Pour configurer une clé gérée par le client sur une fonction.
+ `kms:Decrypt` – Pour afficher et gérer des variables d’environnement chiffrées à l’aide d’une clé gérée par le client.

Vous pouvez obtenir ces autorisations à partir de votre politique d'autorisation basée sur les ressources Compte AWS ou de celle d'une clé. `ListAliases`est fourni par les [politiques gérées pour Lambda](access-control-identity-based.md). Les stratégies de clé accordent les autorisations restantes aux utilisateurs du groupe **Key users (Utilisateurs de clés)**.

Les utilisateurs sans autorisation `Decrypt` peuvent gérer les fonctions, mais ils ne peuvent pas afficher les variables d’environnement ni les gérer dans la console Lambda. Pour empêcher un utilisateur d’afficher des variables d’environnement, ajoutez une instruction aux autorisations de cet utilisateur afin de refuser l’accès à la clé par défaut, à une clé gérée par le client ou à toutes les clés.

**Example Politique IAM – Refuser l’accès en fonction de l’ARN de la clé**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-2:111122223333:key/3be10e2d-xmpl-4be4-bc9d-0405a71945cc"
        }
    ]
}
```

Pour en savoir plus sur la gestion des autorisations de clés, consultez [Stratégies de clé dans AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) que vous trouverez dans le *Guide du développeur AWS Key Management Service *.