Utilisation de la signature de code pour vérifier l’intégrité du code avec Lambda
La signature de code permet de s’assurer que seul du code approuvé est déployé dans vos fonctions Lambda. Avec AWS Signer, vous pouvez créer des packages de code signés numériquement pour vos fonctions. Lorsque vous ajoutez une configuration de signature de code à une fonction, Lambda vérifie que tous les nouveaux déploiements de code sont signés par une source approuvée. Étant donné que les contrôles de validation de signature de code s’exécutent au moment du déploiement, l’exécution de la fonction n’est aucunement affectée.
Important
Les configurations de signature de code empêchent uniquement les nouveaux déploiements de code non signé. Si vous ajoutez une configuration de signature de code à une fonction existante contenant du code non signé, ce code continue de s’exécuter jusqu’à ce que vous déployiez un nouveau package de code.
Lorsque vous activez la signature de code pour une fonction, toutes les couches que vous ajoutez à la fonction doivent également être signées par un profil de signature autorisé.
Il n’y a pas de frais supplémentaires pour l’utilisation de AWS Signer ou la signature de code pour AWS Lambda.
Validation de signature
Lambda effectue les contrôles de validation suivants lorsque vous déployez un package de code signé vers votre fonction :
-
Intégrité : vérifie que le package de code n’a pas été modifié depuis sa signature. Lambda compare le hachage du package au hachage de la signature.
-
Expiration : affirme que la signature du package de code n’a pas expiré.
-
Incompatibilité : affirme que le package de code est signé avec un profil de signature autorisé
-
Révocation : affirme que la signature du package de code n’a pas été révoquée.
Lorsque vous créez une configuration de signature de code, vous pouvez utiliser le paramètre UntrustedArtifactOnDeployment pour spécifier la façon dont Lambda doit réagir en cas d’échec des vérifications d’expiration, d’incompatibilité ou de révocation. Vous pouvez choisir l’une de ces actions :
-
Warn: il s’agit du paramètre par défaut. Lambda autorise le déploiement du package de code, mais émet un avertissement. Lambda émet une nouvelle métrique Amazon CloudWatch (SignatureValidationErrors) et stocke l’avertissement dans le journal CloudTrail. -
Enforce: Lambda émet un avertissement (identique à celui de l’actionWarn) et bloque le déploiement du package de code.