Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Come posso consentire a un account secondario di inviare o estrarre immagini nei miei repository di immagini Amazon ECR?
Desidero consentire a un account AWS secondario di inviare o estrarre immagini nei miei repository di immagini Amazon Elastic Container Registry (Amazon ECR).
Breve descrizione
Per consentire a un account secondario di inviare o estrarre immagini in un repository Amazon ECR, crea una policy del registro o del repository nell'account principale. Per fornire l'accesso a tutti i repository in una Regione AWS o a più repository diversi, configura una policy a livello di registro. Per fornire l'accesso a un solo repository o limitare l'accesso a identità diverse all'interno di un singolo repository, configura una policy a livello di repository. Configura la policy per consentire chiamate API specifiche dall'account secondario.
Quindi, dall'account secondario, genera un token di autenticazione Docker per inviare e estrarre immagini nel repository dell'account principale.
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Configura le autorizzazioni a livello di registro
Prerequisito: il registro Amazon ECR deve utilizzare una policy V2. Se utilizzi una policy V1, passa a una policy V2. Per ulteriori informazioni sulla policy V2, consulta Amazon ECR estende la policy del registro a tutte le azioni di ECR.
Completa i seguenti passaggi:
- Apri la console Amazon ECR per l'account principale.
- Nel pannello di navigazione, in Registro privato, scegli Impostazioni delle funzionalità.
- Scegli Autorizzazioni.
- Scegli Modifica JSON.
- Inserisci la policy nell'editor. Esempio di policy che consente all'account secondario di inviare e estrarre immagini in tutti i repository della Regione:
Nota: sostituisci account-id con l'ID dell'account secondario. In Operazione, inserisci le operazioni che l'account può eseguire nel repository. Per consentire l'accesso a un ruolo specifico, fornisci il nome della risorsa Amazon (ARN) del ruolo per Principale, ad esempio AWS: arn:aws:iam::account-id:role/ecsInstanceRole. Prima di salvare la policy del registro, assicurati che il ruolo inserito esista nell'account secondario. Se il ruolo non esiste, viene visualizzato l'errore "invalid registry policy provided".{ "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": "*" } ] } - Scegli Salva.
Configura le autorizzazioni a livello di repository
Completa i seguenti passaggi:
- Apri la console Amazon ECR per l'account principale.
- Nel pannello di navigazione, in Registro privato, scegli Repository.
- Scegli il repository che desideri modificare.
- Nel pannello di navigazione, scegli Autorizzazioni.
- Scegli Modifica JSON della policy.
- Nell'editor di policy, inserisci l'istruzione di policy.
Esempio di policy del repository che consente a un account di inviare e estrarre immagini:
Nota: sostituisci account-id con l'ID dell'account secondario. In Operazione, inserisci le operazioni che l'account può eseguire nel repository. Per consentire l'accesso a un ruolo specifico, fornisci il nome della risorsa Amazon (ARN) del ruolo per Principale, ad esempio AWS: arn:aws:iam::account-id:role/ecsInstanceRole. Prima di salvare la policy del registro, assicurati che il ruolo inserito esista nell'account secondario. Se il ruolo non esiste, viene visualizzato l'errore "invalid registry policy provided".{ "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" ] } ] } - Scegli Salva.
- Se utilizzi Amazon ECS per eseguire il container nell'account secondario, imposta l'immagine che desideri utilizzare con Amazon ECS. L'immagine è ospitata nel repository Amazon ECR dell'account principale.
Nota: assicurati che la policy gestita AmazonEC2ContainerRegistryPowerUser includa le autorizzazioni di Amazon ECR per l'account secondario. Devi avere queste autorizzazioni per eseguire inviare o estrarre dall'account principale.
Genera un token di autenticazione Docker temporaneo
Nota: l'account che ottiene il token deve avere le autorizzazioni dell'API AWS Identify and Access Management (AWS IAM) richieste per modificare il repository. Per esempi, consulta Policy gestite da AWS per Amazon Elastic Container Registry. Per risolvere i problemi con Docker, attiva la modalità di debug nel daemon Docker.
Completa i seguenti passaggi:
-
Per generare un token di autenticazione Docker per un account che invia ed estrae immagini all'esterno di Amazon ECS, esegui questo comando AWS CLI get-login-password:
aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin AWS_ACCOUNT_ID.dkr.ecr.REGION-ID.amazonaws.com-oppure-
Esegui questo comando AWS Tools per Windows PowerShell:(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin AWS_ACCOUNT_ID.dkr.ecr.regionID.amazonaws.comNota: sostituisci AWS-ACCOUNT-ID con l'ID del tuo account principale e REGION-ID con la tua Regione. Il token di autenticazione temporaneo è valido per 12 ore.
Esempio di output: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 -
Per estrarre o inviare un'immagine di prova dall'account principale, esegui questo comando:
docker pull ACCOUNT-ID.dkr.ecr.REGION.amazonaws.com/REPOSITORY-NAME:TAG-NAMENota: sostituisci ACCOUNT-ID con l'ID del tuo account principale, REGION con la tua Regione, REPOSITORY-NAME con il nome del tuo repository e TAG-NAME con il nome del tag per la tua immagine.
-
Per verificare di aver scaricato correttamente l'immagine, esegui questo comando:
docker images | grep IMAGE-NAMENota: sostituisci IMAGE-NAME con il nome della tua immagine.
- Argomenti
- Containers
- Lingua
- Italiano
Video correlati


Contenuto pertinente
AWS UFFICIALEAggiornata 2 anni fa