Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Comment puis-je autoriser un compte secondaire à transférer ou à extraire des images dans mes référentiels Amazon ECR ?
Je souhaite autoriser un compte AWS secondaire à transférer ou à extraire des images dans mes référentiels d'images Amazon Elastic Container Registry (Amazon ECR).
Brève description
Pour autoriser un compte secondaire à transférer ou à extraire des images de votre référentiel Amazon ECR, créez une stratégie de registre ou de référentiel dans votre compte principal. Pour fournir un accès à tous les référentiels de votre région AWS ou à plusieurs référentiels différents, configurez une stratégie au niveau du registre. Pour fournir l'accès à un seul référentiel ou restreindre l'accès à différentes identités au sein d'un seul référentiel, configurez une stratégie au niveau du référentiel. Configurez la stratégie pour autoriser des appels d'API spécifiques depuis le compte secondaire.
Puis, à partir du compte secondaire, générez un jeton d'authentification Docker pour transférer et extraire des images du référentiel du compte principal.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Configurer les autorisations au niveau du registre
Prérequis : Votre registre Amazon ECR doit utiliser une stratégie V2. Si vous utilisez une stratégie V1, passez à la stratégie V2. Pour plus d'informations sur la stratégie V2, consultez la section Amazon ECR étend la politique de registre à toutes les actions ECR.
Procédez comme suit :
- Ouvrez la console Amazon ECR pour votre compte principal.
- Dans le volet de navigation, sous Registre privé, sélectionnez Fonctionnalités et paramètres.
- Sélectionnez Autorisations.
- Sélectionnez Modifier JSON.
- Saisissez votre stratégie dans l'éditeur. Exemple de stratégie qui permet au compte secondaire de transférer et d'extraire des images dans tous les référentiels de la région :
Remarque : Remplacez account-id par l’ID du compte secondaire. Pour Action, saisissez les actions que le compte peut effectuer dans le référentiel. Pour autoriser l'accès à un rôle spécifique, indiquez le rôle Amazon Resource Name (ARN) pour le principal, par exemple AWS: arn:aws:iam::account-id:role/ecsInstanceRole. Avant d'enregistrer la stratégie de registre, assurez-vous que le rôle que vous avez saisi existe dans le compte secondaire. Si le rôle n'existe pas, le message d'erreur « invalid registry policy provided » s'affiche.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload" ], "Resource": "*" } ] } - Sélectionnez Enregistrer.
Configurer les autorisations au niveau du référentiel
Procédez comme suit :
- Ouvrez la console Amazon ECR pour votre compte principal.
- Dans le volet de navigation, sous Registre privé, sélectionnez Référentiels.
- Puis, choisissez le référentiel que vous souhaitez modifier.
- Dans le volet de navigation, sélectionnez Autorisations.
- Sélectionnez Modifier JSON de la stratégie.
- Dans l'éditeur de stratégie, saisissez votre instruction de politique.
Exemple de stratégie de référentiel qui permet à un compte de transférer et d'extraire des images :
Remarque : Remplacez account-id par l’ID du compte secondaire. Pour Action, saisissez les actions que le compte peut effectuer dans le référentiel. Pour autoriser l'accès à un rôle spécifique, indiquez le rôle Amazon Resource Name (ARN) pour le principal, par exemple AWS: arn:aws:iam::account-id:role/ecsInstanceRole. Avant d'enregistrer la stratégie de registre, assurez-vous que le rôle que vous avez saisi existe dans le compte secondaire. Si le rôle n'existe pas, le message d'erreur « invalid registry policy provided » s'affiche.{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPushPull", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": [ "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload" ] } ] } - Sélectionnez Enregistrer.
- Si vous utilisez Amazon ECS pour exécuter le conteneur dans le compte secondaire, définissez l'image que vous souhaitez utiliser avec Amazon ECS. Le référentiel Amazon ECR du compte principal héberge l'image.
Remarque : Assurez-vous que la stratégie gérée par AmazonEC2ContainerRegistryPowerUser inclut les autorisations Amazon ECR pour votre compte secondaire. Vous devez disposer de ces autorisations pour effectuer des opérations d’extraction ou de transfert depuis votre compte principal.
Générer un jeton d'authentification Docker temporaire
Remarque : Le compte destinataire du jeton doit disposer des autorisations d'API Gestion des identités et des accès AWS (AWS IAM) permettant de modifier le référentiel. Pour des exemples, consultez les stratégies gérées par AWS pour Amazon ECR. Pour résoudre les problèmes liés à Docker, activez le mode de débogage sur votre démon Docker.
Procédez comme suit :
-
Pour générer un jeton d'authentification Docker pour un compte qui transfère et extrait des images à l’extérieur d'Amazon ECS, exécutez la commande AWS CLI get-login-password suivante.
aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin AWS_ACCOUNT_ID.dkr.ecr.REGION-ID.amazonaws.com-ou-
Exécutez la commande AWS Tools pour Windows PowerShell suivante :(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin AWS_ACCOUNT_ID.dkr.ecr.regionID.amazonaws.comRemarque : Remplacez AWS-ACCOUNT-ID par votre ID de compte principal, et remplacez REGION-ID par votre région. Le jeton d'authentification temporaire est valide pendant 12 heures.
Exemple de sortie :aws ecr get-login-password --region ap-south-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-south-1.amazonaws.com WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded or Login Succeeded -
Pour effectuer un test d'extraction ou de transfert d'image depuis ou vers le compte principal, exécutez la commande suivante :
docker pull ACCOUNT-ID.dkr.ecr.REGION.amazonaws.com/REPOSITORY-NAME:TAG-NAMERemarque : Remplacez ACCOUNT-ID par votre ID de compte principal, REGION par votre région, REPOSITORY-NAME par le nom de votre référentiel et TAG-NAME par le nom d’identification de votre image.
-
Pour vérifier que vous avez correctement téléchargé l'image, exécutez la commande suivante :
docker images | grep IMAGE-NAMERemarque : Remplacez IMAGE-NAME par le nom de votre image.
- Sujets
- Containers
- Langue
- Français
Vidéos associées


Contenus pertinents
- demandé il y a 2 ans
- demandé il y a 2 ans
- demandé il y a 3 ans
AWS OFFICIELA mis à jour il y a 2 ans