Sécurisation des variables d'environnement Lambda - AWS Lambda

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 des variables d'environnement Lambda

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 plus d’informations, consultez Utilisation AWS Lambda avec Amazon RDS.

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 AWS Key Management Service 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 dans le AWS Key Management Service Guide du développeur .

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

    1. Ouvrez la page Functions (Fonctions) de la console Lambda.

    2. Choisissez une fonction.

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

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

    5. Développez Configuration du chiffrement.

  3. (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).

    2. 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.

    3. 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.

    4. 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.

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

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

    1. Choisissez Utiliser une clé principale client.

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

  5. Choisissez Enregistrer.

  6. 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 plus d’informations, consultez Gestion des autorisations sur votre clé de chiffrement KMS côté serveur.

    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 de la fonction.

Gestion des autorisations sur votre clé de chiffrement KMS côté serveur

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é. ListAliasesest fourni par les politiques gérées pour Lambda. 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.

Exemple 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 que vous trouverez dans le Guide du développeur AWS Key Management Service .