

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.

# Signer des images dans Amazon ECR
<a name="image-signing"></a>

Amazon ECR s'intègre AWS Signer pour vous permettre de signer les images de vos conteneurs de deux manières : *signature gérée* (automatique, recommandée) et *signature manuelle (côté* client). Vous pouvez stocker à la fois les images de vos conteneurs et les signatures dans vos référentiels privés.

## Choisissez une méthode de signature
<a name="image-signing-choose-method"></a>

Amazon ECR prend en charge deux méthodes pour signer les images de conteneurs :

**Signature gérée** (recommandée)  
La signature gérée génère automatiquement des signatures cryptographiques lorsque les images sont transmises à Amazon ECR. Cette méthode simplifie la configuration. La signature gérée est l'approche recommandée pour la plupart des utilisateurs. Pour de plus amples informations, veuillez consulter [Signature gérée](managed-signing.md).

**Signature manuelle**  
La signature manuelle utilise la CLI Notation et le AWS Signer plug-in pour signer les images avant de les transférer vers Amazon ECR. Cette méthode permet de mieux contrôler le processus de signature et est utile lorsque vous devez signer des images en dehors du flux de travail push ou que vous avez besoin d'un contrôle précis des opérations de signature. Pour de plus amples informations, veuillez consulter [Signature manuelle](image-signing-manual.md).

## Considérations
<a name="image-signing-considerations"></a>

Les points suivants doivent être pris en compte lors de l'utilisation de la signature d'image Amazon ECR :
+ Les signatures stockées dans votre référentiel sont prises en compte dans les quotas de service correspondant au nombre maximum d'images par référentiel. Chaque signature compte pour 1 artefact par rapport au quota d'images par dépôt. Pour de plus amples informations, veuillez consulter [Service Quotas Amazon ECR.](service-quotas.md).
+ Lorsque des artefacts de référence sont présents dans un référentiel, les politiques de cycle de vie d'Amazon ECR nettoient automatiquement ces artefacts dans les 24 heures suivant la suppression de l'image d'objet.

# Signature gérée
<a name="managed-signing"></a>

La signature gérée par Amazon ECR signe automatiquement les images de vos conteneurs en générant des signatures cryptographiques à l'aide de [AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) lorsque les images sont transmises à Amazon ECR. Cela élimine le besoin d'installer et de configurer des outils côté client et vous permet de gérer de manière centralisée la signature en tant que configuration de registre.

## Conditions préalables
<a name="managed-signing-prerequisites"></a>

Pour configurer la signature gérée, vous créez une configuration de signature avec Amazon ECR qui fait référence à un ou plusieurs profils de signature de signataires et, éventuellement, à des filtres de référentiel qui limitent les référentiels dont les images doivent être signées. Une fois configurée, Amazon ECR Managed Signing signe automatiquement les images lorsqu'elles sont transmises en utilisant l'identité de l'entité qui les diffuse.

Avant de pouvoir configurer la signature gérée, vous devez disposer des éléments suivants :
+ **Un profil de signature de signataire** : créez au moins un [profil de signature de](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profiles.html) signataire. Un profil de signature est une ressource de AWS signature unique que vous pouvez utiliser pour effectuer des opérations de signature dans Amazon ECR. Les profils de signature vous permettent de signer et de vérifier des artefacts de code, tels que des images de conteneur et des ensembles de AWS Lambda déploiement. Chaque profil de signature désigne la plate-forme de signature à laquelle signer, un identifiant de plate-forme et d'autres informations spécifiques à la plate-forme. Par exemple, l'ARN d'un profil de signature ressemble à ceci :`arn:partition:signer:region:account-id:/signing-profiles/profile-name`.
+ **Autorisations IAM** — Le principal IAM qui envoie l'image doit disposer des autorisations IAM nécessaires pour accéder au profil de signature du signataire concerné et au référentiel ECR correspondant. Vous devez modifier la politique basée sur l'identité pour le principal IAM afin d'inclure des autorisations pour les opérations de référentiel ECR et les opérations de signature des signataires. L'exemple de politique suivant montre les autorisations requises :

```
{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
   {
       "Sid":"UploadSignaturePermissions",
       "Effect":"Allow",
       "Action":[
           "ecr:CompleteLayerUpload",
           "ecr:UploadLayerPart",
           "ecr:InitiateLayerUpload",
           "ecr:BatchCheckLayerAvailability",
           "ecr:PutImage"
       ],
       "Resource":"arn:aws:ecr:region:account-id:repository/repository-name"
   },
   {
       "Sid": "SignPermissions",
       "Effect": "Allow",
       "Action": [
           "signer:SignPayload"
       ],
       "Resource": "arn:aws:signer:region:account-id:/signing-profiles/signing-profile-name"
   }
   ]
}
```

Avec la signature gérée par Amazon ECR, vous pouvez créer plusieurs règles de signature (jusqu'à 10 par registre) afin de renforcer les limites de sécurité. Par exemple, vous pouvez exécuter plusieurs pipelines de génération et souhaitez limiter les référentiels que chaque pipeline peut signer. Dans chaque règle, vous configurez un profil de signature et spécifiez des filtres de nom de référentiel. Lorsqu'une nouvelle image est envoyée, Amazon ECR détermine la règle de signature et le profil de signature autorisés à signer l'image. S'il existe plusieurs correspondances, Amazon ECR génère plusieurs signatures.

**Note**  
Si vous vérifiez les signatures manuellement, vous devez tout de même installer la CLI Notation.

**Note**  
La signature gérée par Amazon ECR est disponible dans toutes les AWS régions où la signature d'images de conteneurs avec AWS Signer est disponible.

## Prise en main
<a name="managed-signing-getting-started"></a>

Procédez comme suit pour configurer la signature gérée. Vous fournissez à Amazon ECR une référence à un profil de signature de signataire et, éventuellement, des filtres qui limitent les référentiels dont les images doivent être signées.

------
#### [ AWS Management Console ]

Procédez comme suit pour configurer la signature gérée à l'aide du AWS Management Console.

1. Ouvrez la [console Amazon ECR.](https://console.aws.amazon.com/ecr/private-registry/repositories) Dans le volet de navigation de gauche, sélectionnez **Registre privé**, **Fonctionnalités et paramètres**, **Signature gérée**.

1. Sur la page **Règles de signature**, sélectionnez **Créer une règle**.

1. Sur la page du **profil de signature**, sous **Sélectionnez un profil de AWS signataire**, choisissez **Créer un nouveau profil de AWS signataire**, entrez un **nom de profil** et, éventuellement, modifiez la **période de validité de la signature**. Sélectionnez ensuite **Next**.

1. Sur la page **Filtres**, sous **Sélectionner les référentiels**, entrez un **filtre de nom de référentiel**. Sélectionnez ensuite **Next**.

1. Sur la page **Réviser et créer**, vérifiez le **profil du AWS signataire** et les **filtres de nom du référentiel** que vous avez saisis. Si tout semble correct, sélectionnez **Enregistrer**.

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

Utilisez les AWS CLI commandes suivantes pour configurer la signature gérée.
+ **Création d'une règle de signature**

  Créez une configuration de signature avec l'ARN de votre profil de signature. Créez un fichier JSON avec le contenu suivant :

  ```
  {
      "rules": [ 
          { 
              "signingProfileArn": "arn:aws:signer:region:account-id:/signing-profiles/profile-name",
              "repositoryFilters": [ 
                  { 
                      "filter": "test*",
                      "filterType": "WILDCARD_MATCH"
                  }
              ]
          }
      ]
  }
  ```

  Ensuite, exécutez la commande suivante :

  ```
  aws ecr --region region \
      put-signing-configuration \
      --signing-configuration file://signing-config.json
  ```

  Vous devriez voir la réponse de l'API contenant la configuration de signature.
+ **Afficher votre configuration de signature**

  Récupérez votre configuration de signature :

  ```
  aws ecr --region region \
      get-signing-configuration
  ```

  Vous devriez voir la réponse de l'API contenant la configuration de signature.
+ **Vérifier l'état de signature des images**

  Transférez une image dans votre dépôt. Par exemple :

  ```
  docker pull ubuntu
  
  IMAGE_NAME="account-id.dkr.ecr.region.amazonaws.com/repository-name"
  IMAGE_TAG="${IMAGE_NAME}:test-1"
  
  docker tag ubuntu $IMAGE_TAG
  docker push $IMAGE_TAG
  ```

  Après avoir appuyé, utilisez votre balise d'image pour vérifier l'état de signature :

  ```
  aws ecr --region region \
      describe-image-signing-status \
      --repository-name repository-name \
      --image-id imageTag=test-1
  ```

  Si le nom du référentiel correspond à votre filtre de référentiel défini dans la configuration de signature, vous devriez voir le statut de signature dans la réponse de l'API. Si le statut est satisfaisant, vous devriez voir une signature envoyée à votre dépôt.
+ **Supprimer votre configuration de signature**

  Supprimez votre configuration de signature :

  ```
  aws ecr --region region \
      delete-signing-configuration
  ```

  Vous devriez voir la réponse de l'API contenant la configuration de signature supprimée.

------

## Considérations
<a name="managed-signing-considerations"></a>

Les limites et fonctionnalités suivantes s'appliquent à la signature gérée :
+ **La signature entre régions n'est pas prise en charge** : les profils de signature doivent se trouver dans la même région que votre registre Amazon ECR. Vous ne pouvez pas utiliser le profil de signature d'une région pour signer des images dans un registre situé dans une autre région.
+ **La signature entre comptes est prise en charge** : les profils de signature peuvent se trouver sur des comptes différents de ceux de votre registre Amazon ECR. Cela permet aux entreprises de gérer les profils de signature de manière centralisée tout en permettant aux développeurs d'autres comptes de les utiliser. Pour plus d'informations, consultez la [section Configurer la signature entre comptes pour le signataire](https://docs.aws.amazon.com/signer/latest/developerguide/signing-profile-cross-account.html) dans le *guide du AWS Signer développeur*.
+ **Les signatures ne peuvent pas être signées** : vous ne pouvez pas signer les signatures elles-mêmes. Seules les images du conteneur peuvent être signées.

# Vérification de signature
<a name="image-signing-verification"></a>

Après avoir signé les images de vos conteneurs, vous pouvez vérifier les signatures pour vous assurer que les images n'ont pas été falsifiées et proviennent d'une source fiable. Amazon ECR prend en charge plusieurs méthodes de vérification des signatures :

## Vérification gérée avec Amazon EKS
<a name="image-signing-verification-managed"></a>

Amazon EKS fournit une intégration native pour la vérification automatique des signatures. Lorsque vous configurez la vérification des signatures dans vos clusters Amazon EKS, le service vérifie automatiquement les signatures d'image avant d'autoriser l'exécution des conteneurs. Pour plus d'informations sur la configuration de la vérification des signatures, consultez la section [Valider les signatures d'images de conteneurs lors du déploiement](https://docs.aws.amazon.com/eks/latest/userguide/image-verification.html) dans le *guide de l'utilisateur Amazon EKS*.

## Contrôleur d'admission Lambda pour Amazon ECS
<a name="image-signing-verification-lambda"></a>

Amazon ECS fournit des hooks du cycle de vie des services qui vous permettent d'exécuter une logique personnalisée lors des déploiements de services. Ces hooks peuvent déclencher des AWS Lambda fonctions à des moments spécifiques du processus de déploiement, ce qui vous permet de valider les signatures des images des conteneurs avant d'autoriser le démarrage des services. Pour plus d'informations, consultez [Vérifier les signatures d'image de conteneur pour Amazon ECS](https://docs.aws.amazon.com/signer/latest/developerguide/ecs-verification.html) dans le *manuel du AWS Signer développeur*.

## Vérification manuelle avec Notation CLI
<a name="image-signing-verification-manual"></a>

Vous pouvez vérifier les signatures manuellement à l'aide de la CLI Notation. Cette méthode nécessite l'installation et la configuration de la CLI Notation sur votre machine locale ou dans votre environnement de vérification. Pour obtenir des instructions détaillées sur la vérification d'une image à l'aide de la Notation CLI, voir [Vérifier une image localement après signature](https://docs.aws.amazon.com/signer/latest/developerguide/image-verification.html) dans le *manuel du AWS Signer développeur*.

## Configuration de l'authentification pour le client Notation
<a name="image-signing-authentication"></a>

Si vous utilisez la signature manuelle ou si vous vérifiez les signatures manuellement à l'aide de la CLI Notation, vous devez configurer le client Notation afin qu'il puisse s'authentifier auprès d'Amazon ECR. Si Docker est installé sur le même hôte que le client Notation, ce dernier réutilisera la même méthode d'authentification que celle utilisée pour le client Docker. Le Docker `login` et `logout` les commandes permettront à la notation `sign` et aux `verify` commandes d'utiliser les mêmes informations d'identification, et vous n'aurez pas à authentifier la notation séparément. Pour plus d'informations sur la configuration de votre client Notation pour l'authentification, voir [Authentifier avec des registres conformes à l'OCI-OCI](https://notaryproject.dev/docs/user-guides/how-to/registry-authentication/) dans la documentation du projet Notary.

Si vous n'utilisez pas Docker ou un autre outil qui utilise des informations d'identification Docker, nous vous recommandons d'utiliser l'assistant des informations d'identification Amazon ECR Docker comme magasin d'informations d'identification. Pour plus d'informations sur l'installation et la configuration de l'assistant des informations d'identification Amazon ECR Docker, consultez la page [Assistant des informations d'identification Amazon ECR Docker](https://github.com/awslabs/amazon-ecr-credential-helper) (français non garanti).

# Signature manuelle
<a name="image-signing-manual"></a>

La signature manuelle utilise la CLI Notation et le AWS Signer plug-in pour signer les images avant de les transférer vers Amazon ECR. Cette méthode permet de mieux contrôler le processus de signature et est utile lorsque vous devez signer des images en dehors du flux de travail push ou que vous avez besoin d'un contrôle précis des opérations de signature.

Pour obtenir des instructions détaillées sur la signature d'images de conteneurs à l'aide de la CLI Notation AWS Signer, voir [Signer des images de conteneur dans Signer](https://docs.aws.amazon.com/signer/latest/developerguide/container-workflow.html) et les rubriques connexes dans le *Guide du AWS Signer développeur*.

## Conditions préalables
<a name="image-signing-prerequisites"></a>

Avant de commencer, les prérequis suivants doivent être respectés.
+ Installez et configurez la version la plus récente de l' AWS CLI. Pour plus d'informations, consultez [Installation ou mise à jour de la version la plus récente de l' AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) (langue française non garantie) dans le *Guide de l'utilisateur AWS Command Line Interface *.
+ Installez la CLI Notation et le AWS Signer plugin pour Notation. Pour plus d'informations, consultez [Prérequis pour la signature des images de conteneur](https://docs.aws.amazon.com/signer/latest/developerguide/image-signing-prerequisites.html) (langue française non garantie) dans le *Guide du développeur AWS Signer *.
+ Vous devez avoir une image de conteneur enregistrée dans un référentiel privé Amazon ECR à signer. Pour de plus amples informations, veuillez consulter [Transférer une image vers un référentiel privé Amazon ECR](image-push.md).