

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.

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