Concedi ai servizi container Lightsail l'accesso agli archivi privati di Amazon ECR - Amazon Lightsail

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

  1. Accedi alla console Lightsail.

  2. Nel riquadro di navigazione a sinistra, scegli Contenitori.

  3. Scegli il nome del servizio container per il quale desideri configurare l'accesso a un repository ECR privato Amazon.

    Servizio container nella console Lightsail
  4. Scegli la scheda Images (Immagini).

    Scheda Immagini nella pagina di gestione dei servizi container della console Lightsail
  5. 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.

    Sezione Amazon ECR private repository della scheda Immagini
  6. Nel menu a discesa visualizzato, seleziona il repository privato a cui desideri accedere, quindi scegli Aggiungi.

    Selezione dal menu a discesa dei repository ECR privati di Amazon

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

    Modal che conferma che le autorizzazioni vengono aggiunte all'archivio privato di Amazon ECR
  7. 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.

    Passaggi successivi dopo l'aggiunta di un repository ECR privato Amazon

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.

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

  2. 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:

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

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

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. 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} --region AwsRegionCode

    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. Specifica true per attivare il ruolo oppure false 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} --region us-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} --region us-east-1
  3. 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.

  4. 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 --region AwsRegionCode

    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 --region us-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.

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. Inserisci il comando seguente per ottenere l'istruzione di policy per un repository privato specifico.

    aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode

    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 --region us-east-1

    Dovresti visualizzare una delle risposte seguenti:

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.

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

  2. Salva il file come ecr-policy.json in una posizione accessibile sul computer (ad esempio C:\Temp\ecr-policy.json su Windows o /tmp/ecr-policy.json su macOS o Linux).

  3. Prendi nota della posizione del percorso del file ecr-policy.json creato. Dovrai specificarlo in un comando in una fase successiva di questa procedura.

  4. Apri un prompt dei comandi o una finestra del terminale.

  5. 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 --region AwsRegionCode

    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 ecr-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 --region us-east-1
    • Su macOS o Linux:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-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.

  1. Apri un prompt dei comandi o una finestra del terminale.

  2. Inserisci il comando seguente per ottenere l'istruzione di policy per un repository privato specifico.

    aws ecr get-repository-policy --repository-name RepositoryName --region AwsRegionCode

    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 --region us-east-1
  3. 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.

    Risposta al get-repository-policy comando per un repository privato che non dispone di una dichiarazione politica
  4. Apri un editor di testo e incolla la policy esistente dal repository privato copiata nel passaggio precedente.

    Il risultato sarà simile al seguente esempio:

    Esempio di file di dichiarazione JSON politica
  5. Nel testo che hai incollato, sostituisci \n con interruzioni di riga ed elimina il \ rimanente.

    Il risultato sarà simile al seguente esempio:

    Esempio di JSON file di dichiarazione politica modificato
  6. 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" ] } ] }
  7. 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:

    Esempio di file completo di dichiarazione JSON politica
  8. Salva il file come ecr-policy.json in una posizione accessibile sul computer (ad esempio C:\Temp\ecr-policy.json su Windows o /tmp/ecr-policy.json su macOS o Linux).

  9. Prendi nota della posizione del percorso del file ecr-policy.json. Dovrai specificarlo in un comando in una fase successiva di questa procedura.

  10. Apri un prompt dei comandi o una finestra del terminale.

  11. 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 --region AwsRegionCode

    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 del ecr-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 --region us-east-1
    • Su macOS o Linux:

      aws ecr set-repository-policy --repository-name my-private-repo --policy-text file:///tmp/ecr-policy.json --region us-east-1

    La risposta dovrebbe essere analoga all'esempio seguente.

    Risposta al comando set-repository-policy

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