View a markdown version of this page

Signature gérée - Amazon ECR

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.

Signature gérée

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

Pour configurer la signature gérée, vous devez créer 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, la signature gérée par Amazon ECR signe automatiquement les images au fur et à mesure qu'elles sont envoyées en utilisant l'identité de l'entité qui diffuse l'image.

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 signataire. Un profil de signature est une ressource de AWS signataire 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 conteneurs et des ensembles de AWS Lambda déploiement. Chaque profil de signature désigne la plateforme de signature sur laquelle signer, un identifiant de plate-forme et d'autres informations spécifiques à la plate-forme. Par exemple, un ARN de profil de signature ressemble à ceci :arn:partition:signer:region:account-id:/signing-profiles/profile-name.

  • Autorisations IAM  : le principal IAM qui diffuse 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 pertinent. Vous devez modifier la politique basée sur l'identité pour le principal IAM afin d'inclure des autorisations pour les opérations du référentiel ECR et les opérations de signature des signataires. L'exemple de politique suivant indique 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 vouloir limiter les référentiels que chaque pipeline peut signer. Dans chaque règle, vous configurez un profil de signature et vous 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 qui peuvent signer l'image. S'il y a 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 Notation CLI.

Note

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

Prise en main

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

Console de gestion AWS

Suivez les étapes suivantes pour configurer la signature gérée à l'aide du Console de gestion AWS.

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

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

  3. Sur la page 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 Suivant.

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

  5. 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 de l'image

    Transférez une image vers votre référentiel. 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 la 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, l'état de signature devrait apparaître dans la réponse de l'API. Si le statut est correct, vous devriez voir une signature envoyée à votre référentiel.

  • 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

Les limites et fonctionnalités suivantes s'appliquent à la signature gérée :

  • Cross-region la signature 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 un profil de signature d'une région pour signer des images dans un registre situé dans une autre région.

  • Cross-account la signature est prise en charge — Les profils de signature peuvent appartenir à des comptes différents de ceux de votre registre Amazon ECR. Cela permet aux organisations de gérer de manière centralisée les profils de signature tout en permettant aux développeurs d'autres comptes de les utiliser. Pour plus d'informations, consultez la section Configuration de la signature entre comptes pour Signer 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 de conteneurs peuvent être signées.