Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Concedi ai servizi container Lightsail l'accesso agli archivi privati di Amazon ECR
Amazon Elastic Container Registry (Amazon ECR) è AWS un servizio di registro di immagini di container gestito che supporta repository privati con autorizzazioni basate sulle risorse (IAM). AWS Identity and Access Management Puoi consentire ai servizi di container Amazon Lightsail di accedere ai tuoi repository privati Amazon ECR. Regione AWS Quindi, puoi implementare le immagini dal tuo repository privato ai servizi di container.
Puoi gestire l'accesso ai tuoi servizi container Lightsail e ai tuoi repository privati Amazon ECR utilizzando la console Lightsail o (). AWS Command Line Interface AWS CLI Tuttavia, ti consigliamo di utilizzare la console Lightsail perché semplifica il processo.
Per ulteriori informazioni sui servizi di container, consulta Servizi di container. Per ulteriori informazioni su Amazon ECR, consulta la Guida per l'utente di Amazon ECR.
Indice
Autorizzazioni richieste
L'utente che gestirà l'accesso dei servizi container Lightsail agli archivi privati di Amazon ECR deve disporre di una delle seguenti politiche di autorizzazione in IAM. Per ulteriori informazioni, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l'utente di AWS Identity and Access Management .
Concessione dell'accesso a qualsiasi repository privato di Amazon ECR
La seguente policy di autorizzazione concede a un utente l'autorizzazione per configurare l'accesso a qualsiasi repository privato di Amazon ECR.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:*:
AwsAccountId
:repository/*" } ] }
Nella policy, sostituiscilo AwsAccountId
con il numero ID del tuo account. AWS
Concessione dell'accesso a un repository privato specifico di Amazon ECR
La seguente policy di autorizzazione concede a un utente l'autorizzazione per configurare l'accesso a uno specifico repository privato di Amazon ECR in una determinata Regione AWS.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:
AwsRegion
:AwsAccountId
:repository/RepositoryName
" } ] }
Nella policy, sostituisci il seguente testo d'esempio con il tuo testo:
-
AwsRegion
— Il Regione AWS codice (ad esempio,us-east-1
) del repository privato. Il tuo servizio container Lightsail deve trovarsi nello Regione AWS stesso archivio privato a cui desideri accedere. -
AwsAccountId
— Il numero identificativo del tuo AWS account. -
RepositoryName
— Il nome dell'archivio privato per il quale si desidera gestire l'accesso.
Di seguito viene riportato un esempio della policy di autorizzazione compilata con valori di esempio.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ManageEcrPrivateRepositoriesAccess", "Effect": "Allow", "Action": [ "ecr:SetRepositoryPolicy", "ecr:DescribeRepositories", "ecr:DeleteRepositoryPolicy", "ecr:GetRepositoryPolicy" ], "Resource": "arn:aws:ecr:
us-east-1
:111122223333
:repository/my-private-repo
" } ] }
Usa la console Lightsail per gestire l'accesso ai repository privati
Completa la seguente procedura per utilizzare la console Lightsail per gestire l'accesso di un servizio container Lightsail a un repository privato Amazon ECR.
-
Accedi alla console Lightsail
. -
Nella home page di Lightsail, scegli la scheda Containers (Container).
-
Scegli il nome del servizio di container per il quale desideri configurare l'accesso a un repository privato di Amazon ECR.
-
Scegli la scheda Images (Immagini).
-
Scegli Aggiungi repository per concedere al servizio di container l'accesso a un repository privato di Amazon ECR.
Nota
Scegli Rimuovi per rimuovere dal servizio di container l'accesso a un repository privato di Amazon ECR aggiunto in precedenza.
-
Nel menu a discesa visualizzato, seleziona il repository privato a cui desideri accedere, quindi scegli Aggiungi.
Lightsail impiega alcuni minuti per attivare il ruolo IAM di Amazon ECR image puller per il tuo servizio container, che include un Amazon Resource Name (ARN) principale. Lightsail aggiunge quindi automaticamente l'ARN principale del ruolo IAM alla politica di autorizzazione del repository privato Amazon ECR che hai selezionato. Ciò garantisce al servizio container l'accesso al repository privato e alle sue immagini. Non chiudere la finestra del browser fino a quando il modale visualizzato non indica che il processo è stato completato, dopodiché scegli Continue (Continua).
-
Scegli Continue (Continua) quando l'attivazione è completata.
Dopo aver aggiunto il repository privato Amazon ECR selezionato, sarà riportato nella sezione Repository privati di Amazon ECR della pagina. La pagina include istruzioni su come distribuire un'immagine dal repository privato al servizio container Lightsail. Per utilizzare un'immagine dal repository privato, specifica il formato URI visualizzato sulla pagina come il valore dell'immagine nell'implementazione del servizio container. Nell'URI specificato, sostituisci
{image tag}
di esempio con il tag dell'immagine che desideri implementare. Per ulteriori informazioni, consulta la pagina Creazione e gestione delle implementazioni dei servizi di container.
Utilizza il per gestire l'accesso AWS CLI ai repository privati
La gestione dell'accesso di un servizio container Lightsail a un repository privato Amazon ECR utilizzando AWS CLI() richiede AWS Command Line Interface i seguenti passaggi:
Importante
Ti consigliamo di utilizzare la console Lightsail per gestire l'accesso di un servizio container Lightsail a un repository privato Amazon ECR perché semplifica il processo. Per ulteriori informazioni, consulta Utilizzare la console Lightsail per gestire l'accesso ai repository privati all'inizio di questa guida.
-
Attivazione o disattivazione del ruolo IAM di Amazon ECR image puller: utilizza il comando AWS CLI
update-container-service
per Lightsail per attivare o disattivare il ruolo IAM di Amazon ECR image puller. Quando il ruolo IAM di estrazione delle immagini di Amazon ECR viene attivato, viene creato un nome della risorsa Amazon (ARN) del principale. Per ulteriori informazioni, consulta la sezione Attivazione o disattivazione del ruolo IAM di estrazione delle immagini di Amazon ECR di questa guida. -
Determinare se il repository privato di Amazon ECR dispone di un'istruzione di policy: dopo avere attivato il ruolo IAM di estrazione delle immagini di Amazon ECR, sarà necessario determinare se il repository privato di Amazon ECR a cui desideri accedere con il servizio di container dispone di un'istruzione di policy esistente. Per ulteriori informazioni, consulta la sezione Determinare se il repository privato di Amazon ECR dispone di un'istruzione di policy più avanti in questa guida.
È possibile aggiungere l'ARN del principale del ruolo IAM al repository utilizzando uno dei seguenti metodi, a seconda che il repository disponga di un'istruzione della policy esistente:
-
Aggiungi una policy a un repository privato che non include una policy: utilizza il AWS CLI
set-repository-policy
comando per Amazon ECR per aggiungere l'ARN del ruolo principale di Amazon ECR image puller per il tuo servizio container a un repository privato con una policy esistente. Per ulteriori informazioni, consulta la sezione Aggiunta di una policy a un repository privato che non dispone di un'istruzione di policy più avanti in questa guida. -
Aggiungi una policy a un repository privato con una dichiarazione di policy: utilizza il AWS CLI
set-repository-policy
comando for Amazon ECR per aggiungere il ruolo Amazon ECR image puller per il tuo servizio container a un repository privato che non dispone di una policy esistente. Per ulteriori informazioni, consulta la sezione Aggiunta di una policy a un repository privato che dispone di un'istruzione di policy più avanti in questa guida.
-
Attivazione o disattivazione del ruolo IAM di estrazione delle immagini di Amazon ECR
Completa la seguente procedura per attivare o disattivare il ruolo IAM di Amazon ECR image puller per il tuo servizio container Lightsail. Puoi attivare o disattivare il ruolo IAM di Amazon ECR image puller utilizzando il comando AWS CLI
update-container-service
per Lightsail. Per ulteriori informazioni, consulta update-container-servicela sezione Command Reference.AWS CLI
Nota
È necessario installare AWS CLI e configurarlo per Lightsail prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurare la funzionalità AWS CLI per l'utilizzo con Lightsail.
-
Apri un prompt dei comandi o una finestra del terminale.
-
Inserisci il comando seguente per aggiornare un servizio di container e attivare o disattivare il ruolo IAM di estrazione delle immagini di Amazon ECR.
aws lightsail update-container-service --service-name
ContainerServiceName
--private-registry-access ecrImagePullerRole={isActive=RoleActivationState
} --regionAwsRegionCode
Nel comando sostituisci il seguente testo d'esempio con il proprio testo:
-
ContainerServiceName
— Il nome del servizio container per il quale attivare o disattivare il ruolo IAM di Amazon ECR image puller. -
RoleActivationState
— Lo stato di attivazione del ruolo IAM di Amazon ECR image puller. Specificatrue
per attivare il ruolo oppurefalse
per disattivarlo. -
AwsRegionCode
— Il Regione AWS codice del servizio container (ad esempio,us-east-1
).
Esempi:
-
Per attivare il ruolo IAM di estrazione delle immagini di Amazon ECR:
aws lightsail update-container-service --service-name
my-container-service
--private-registry-access ecrImagePullerRole={isActive=true
} --regionus-east-1
-
Per disattivare il ruolo IAM di estrazione delle immagini di Amazon ECR:
aws lightsail update-container-service --service-name
my-container-service
--private-registry-access ecrImagePullerRole={isActive=false
} --regionus-east-1
-
-
Se:
-
Hai attivato il ruolo di estrazione delle immagini di Amazon ECR: attendi almeno 30 secondi dopo avere ricevuto la risposta precedente. Quindi, vai alla fase successiva per ottenere l'ARN del principale del ruolo IAM di estrazione delle immagini di Amazon ECR per il tuo servizio di container.
-
Hai disattivato il ruolo di estrazione delle immagini di Amazon ECR: se in precedenza hai aggiunto l'ARN del principale del ruolo IAM di estrazione delle immagini di Amazon ECR alla policy di autorizzazione del repository privato di Amazon ECR, devi rimuovere la policy di autorizzazione dal repository. Per ulteriori informazioni, consulta Eliminazione di un'istruzione di policy di un repository privato nella Guida per l'utente di Amazon ECR.
-
-
Inserisci il comando seguente per ottenere l'ARN del principale del ruolo IAM di estrazione delle immagini di Amazon ECR per il servizio di container.
aws lightsail get-container-services --service-name
ContainerServiceName
--regionAwsRegionCode
Nel comando sostituisci il seguente testo d'esempio con il proprio testo:
-
ContainerServiceName
— Il nome del servizio container per il quale ottenere l'ARN del ruolo principale IAM di Amazon ECR image puller. -
AwsRegionCode
— Il Regione AWS codice del servizio container (ad esempio,).us-east-1
Esempio:
aws lightsail get-container-services --service-name
my-container-service
--regionus-east-1
Cerca l'ARN del principale del ruolo IAM di estrazione delle immagini ECR nella risposta. Se è elencato un ruolo, copialo o prendine nota. Ti occorrerà per la sezione successiva di questa guida. Successivamente, sarà necessario determinare se il repository privato di Amazon ECR a cui vuoi accedere con il servizio di container dispone di un'istruzione di policy esistente. Vai alla sezione Determinare se il repository privato di Amazon ECR dispone di un'istruzione di policy di questa guida.
-
Determinare se il repository privato di Amazon ECR dispone di un'istruzione di policy
Utilizza la procedura seguente per determinare se il repository privato di Amazon ECR dispone di un'istruzione di policy. Puoi usare il AWS CLI get-repository-policy
comando per Amazon ECR. Per ulteriori informazioni, consulta la sezione update-container-service AWS CLICommand Reference.
Nota
È necessario installarlo AWS CLI e configurarlo per Amazon ECR prima di poter continuare con questa procedura. Per ulteriori informazioni, consulta Configurazione con Amazon ECR nella Guida per l'utente di Amazon ECR.
-
Apri un prompt dei comandi o una finestra del terminale.
-
Inserisci il comando seguente per ottenere l'istruzione di policy per un repository privato specifico.
aws ecr get-repository-policy --repository-name
RepositoryName
--regionAwsRegionCode
Nel comando sostituisci il seguente testo d'esempio con il proprio testo:
-
RepositoryName
— Il nome del repository privato per il quale desideri configurare l'accesso per un servizio container Lightsail. -
AwsRegionCode
— Il Regione AWS codice dell'archivio privato (ad esempio,).us-east-1
Esempio:
aws ecr get-repository-policy --repository-name
my-private-repo
--regionus-east-1
Dovresti visualizzare una delle risposte seguenti:
-
RepositoryPolicyNotFoundException— Il tuo repository privato non ha una dichiarazione politica. Se il tuo repository non dispone di un'istruzione di policy, segui i passaggi riportati nella sezione Aggiunta di una policy a un repository privato che non dispone di un'istruzione di policy più avanti in questa guida.
-
A repository policy was found (È stata rilevata una policy del repository): il repository privato dispone di un'istruzione di policy, che viene visualizzata nella risposta alla richiesta. Se il repository dispone di un'istruzione di policy, copia la policy esistente e quindi segui i passaggi riportati nella sezione Aggiunta di una policy a un repository privato che dispone di un'istruzione di policy più avanti in questa guida.
-
Aggiunta di una policy a un repository privato che non dispone di un'istruzione di policy
Completa la procedura seguente per aggiungere una policy a un repository privato di Amazon ECR che non dispone di un'istruzione di policy. La policy che aggiungi deve includere l'ARN principale del ruolo principale di Amazon ECR image puller IAM del tuo servizio container Lightsail. Ciò garantisce al servizio container l'accesso per l'implementazione di immagini dal repository privato.
Importante
Lightsail aggiunge automaticamente il ruolo Amazon ECR image puller ai tuoi repository privati Amazon ECR quando utilizzi la console Lightsail per configurare l'accesso. In questo caso, non è necessario che tu aggiunga manualmente il ruolo di estrazione delle immagini di Amazon ECR nei repository privati utilizzando la procedura descritta in questa sezione. Per ulteriori informazioni, consulta Utilizzare la console Lightsail per gestire l'accesso ai repository privati all'inizio di questa guida.
Puoi aggiungere una policy a un repository privato utilizzando la AWS CLI. Per eseguire questa operazione, crea un file JSON contenente la policy, quindi fai riferimento a tale file con il comando set-repository-policy
per Amazon ECR. Per ulteriori informazioni, consulta la sezione Command set-repository-policyReference AWS CLI .
Nota
È necessario installare AWS CLI e configurarlo per Amazon ECR prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurazione con Amazon ECR nella Guida per l'utente di Amazon ECR.
-
Apri un editor di testo e incolla la seguente istruzione policy in un nuovo file di testo.
{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowLightsailPull-ecr-private-repo-demo", "Effect": "Allow", "Principal": { "AWS": "
IamRolePrincipalArn
" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }Nel testo, sostituiscilo
IamRolePrincipalArn
con Amazon ECR image puller IAM role principal ARN del tuo servizio container che hai ricevuto in precedenza in questa guida. -
Salva il file come
ecr-policy.json
in una posizione accessibile sul computer (ad esempioC:\Temp\ecr-policy.json
su Windows o/tmp/ecr-policy.json
su macOS o Linux). -
Prendi nota della posizione del percorso del file
ecr-policy.json
creato. Dovrai specificarlo in un comando in una fase successiva di questa procedura. -
Apri un prompt dei comandi o una finestra del terminale.
-
Inserisci il comando seguente per impostare l'istruzione di policy per il repository privato a cui desideri accedere con il servizio container.
aws ecr set-repository-policy --repository-name
RepositoryName
--policy-text file://path/to/
ecr-policy.json --regionAwsRegionCode
Nel comando sostituisci il seguente testo d'esempio con il proprio testo:
-
RepositoryName
— Il nome dell'archivio privato per il quale desideri aggiungere la policy. -
path/to/
: il percorso del fileecr-policy.json
sul computer che hai creato in precedenza in questa guida. -
AwsRegionCode
— Il Regione AWS codice del repository privato (ad esempio,us-east-1
).
Esempi:
-
In Windows:
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file://C:\Temp\
ecr-policy.json --regionus-east-1
-
Su macOS o Linux:
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file:///tmp/
ecr-policy.json --regionus-east-1
Il servizio container è ora in grado di accedere al tuo repository privato e alle sue immagini. Per utilizzare un'immagine dal repository, specifica il seguente URI come valore di Image (Immagine) per l'implementazione del servizio container. Nell'URI, sostituisci il
tag
di esempio con il tag dell'immagine che desideri implementare. Per ulteriori informazioni, consulta la pagina Creazione e gestione delle implementazioni dei servizi di container.AwsAccountId
.dkr.ecr.AwsRegionCode
.amazonaws.com/RepositoryName
:ImageTag
Nell'URI, sostituisci il seguente testo di esempio con il tuo:
-
AwsAccountId
— Il numero identificativo AWS del tuo account. -
AwsRegionCode
— Il Regione AWS codice del repository privato (ad esempio,us-east-1
). -
RepositoryName
— Il nome del repository privato da cui distribuire un'immagine del contenitore. -
ImageTag
— Il tag dell'immagine del contenitore dal repository privato da distribuire sul servizio contenitore.
Esempio:
111122223333
.dkr.ecr.us-east-1
.amazonaws.com/my-private-repo
:myappimage
-
Aggiunta di una policy a un repository privato che dispone di un'istruzione di policy
Completa la procedura seguente per aggiungere una policy a un repository privato di Amazon ECR che dispone di un'istruzione di policy. La policy che aggiungi deve includere la policy esistente e una nuova policy che contenga l'ARN IAM role principal del servizio container Lightsail di Amazon ECR image puller. Ciò mantiene le autorizzazioni esistenti sul repository privato, garantendo al contempo al servizio container l'accesso per l'implementazione di immagini dal repository privato.
Importante
Lightsail aggiunge automaticamente il ruolo Amazon ECR image puller ai tuoi repository privati Amazon ECR quando utilizzi la console Lightsail per configurare l'accesso. In questo caso, non è necessario che tu aggiunga manualmente il ruolo di estrazione delle immagini di Amazon ECR nei repository privati utilizzando la procedura descritta in questa sezione. Per ulteriori informazioni, consulta Utilizzare la console Lightsail per gestire l'accesso ai repository privati all'inizio di questa guida.
Puoi aggiungere una policy a un repository privato utilizzando la AWS CLI. A tale scopo, crea un file JSON che contiene la policy esistente e la nuova policy. Quindi, fai riferimento a tale file con il comando set-repository-policy
per Amazon ECR. Per ulteriori informazioni, consulta la sezione Command set-repository-policyReference AWS CLI .
Nota
È necessario installarlo AWS CLI e configurarlo per Amazon ECR prima di poter continuare con questa procedura. Per ulteriori informazioni, consulta Configurazione con Amazon ECR nella Guida per l'utente di Amazon ECR.
-
Apri un prompt dei comandi o una finestra del terminale.
-
Inserisci il comando seguente per ottenere l'istruzione di policy per un repository privato specifico.
aws ecr get-repository-policy --repository-name
RepositoryName
--regionAwsRegionCode
Nel comando sostituisci il seguente testo d'esempio con il proprio testo:
-
RepositoryName
— Il nome del repository privato per il quale desideri configurare l'accesso per un servizio container Lightsail. -
AwsRegionCode
— Il Regione AWS codice dell'archivio privato (ad esempio,).us-east-1
Esempio:
aws ecr get-repository-policy --repository-name
my-private-repo
--regionus-east-1
-
-
Nella risposta, copia la policy esistente e vai alla fase successiva.
Copia solo il contenuto del
policyText
visualizzato tra le virgolette doppie, come evidenziato nell'esempio seguente. -
Apri un editor di testo e incolla la policy esistente dal repository privato copiata nel passaggio precedente.
Il risultato sarà simile al seguente esempio:
-
Nel testo che hai incollato, sostituisci
\n
con interruzioni di riga ed elimina il\
rimanente.Il risultato sarà simile al seguente esempio:
-
Incolla l'istruzione di policy seguente alla fine del file di testo.
, { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowLightsailPull-ecr-private-repo-demo", "Effect": "Allow", "Principal": { "AWS": "
IamRolePrincipalArn
" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] } -
Nel testo, sostituiscilo
IamRolePrincipalArn
con Amazon ECR image puller IAM role principal ARN del tuo servizio container che hai ricevuto in precedenza in questa guida.Il risultato sarà simile al seguente esempio:
-
Salva il file come
ecr-policy.json
in una posizione accessibile sul computer (ad esempioC:\Temp\ecr-policy.json
su Windows o/tmp/ecr-policy.json
su macOS o Linux). -
Prendi nota della posizione del percorso del file
ecr-policy.json
. Dovrai specificarlo in un comando in una fase successiva di questa procedura. -
Apri un prompt dei comandi o una finestra del terminale.
-
Inserisci il comando seguente per impostare l'istruzione di policy per il repository privato a cui desideri accedere con il servizio container.
aws ecr set-repository-policy --repository-name
RepositoryName
--policy-text file://path/to/
ecr-policy.json --regionAwsRegionCode
Nel comando sostituisci il seguente testo d'esempio con il proprio testo:
-
RepositoryName
— Il nome dell'archivio privato per il quale desideri aggiungere la policy. -
path/to/
: il percorso del fileecr-policy.json
sul computer che hai creato in precedenza in questa guida. -
AwsRegionCode
— Il Regione AWS codice del repository privato (ad esempio,us-east-1
).
Esempi:
-
In Windows:
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file://C:\Temp\
ecr-policy.json --regionus-east-1
-
Su macOS o Linux:
aws ecr set-repository-policy --repository-name
my-private-repo
--policy-text file:///tmp/
ecr-policy.json --regionus-east-1
La risposta dovrebbe essere analoga all'esempio seguente.
Se esegui di nuovo il comando
get-repository-policy
, dovresti vedere la nuova istruzione di policy aggiuntiva sul tuo repository privato. Il servizio container è ora in grado di accedere al tuo repository privato e alle sue immagini. Per utilizzare un'immagine dal repository, specifica il seguente URI come valore di Image (Immagine) per l'implementazione del servizio container. Nell'URI, sostituisci iltag
di esempio con il tag dell'immagine che desideri implementare. Per ulteriori informazioni, consulta la pagina Creazione e gestione delle implementazioni dei servizi di container.AwsAccountId
.dkr.ecr.AwsRegionCode
.amazonaws.com/RepositoryName
:ImageTag
Nell'URI, sostituisci il seguente testo di esempio con il tuo:
-
AwsAccountId
— Il numero identificativo del tuo AWS account. -
AwsRegionCode
— Il Regione AWS codice del repository privato (ad esempio,us-east-1
). -
RepositoryName
— Il nome del repository privato da cui distribuire un'immagine del contenitore. -
ImageTag
— Il tag dell'immagine del contenitore dal repository privato da distribuire sul servizio contenitore.
Esempio:
111122223333
.dkr.ecr.us-east-1
.amazonaws.com/my-private-repo
:myappimage
-