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 (AmazonECR) è un servizio di registro di immagini di container AWS gestito che supporta repository privati con autorizzazioni basate sulle risorse utilizzando (). AWS Identity and Access Management IAM Puoi consentire ai servizi di container Amazon Lightsail di accedere ai tuoi repository privati AmazonECR. 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 ECR Amazon 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 AmazonECR, consulta la Amazon ECR User Guide.
Indice
Autorizzazioni richieste
L'utente che gestirà l'accesso dei servizi container Lightsail agli archivi privati di ECR Amazon deve disporre di una delle seguenti politiche di autorizzazione. IAM Per ulteriori informazioni, consulta Aggiungere e rimuovere le autorizzazioni di IAM identità nella Guida per l'utente.AWS Identity and Access Management
Concedi l'accesso a qualsiasi repository ECR privato di Amazon
La seguente politica di autorizzazione concede all'utente l'autorizzazione a configurare l'accesso a qualsiasi repository ECR privato di Amazon.
{ "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 politica, sostituiscilo AwsAccountId
con il numero ID del tuo AWS account.
Concedi l'accesso a un repository ECR privato Amazon specifico
La seguente politica di autorizzazione concede all'utente l'autorizzazione a configurare l'accesso a uno specifico repository ECR privato di Amazon, in uno specifico. 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 esempious-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 desideri 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
. -
Nel riquadro di navigazione a sinistra, scegli Contenitori.
-
Scegli il nome del servizio container per il quale desideri configurare l'accesso a un repository ECR privato Amazon.
-
Scegli la scheda Images (Immagini).
-
Scegli Aggiungi repository per concedere l'accesso del tuo servizio container a un repository ECR privato Amazon.
Nota
Puoi scegliere Rimuovi per rimuovere l'accesso al tuo servizio container da un repository ECR privato Amazon 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 ECR Amazon image IAM puller per il tuo servizio container, che include un Amazon Resource Name () principale. ARN Lightsail aggiunge quindi automaticamente IAM il ruolo ARN principale alla politica di autorizzazione del repository privato ECR Amazon 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.
Una volta aggiunto, il repository ECR privato Amazon selezionato, viene elencato nella sezione Amazon ECR private repository della pagina. La pagina include istruzioni su come distribuire un'immagine dal repository privato al servizio container Lightsail. Per utilizzare un'immagine dal tuo repository privato, specifica il URI formato visualizzato sulla pagina come valore Image quando crei la distribuzione del servizio container. Nel URI campo specificato, sostituisci l'esempio
{image tag}
con il tag dell'immagine che desideri distribuire. Per ulteriori informazioni, consulta la pagina Creazione e gestione delle implementazioni dei servizi di container.
Usa il AWS CLI per gestire l'accesso ai repository privati
La gestione dell'accesso di un servizio container Lightsail a un repository privato ECR Amazon 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 ECR Amazon perché semplifica il processo. Per ulteriori informazioni, consulta Utilizzare la console Lightsail per gestire l'accesso ai repository privati all'inizio di questa guida.
-
Attiva o disattiva il IAM ruolo Amazon ECR image puller: utilizza il AWS CLI
update-container-service
comando per Lightsail per attivare o disattivare il ruolo Amazon image puller. ECR IAM Quando lo attivi, viene creato un Amazon Resource Name (ARN) principale per il IAM ruolo Amazon ECR image puller. Per ulteriori informazioni, consulta la sezione Attivazione o disattivazione del IAM ruolo Amazon ECR image puller di questa guida. -
Determina se il tuo repository ECR privato Amazon ha una dichiarazione di policy: dopo aver attivato il IAM ruolo Amazon ECR image puller, devi determinare se il repository ECR privato Amazon a cui desideri accedere con il tuo servizio container ha una dichiarazione di policy esistente. Per ulteriori informazioni, consulta Determina se il tuo repository ECR privato Amazon ha una dichiarazione sulla politica più avanti in questa guida.
Aggiungi il IAM ruolo principale ARN al tuo repository utilizzando uno dei seguenti metodi, a seconda che il repository disponga di una dichiarazione politica esistente:
-
Aggiungi una policy a un repository privato che non dispone di una policy: utilizza il AWS CLI
set-repository-policy
comando per Amazon per ECR aggiungere il ruolo principale di Amazon ECR image puller ARN 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 per Amazon per ECR 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.
-
Attiva o disattiva il ruolo Amazon ECR Image Puller IAM
Completa la seguente procedura per attivare o disattivare il IAM ruolo Amazon ECR image puller per il tuo servizio container Lightsail. Puoi attivare o disattivare il IAM ruolo Amazon ECR image puller usando il AWS CLI
update-container-service
comando per Lightsail. Per ulteriori informazioni, consulta la sezione update-container-service nella Documentazione di riferimento della 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 seguente comando per aggiornare un servizio container e attivare o disattivare il ruolo Amazon ECR image pullerIAM.
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 Amazon ECR image pullerIAM. -
RoleActivationState
— Lo stato di attivazione del IAM ruolo 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 IAM ruolo Amazon ECR image puller:
aws lightsail update-container-service --service-name
my-container-service
--private-registry-access ecrImagePullerRole={isActive=true
} --regionus-east-1
-
Per disattivare il ruolo Amazon ECR image pullerIAM:
aws lightsail update-container-service --service-name
my-container-service
--private-registry-access ecrImagePullerRole={isActive=false
} --regionus-east-1
-
-
Se:
-
Attivato il ruolo Amazon ECR image puller: attendi almeno 30 secondi dopo aver ricevuto la risposta precedente. Quindi, passa alla fase successiva per assumere il IAM ruolo principale ARN di Amazon ECR image puller per il tuo servizio di container.
-
Disattivato il ruolo Amazon ECR image puller: se in precedenza hai aggiunto il IAM ruolo principale di Amazon ECR image puller ARN alla politica di autorizzazione del tuo repository ECR privato Amazon, devi rimuovere tale politica di autorizzazione dal tuo repository. Per ulteriori informazioni, consulta la dichiarazione sulla politica di eliminazione di un archivio privato nella Amazon ECR User Guide.
-
-
Immetti il seguente comando per ottenere il ruolo principale ARN del IAM ruolo Amazon ECR image puller per il tuo servizio 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 il IAM ruolo principale ARN 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 il IAM ruolo principale di ECR Image Puller ARN nella risposta. Se è elencato un ruolo, copialo o prendine nota. Ti occorrerà per la sezione successiva di questa guida. Successivamente, devi determinare se esiste una dichiarazione politica esistente sull'archivio ECR privato di Amazon a cui desideri accedere con il tuo servizio container. Continua con la sezione Determina se il tuo repository ECR privato Amazon ha una dichiarazione di policy di questa guida.
-
Determina se il tuo repository ECR privato Amazon ha una dichiarazione di policy
Utilizza la seguente procedura per determinare se il tuo repository ECR privato Amazon dispone di una dichiarazione di policy. Puoi usare il AWS CLI get-repository-policy
comando per AmazonECR. Per ulteriori informazioni, consulta la sezione update-container-service nella Documentazione di riferimento della 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 Amazon ECR User Guide.
-
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 seguente procedura per aggiungere una policy a un repository ECR privato Amazon che non contiene una dichiarazione di policy. La policy che aggiungi deve includere il IAM ruolo principale di Amazon ECR Image Puller ARN 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 di ECR Amazon image puller ai tuoi repository privati ECR Amazon quando utilizzi la console Lightsail per configurare l'accesso. In tal caso, non è necessario aggiungere manualmente il ruolo Amazon ECR image puller ai tuoi 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 JSON file che contiene la policy e quindi fai riferimento a quel file con il set-repository-policy
comando per AmazonECR. Per ulteriori informazioni, consulta la sezione set-repository-policy nella Documentazione di riferimento della AWS CLI .
Nota
È necessario installarlo AWS CLI e configurarlo per Amazon ECR prima di continuare con questa procedura. Per ulteriori informazioni, consulta Configurazione con Amazon ECR nella Amazon ECR User Guide.
-
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 il IAM ruolo principale ARN di Amazon ECR image puller 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 delecr-policy.json
file sul computer 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 tuo repository, specifica URI quanto segue come valore Image per la distribuzione del servizio container. NellaURI, sostituisci l'esempio
tag
con il tag dell'immagine che desideri distribuire. Per ulteriori informazioni, consulta la pagina Creazione e gestione delle implementazioni dei servizi di container.AwsAccountId
.dkr.ecr.AwsRegionCode
.amazonaws.com/RepositoryName
:ImageTag
NellaURI, 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
-
Aggiunta di una policy a un repository privato che dispone di un'istruzione di policy
Completa la seguente procedura per aggiungere una policy a un repository ECR privato Amazon con una dichiarazione di policy. La politica che aggiungi deve includere la politica esistente e una nuova politica che includa il IAM ruolo principale di Amazon ECR image puller ARN del tuo servizio container Lightsail. 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 di ECR Amazon image puller ai tuoi repository privati ECR Amazon quando utilizzi la console Lightsail per configurare l'accesso. In tal caso, non è necessario aggiungere manualmente il ruolo Amazon ECR image puller ai tuoi 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, create un JSON file che contiene la politica esistente e la nuova politica. Quindi, fai riferimento a quel file con il set-repository-policy
comando per AmazonECR. Per ulteriori informazioni, consulta la sezione set-repository-policy nella Documentazione di riferimento della 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 Amazon ECR User Guide.
-
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 il IAM ruolo principale ARN di Amazon ECR image puller 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 si desidera aggiungere la policy. -
path/to/
— Il percorso delecr-policy.json
file sul computer 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 tuo repository, specifica URI quanto segue come valore Image per la distribuzione del servizio container. NellaURI, sostituisci l'esempiotag
con il tag dell'immagine che desideri distribuire. Per ulteriori informazioni, consulta la pagina Creazione e gestione delle implementazioni dei servizi di container.AwsAccountId
.dkr.ecr.AwsRegionCode
.amazonaws.com/RepositoryName
:ImageTag
NellaURI, 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
-