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 (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 AwsAccountIdcon 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.

  1. Accedi alla console Lightsail.

  2. Nella home page di Lightsail, scegli la scheda Containers (Container).

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

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

    Sezione repository privati di Amazon ECR 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 privati di Amazon ECR

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

    Modale che conferma che le autorizzazioni sono state aggiunte al repository privato di Amazon ECR
  7. 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.

    Fasi successive dopo l'aggiunta di un repository privato di Amazon ECR

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.

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

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

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

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

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

  2. 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} --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 IAM di Amazon ECR image puller.

    • RoleActivationState— Lo stato di attivazione del ruolo IAM di 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 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} --region us-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} --region us-east-1
  3. 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.

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

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

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

  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 IamRolePrincipalArncon Amazon ECR image puller IAM role principal ARN 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 file ecr-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 --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 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.

  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 JSON di istruzione di policy
  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 file JSON di istruzione di policy modificata
  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 IamRolePrincipalArncon 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:

    Esempio di file JSON di istruzione di policy completa
  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 desideri aggiungere la policy.

    • path/to/: il percorso del file ecr-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 --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 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 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