

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 de la signature de code pour vérifier l’intégrité du code avec Lambda
<a name="configuration-codesigning"></a>

La signature de code permet de s’assurer que seul du code approuvé est déployé dans vos fonctions Lambda. À l'aide de 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](configuration-codesigning-create.md), 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](chapter-layers.md) que vous ajoutez à la fonction doivent également être signées par un profil de signature autorisé.

Il n'y a aucun frais supplémentaire pour l'utilisation AWS Signer ou la signature de code pour AWS Lambda.

## Validation de signature
<a name="config-codesigning-valid"></a>

Lambda effectue les contrôles de validation suivants lorsque vous déployez un package de code signé vers votre fonction :

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

1. **Expiration** : affirme que la signature du package de code n’a pas expiré.

1. **Incompatibilité**  : affirme que le package de code est signé avec un profil de signature autorisé

1. **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 [UntrustedArtifactOnDeployment](https://docs.aws.amazon.com/lambda/latest/api/API_CodeSigningPolicies.html#lambda-Type-CodeSigningPolicies-UntrustedArtifactOnDeployment)paramètre pour spécifier la manière dont Lambda doit réagir en cas d'échec des contrôles 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 CloudWatch métrique Amazon (`SignatureValidationErrors`) et enregistre également l'avertissement dans le CloudTrail journal.
+ `Enforce` : Lambda émet un avertissement (identique à celui de l’action `Warn`) et bloque le déploiement du package de code.

**Topics**
+ [

## Validation de signature
](#config-codesigning-valid)
+ [

# Création de configurations de signature de code pour Lambda
](configuration-codesigning-create.md)
+ [

# Configuration des politiques IAM pour les configurations de signature de code Lambda
](config-codesigning-policies.md)
+ [

# Utilisation des balises dans les configurations de signature de code
](tags-csc.md)

# Création de configurations de signature de code pour Lambda
<a name="configuration-codesigning-create"></a>

Afin d'activer la signature de code pour une fonction, vous créez une *configuration de signature de code* et l'attachez à la fonction. Une configuration de signature de code définit une liste de profils de signature autorisés et l'action de stratégie à privilégier en cas d'échec de l'un des contrôles de validation.

**Note**  
Les fonctions définies en tant qu'images de conteneur ne prennent pas en charge la signature de code.

**Topics**
+ [

## Conditions préalables à la configuration
](#config-codesigning-prereqs)
+ [

## Création de configurations de signature de code
](#config-codesigning-config-console)
+ [

## Activation de la signature de code pour une fonction
](#config-codesigning-function-console)

## Conditions préalables à la configuration
<a name="config-codesigning-prereqs"></a>

Avant de pouvoir configurer la signature de code pour une fonction Lambda, utilisez le Signataire AWS pour effectuer les opérations suivantes :
+ Créer un ou plusieurs [profils de signature](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profiles.html).
+ Utiliser un profil de signature afin de [créer un package de code signé pour votre fonction](https://docs.aws.amazon.com/signer/latest/developerguide/lambda-workflow.html).

## Création de configurations de signature de code
<a name="config-codesigning-config-console"></a>

Une configuration de signature de code définit une liste des profils de signature autorisés et la stratégie de validation de signature.

**Pour créer une configuration de signature de code (console)**

1. Ouvrez la [page des configurations de signature de code](https://console.aws.amazon.com/lambda/home#/code-signing-configurations) de la console Lambda.

1. Choisissez **Create configuration (Créer une configuration)**.

1. Pour **Description**, saisissez un nom descriptif pour la configuration.

1. Sous **Signing profiles (Profils de signature)**, ajoutez jusqu'à 20 profils de signature à la configuration.

   1. Pour **Signing profile version ARN (ARN de la version du profil de signature)**, sélectionnez l'Amazon Resource Name (ARN) de la version du profil, ou saisissez l'ARN.

   1. Pour ajouter un profil de signature supplémentaire, sélectionnez **Add signing profiles (Ajouter des profils de signature)**.

1. Sous **Signature validation policy (Stratégie de validation de signature)**, sélectionnez **Warn (Avertissement)** ou **Enforce (Application)**.

1. Choisissez **Create configuration (Créer une configuration)**.

## Activation de la signature de code pour une fonction
<a name="config-codesigning-function-console"></a>

Afin d’activer la signature de code pour une fonction, ajoutez une configuration de signature de code à la fonction.

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

**Pour associer une configuration de signature de code à une fonction (console)**

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

1. Sélectionnez la fonction pour laquelle vous souhaitez activer la signature de code.

1. Ouvrez l’onglet **Configuration**.

1. Faites défiler vers le bas et choisissez **Signature de code**.

1. Choisissez **Modifier**.

1. Sous **Edit code signing (Modifier la signature de code)**, sélectionnez une configuration de signature de code pour cette fonction.

1. Choisissez **Enregistrer**.

# Configuration des politiques IAM pour les configurations de signature de code Lambda
<a name="config-codesigning-policies"></a>

Pour accorder à un utilisateur l’autorisation d’accéder aux opérations d’API de signature de code Lambda, attachez une ou plusieurs instructions de stratégie à la stratégie utilisateur. Pour plus d'informations sur les stratégies utilisateur, consultez [Politiques IAM basées sur l’identité pour Lambda](access-control-identity-based.md).

L'exemple d'instruction de stratégie suivant autorise la création, la mise à jour et la récupération de configurations de signature de code.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "lambda:CreateCodeSigningConfig",
          "lambda:UpdateCodeSigningConfig",
          "lambda:GetCodeSigningConfig"
        ],
      "Resource": "*" 
    }
  ]
}
```

------

Les administrateurs peuvent utiliser la clé de condition `CodeSigningConfigArn` pour spécifier les configurations de signature de code que les développeurs doivent utiliser pour créer ou mettre à jour vos fonctions.

L'exemple de déclaration de stratégie suivant accorde l'autorisation de créer une fonction. La déclaration de stratégie comprend une condition `lambda:CodeSigningConfigArn` pour spécifier la configuration de signature de code autorisée. Lambda bloque les demandes `CreateFunction` d'API si le [CodeSigningConfigArn](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html#lambda-CreateFunction-request-CodeSigningConfigArn)paramètre est absent ou ne correspond pas à la valeur de la condition.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowReferencingCodeSigningConfig",
      "Effect": "Allow",
      "Action": [
        "lambda:CreateFunction"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "lambda:CodeSigningConfigArn": "arn:aws:lambda:us-east-1:111122223333:code-signing-config:csc-0d4518bd353a0a7c6"
        }
      }
    }
  ]
}
```

------

# Utilisation des balises dans les configurations de signature de code
<a name="tags-csc"></a>

Vous pouvez étiqueter les configurations de signature de code pour organiser et gérer vos ressources. Les balises sont des paires clé-valeur de forme libre associées à vos ressources prises en charge par l’ensemble des ressources  Services AWS. Pour plus d'informations sur les cas d'utilisation des balises, consultez la section [Stratégies de balisage courantes dans le guide des AWS](https://docs.aws.amazon.com//tag-editor/latest/userguide/best-practices-and-strats.html#tag-strategies) *ressources de balisage et de l'éditeur de balises*. 

 Vous pouvez utiliser l' AWS Lambda API pour afficher et mettre à jour les balises. Vous pouvez également afficher et mettre à jour les balises tout en gérant une configuration de signature de code spécifique dans la console Lambda.

**Topics**
+ [

## Autorisations requises pour l’utilisation des balises
](#csc-tags-required-permissions)
+ [

## Utilisation des balises avec la console Lambda
](#tags-csc-console)
+ [

## Utilisation de balises avec le AWS CLI
](#tags-csc-cli)

## Autorisations requises pour l’utilisation des balises
<a name="csc-tags-required-permissions"></a>

Pour autoriser une identité Gestion des identités et des accès AWS (IAM) – utilisateur, groupe ou rôle – à afficher ou marquer les ressources, accordez-lui les autorisations correspondantes :
+ **lambda : ListTags** —Lorsqu' une ressource possède des balises, accordez cette autorisation à tous ceux qui ont besoin de `ListTags` l'utiliser. Pour les fonctions balisées, cette autorisation est également nécessaire pour `GetFunction`.
+ **lambda : TagResource** —Accordez cette autorisation à toute personne ayant besoin d'appeler `TagResource` ou d'exécuter un tag lors de la création.

Vous pouvez éventuellement envisager d'accorder également l'UntagResourceautorisation **lambda :** pour autoriser les `UntagResource` appels à la ressource.

Pour de plus amples informations, veuillez consulter [Politiques IAM basées sur l’identité pour Lambda](access-control-identity-based.md).

## Utilisation des balises avec la console Lambda
<a name="tags-csc-console"></a>

Vous pouvez utiliser la console Lambda pour créer des configurations de signature de code qui comportent des balises, pour ajouter des balises aux configurations de signature de code existantes et pour filtrer des configurations de signature de code par balise.

**Ajout d’une balise lors de la création d’une configuration de signature de code**

1. Ouvrez la page [Configurations de signature de code](https://console.aws.amazon.com/lambda/home#/code-signing-configurations) dans la console Lambda.

1. Dans l’en-tête du volet de contenu, choisissez **Créer une configuration**.

1. Dans la section située en haut du volet de contenu, configurez votre signature de code. Pour plus d’informations sur la configuration des configurations de signature de code, consultez [Utilisation de la signature de code pour vérifier l’intégrité du code avec Lambda](configuration-codesigning.md).

1. Dans la section **Balises**, choisissez **Ajouter une balise**.

1. Dans le champ **Clé**, saisissez la clé de votre balise. Pour plus d'informations sur les restrictions relatives au balisage, consultez la section [Limites et exigences relatives au nommage des balises](https://docs.aws.amazon.com//tag-editor/latest/userguide/best-practices-and-strats.html#id_tags_naming_best_practices) dans le Guide des * AWS ressources de balisage et de l'éditeur de balises*.

1. Choisissez **Créer une configuration**.

**Pour ajouter une balise à une configuration de signature de code existante**

1. Ouvrez la page [Configurations de signature de code](https://console.aws.amazon.com/lambda/home#/code-signing-configurations) dans la console Lambda.

1. Sélectionnez le nom de votre configuration de signature de code.

1. Dans les onglets situés sous le volet **Détails**, sélectionnez **Balises**.

1. Choisissez **Gérer les balises**.

1. Choisissez **Add new tag** (Ajouter une nouvelle balise).

1. Dans le champ **Clé**, saisissez la clé de votre balise. Pour plus d'informations sur les restrictions relatives au balisage, consultez la section [Limites et exigences relatives au nommage des balises](https://docs.aws.amazon.com//tag-editor/latest/userguide/best-practices-and-strats.html#id_tags_naming_best_practices) dans le Guide des * AWS ressources de balisage et de l'éditeur de balises*.

1. Choisissez **Enregistrer**.

**Pour filtrer les configurations de signature de code par balise**

1. Ouvrez la page [Configurations de signature de code](https://console.aws.amazon.com/lambda/home#/code-signing-configurations) dans la console Lambda.

1. Cliquez sur la barre de recherche.

1. Dans la liste déroulante, sélectionnez votre balise sous le sous-titre **Balises**.

1. Sélectionnez **Utiliser : « tag-name »** pour afficher toutes les configurations de signature de code étiquetées avec cette touche, ou choisissez un **Opérateur** pour affiner le filtrage en fonction de la valeur.

1. Sélectionnez votre valeur de balise pour appliquer un filtre combinant la clé et la valeur de la balise.

La zone de recherche prend également en charge la recherche de clés de balise. Saisissez le nom d’une clé pour la rechercher dans la liste.

## Utilisation de balises avec le AWS CLI
<a name="tags-csc-cli"></a>

Vous pouvez ajouter et supprimer des balises sur les ressources Lambda existantes, configurations de signature de code incluses, avec l’API Lambda. Il est également possible d’ajouter des balises lors de la création d’une configuration de signature de code, vous permettant ainsi de conserver une ressource étiquetée tout au long de son cycle de vie.

### Mise à jour des balises avec la balise Lambda APIs
<a name="tags-csc-api-config"></a>

Vous pouvez ajouter et supprimer des balises pour les ressources Lambda prises en charge par le biais des opérations [TagResource](https://docs.aws.amazon.com/lambda/latest/api/API_TagResource.html)et de l'[UntagResource](https://docs.aws.amazon.com/lambda/latest/api/API_UntagResource.html)API.

Vous pouvez appeler ces opérations par l’intermédiaire de l’ AWS CLI. Pour ajouter des balises à une ressource existante, utilisez la commande `tag-resource`. Cet exemple ajoute deux balises, l'une avec la clé *Department* et l'autre avec la clé*CostCenter*.

```
aws lambda tag-resource \
--resource arn:aws:lambda:us-east-2:123456789012:resource-type:my-resource \
--tags Department=Marketing,CostCenter=1234ABCD
```

Pour supprimer des balises, utilisez la commande `untag-resource`. Cet exemple supprime la balise contenant la clé*Department*.

```
aws lambda untag-resource --resource arn:aws:lambda:us-east-1:123456789012:resource-type:resource-identifier \
--tag-keys Department
```

### Ajout de balises lors de la création d’une configuration de signature de code
<a name="tags-csc-on-create"></a>

Pour créer une nouvelle configuration de signature de code Lambda avec des balises, utilisez l'opération [CreateCodeSigningConfig](https://docs.aws.amazon.com//lambda/latest/api/API_CreateCodeSigningConfig.html)API. Spécifiez le paramètre `Tags`. Vous pouvez appeler cette opération à l'aide de la `create-code-signing-config` AWS CLI commande et de l'`--tags`option. Pour plus d'informations sur la commande CLI, consultez [create-code-signing-config](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-code-signing-config.html)la *référence des AWS CLI commandes*.

Avant d’utiliser le paramètre `Tags` avec `CreateCodeSigningConfig`, vérifiez que votre rôle dispose de l’autorisation d’étiqueter les ressources en plus des autorisations habituelles nécessaires à cette opération. Pour plus d’informations sur les autorisations requises pour l’étiquetage, consultez [Autorisations requises pour l’utilisation des balises](#csc-tags-required-permissions).

### Afficher les tags avec le tag Lambda APIs
<a name="tags-csc-api-view"></a>

Pour afficher les balises associées à une ressource Lambda spécifique, utilisez l’opération d’API `ListTags`. Pour de plus amples informations, veuillez consulter [ListTags](https://docs.aws.amazon.com/lambda/latest/api/API_ListTags.html).

Vous pouvez appeler cette opération à l'aide de la `list-tags` AWS CLI commande en fournissant un ARN (Amazon Resource Name).

```
aws lambda list-tags --resource arn:aws:lambda:us-east-1:123456789012:resource-type:resource-identifier
```

### Filtrage de ressources par balise
<a name="tags-csc-filtering"></a>

Vous pouvez utiliser l'opération AWS Resource Groups Tagging API [GetResources](https://docs.aws.amazon.com/resourcegroupstagging/latest/APIReference/API_GetResources.html)API pour filtrer vos ressources par balises. L’opération `GetResources` reçoit jusqu’à 10 filtres, chaque filtre contenant une clé de balise et jusqu’à 10 valeurs de balise. Vous fournissez `GetResources`avec un `ResourceType` pour filtrer par certains types de ressources.

Vous pouvez appeler cette opération à l'aide de la `get-resources` AWS CLI commande. Pour des exemples d’utilisation de `get-resources`, consultez [get-resources](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/resourcegroupstaggingapi/get-resources.html#examples) dans la *Référence des commandes de l’AWS  CLI*. 