Endpoint VPC con interfaccia Amazon ECR ()AWS PrivateLink - Amazon ECR

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

Endpoint VPC con interfaccia Amazon ECR ()AWS PrivateLink

Puoi migliorare la posizione di sicurezza del VPC configurando Amazon ECR in modo che utilizzi un endpoint VPC di interfaccia. Gli endpoint VPC sono basati su una tecnologia che consente di AWS PrivateLink accedere in modo privato alle API di Amazon ECR tramite indirizzi IP privati. AWS PrivateLink limita tutto il traffico di rete tra il tuo VPC e Amazon ECR alla rete Amazon. Non è richiesto un gateway Internet, un dispositivo NAT o un gateway privato virtuale.

Per ulteriori informazioni sugli AWS PrivateLink endpoint VPC, consulta la sezione Endpoints VPC nella Amazon VPC User Guide.

Considerazioni sugli endpoint VPC di Amazon ECR

Prima di configurare gli endpoint VPC per Amazon ECR, tenere presente le considerazioni riportate di seguito:

  • Per consentire alle tue attività Amazon ECS con hosting su istanze Amazon EC2 di estrarre le immagini private da Amazon ECR, assicurati di creare anche gli endpoint VPC per Amazon ECS. Per ulteriori informazioni, consulta Interface VPC Endpoints (AWS PrivateLink) nella Amazon Elastic Container Service Developer Guide.

    Importante

    Le attività Amazon ECS con hosting su Fargate non richiedono gli endpoint VPC dell'interfaccia Amazon ECS.

  • Per sfruttare questa funzione, le attività Amazon ECS presenti su Fargate che utilizzano la versione della piattaforma Linux 1.3.0 o versioni precedenti richiedono solo l'endpoint VPC di Amazon ECR di com.amazonaws.regione.ecr.dkr e l'endpoint del gateway Amazon S3.

  • Per sfruttare questa funzione, le attività Amazon ECS presenti su Fargate che utilizzano la versione della piattaforma Linux 1.4.0 o versioni successive richiedono sia gli endpoint VPC di Amazon ECR com.amazonaws.regione.ecr.dkr e com.amazonaws.regione.ecr.api che l'endpoint gateway Amazon S3.

  • Per sfruttare questa funzione, le attività Amazon ECS presenti su Fargate che utilizzano la versione della piattaforma Windows 1.0.0 o versioni successive richiedono sia gli endpoint VPC di Amazon ECR com.amazonaws.regione.ecr.dkr e com.amazonaws.regione.ecr.api che l'endpoint gateway Amazon S3.

  • Le attività Amazon ECS con hosting su Fargate che estraggono le immagini del container da Amazon ECR possono limitare l'accesso al VPC specifico utilizzato dalle attività e all'endpoint VPC utilizzato dal servizio aggiungendo le chiavi di condizione al ruolo IAM per l'attività. Per ulteriori informazioni, consulta Autorizzazioni IAM facoltative per attività Fargate che estraggono le immagini Amazon ECR su endpoint di interfaccia nella Guida per lo sviluppatore di Amazon Elastic Container.

  • Le attività di Amazon ECS ospitate su Fargate che estraggono immagini di container da Amazon ECR e che utilizzano anche awslogs il driver di log per inviare informazioni di log a Logs richiedono l' CloudWatch CloudWatch endpoint VPC Logs. Per ulteriori informazioni, consulta Crea l'endpoint Logs CloudWatch .

  • Il gruppo di sicurezza collegato all'endpoint VPC deve consentire le connessioni in entrata sulla porta 443 dalla sottorete privata del VPC.

  • Gli endpoint VPC attualmente non supportano le richieste inter-Regionali. Assicurati di creare gli endpoint VPC nella stessa regione in cui prevedi di inviare le chiamate API ad Amazon ECR.

  • Gli endpoint VPC al momento non supportano i repository pubblici di Amazon ECR. Prendi in considerazione l'utilizzo di una regola pull through della cache per ospitare l'immagine pubblica in un repository privato nella stessa regione dell'endpoint VPC. Per ulteriori informazioni, consulta Sincronizzazione di un registro upstream con un registro privato Amazon ECR.

  • Gli endpoint VPC supportano solo il DNS AWS fornito tramite Amazon Route 53. Se si desidera utilizzare il proprio DNS, è possibile usare l'inoltro condizionale sul DNS. Per ulteriori informazioni, consulta Set opzioni DHCP nella Guida per l'utente di Amazon VPC.

  • Se i container dispongono di connessioni esistenti ad Amazon S3, le relative connessioni potrebbero essere interrotte per un breve periodo quando aggiungi l'endpoint gateway Amazon S3. Se si desidera evitare l'interruzione, creare un nuovo VPC che usi l'endpoint del gateway Amazon S3, quindi migrare il cluster Amazon ECS e i relativi container in un nuovo VPC.

  • Quando un'immagine viene estratta utilizzando una regola di cache pull-through per la prima volta, se hai configurato Amazon ECR per l'utilizzo di un endpoint VPC di interfaccia tramite AWS PrivateLink , allora dovrai creare una sottorete pubblica nello stesso VPC, con un gateway NAT, quindi instradare tutto il traffico in uscita verso Internet dalla sottorete privata al gateway NAT per far funzionare il pull. Le operazioni successive di estrazione dell'immagine non richiedono questo passaggio. Per ulteriori informazioni, consulta Scenario: accesso a Internet da una sottorete privata nella Guida per l'utente di Amazon Virtual Private Cloud.

Considerazioni per le immagini Windows

Le immagini basate sul sistema operativo Windows includono artefatti con limitazioni di licenza che impediscono la distribuzione. Per impostazione predefinita, quando si inviano immagini Windows a un repository Amazon ECR, i livelli che includono questi artefatti non vengono inviati in quanto vengono considerati livelli estranei. Quando gli artefatti vengono forniti da Microsoft, i livelli estranei vengono recuperati dall'infrastruttura di Microsoft Azure. Per questo motivo, per consentire ai container di estrarre questi livelli estranei da Azure sono necessari passaggi aggiuntivi oltre alla creazione degli endpoint VPC.

È possibile sovrascrivere questo comportamento quando si inviano le immagini Windows ad Amazon ECR utilizzando il flag --allow-nondistributable-artifacts nel daemon Docker. Quando è abilitato, questo flag invia i livelli concessi in licenza ad Amazon ECR, consentendo di estrarre queste immagini da Amazon ECR tramite l'endpoint VPC senza richiedere un ulteriore accesso ad Azure.

Importante

L'utilizzo del flag --allow-nondistributable-artifacts non preclude l'obbligo dell'utente di rispettare i termini della licenza dell'immagine di base del container Windows; non è possibile pubblicare contenuti di Windows per la ridistribuzione pubblica o di terze parti. L'uso all'interno del proprio ambiente è consentito.

Per abilitare l'uso di questo flag per l'installazione Docker, è necessario modificare il file di configurazione del daemon Docker che, a seconda dell'installazione Docker, può in genere essere configurato nel menu delle impostazioni o delle preferenze nella sezione Docker Engine o modificando direttamente il file C:\ProgramData\docker\config\daemon.json.

Di seguito è illustrato un esempio della configurazione necessaria: Sostituisci il valore con l'URI del repository a cui stai inviando le immagini.

{ "allow-nondistributable-artifacts": [ "111122223333.dkr.ecr.us-west-2.amazonaws.com" ] }

Dopo aver modificato il file di configurazione del daemon Docker, è necessario riavviare il daemon Docker prima di tentare di inviare l'immagine. Conferma che l'invio ha funzionato verificando che il livello base sia stato inviato nel repository.

Nota

I livelli base per le immagini Windows sono grandi. Le dimensioni del livello si tradurranno in tempi più lunghi per l'invio e costi di archiviazione aggiuntivi in Amazon ECR per queste immagini. Per questi motivi, si consiglia di utilizzare questa opzione solo quando è strettamente necessaria per ridurre i tempi di costruzione e i costi di storage in corso. Ad esempio, l'immagine mcr.microsoft.com/windows/servercore è di circa 1,7 GiB di dimensioni quando viene compressa in Amazon ECR.

Creare gli endpoint VPC per Amazon ECR

Per creare gli endpoint VPC per Amazon ECR Service, utilizza la Creazione di un endpoint di interfaccia nella Amazon VPC User Guide.

Le attività Amazon ECS con hosting sulle istanze Amazon EC2 richiedono sia gli endpoint Amazon ECR che l'endpoint gateway Amazon S3.

Le attività Amazon ECS con hosting su Fargate che utilizzano la versione della piattaforma 1.4.0 o versioni successive richiedono sia gli endpoint VPC Amazon ECR sia gli endpoint gateway Amazon S3.

Le attività Amazon ECS con hosting su Fargate che utilizzano la versione della piattaforma 1.3.0 o versioni precedenti richiedono solo l'endpoint VPC di Amazon ECR di com.amazonaws.regione.ecr.dkr e gli endpoint del gateway Amazon S3.

Nota

L'ordine in cui vengono creati gli endpoint non è rilevante.

com.amazonaws.region.ecr.dkr

Questo endpoint viene utilizzato per le API del registro Docker. I comandi del client Docker come push e pull utilizzano questo endpoint.

Quando si crea questo endpoint, è necessario abilitare un nome host DNS privato. Per eseguire questa operazione, accertarsi che l'opzione Enable Private DNS Name (Abilita nome DNS privato) sia selezionata nella console Amazon VPC quando si crea l'endpoint VPC.

com.amazonaws.region.ecr.api
Nota

La regione specificata rappresenta l'identificatore della regione per una AWS regione supportata da Amazon ECR, ad esempio us-east-2 per la regione Stati Uniti orientali (Ohio).

Questo endpoint viene utilizzato per le chiamate all'API Amazon ECR. Operazioni API come DescribeImages e CreateRepository vanno su questo endpoint.

Quando viene creato questo endpoint, è possibile abilitare un nome host DNS privato. Abilita questo nome host selezionando Abilita nome DNS privato nella console VPC quando crei l'endpoint VPC. Se abiliti un nome host DNS privato per l'endpoint VPC, aggiorna l'SDK o AWS CLI alla versione più recente in modo che non sia necessario specificare un URL dell'endpoint quando si utilizza l'SDK o non sia necessario. AWS CLI

Se abiliti un nome host DNS privato e utilizzi un SDK o una AWS CLI versione rilasciata prima del 24 gennaio 2019, devi utilizzare il parametro per specificare gli endpoint dell'interfaccia. --endpoint-url Nell'esempio seguente viene illustrato il formato per l'URL dell'endpoint.

aws ecr create-repository --repository-name name --endpoint-url https://api.ecr.region.amazonaws.com

Se non si abilita un nome host DNS privato per l'endpoint VPC, è necessario utilizzare il parametro --endpoint-url specificando l'ID dell'endpoint VPC per l'endpoint di interfaccia. Nell'esempio seguente viene illustrato il formato per l'URL dell'endpoint.

aws ecr create-repository --repository-name name --endpoint-url https://VPC_endpoint_ID.api.ecr.region.vpce.amazonaws.com

Creare l'endpoint gateway Amazon S3

Affinché le attività Amazon ECS possano estrarre immagini private da Amazon ECR, è necessario creare un endpoint gateway per Amazon S3. L'endpoint gateway è obbligatorio perché Amazon ECR utilizza Amazon S3 per archiviare i livelli di immagine. Quando i container scaricano immagini da Amazon ECR, devono accedere a Amazon ECR per ottenere il manifest dell'immagine e quindi ad Amazon S3 per scaricare i livelli effettivi dell'immagine. Di seguito è riportato l'Amazon Resource Name (ARN) del bucket Amazon S3 che contiene i livelli per ogni immagine Docker.

arn:aws:s3:::prod-region-starport-layer-bucket/*

Utilizzare la procedura Creazione di un endpoint gateway nella Amazon VPC User Guide per creare il seguente endpoint del gateway Amazon S3 per Amazon ECR. Quando crei l'endpoint, assicurati di selezionare le tabelle di routing per il VPC.

com.amazonaws.region.s3

L'endpoint del gateway Amazon S3 usa un documento di policy IAM per limitare l'accesso al servizio. La policy Full Access (Accesso completo) può essere utilizzata poiché qualsiasi limitazione relativa ai ruoli IAM dell'attività o ad altre policy utente IAM viene comunque applicata. Se si desidera limitare l'accesso del bucket Amazon S3 alle autorizzazioni minime richieste necessarie per utilizzare Amazon ECR, consulta Autorizzazioni minime del bucket Amazon S3 per Amazon ECR.

Autorizzazioni minime del bucket Amazon S3 per Amazon ECR

L'endpoint del gateway Amazon S3 usa un documento di policy IAM per limitare l'accesso al servizio. Per consentire solo le autorizzazioni minime del bucket Amazon S3 per Amazon ECR, limita l'accesso al bucket Amazon S3 utilizzato da Amazon ECR quando crei il documento di policy IAM per l'endpoint.

La tabella seguente descrive le autorizzazioni della policy del bucket Amazon S3 richieste da Amazon ECR.

Autorizzazione Descrizione

arn:aws:s3:::prod-region-starport-layer-bucket/*

Fornisce l'accesso al bucket Amazon S3 contenente i livelli per ogni immagine Docker. Rappresenta l'identificatore di regione per una regione AWS supportata da Amazon ECR, ad esempio us-east-2 per la regione Stati Uniti orientali (Ohio).

Esempio

L'esempio seguente spiega come fornire l'accesso ai bucket Amazon S3 richiesti per le operazioni Amazon ECR.

{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"] } ] }

Crea l'endpoint Logs CloudWatch

Le attività di Amazon ECS che utilizzano il tipo di avvio Fargate che utilizzano un VPC senza un gateway Internet e che utilizzano anche il driver di registro per inviare informazioni di registro CloudWatch a Logs richiedono awslogs la creazione del file com.amazonaws. endpoint VPC dell'interfaccia region .logs per i registri. CloudWatch Per ulteriori informazioni, consulta Using CloudWatch Logs with interface VPC endpoint nella CloudWatch Amazon Logs User Guide.

Creazione di una policy di endpoint per l'endpoint VPC di Amazon ECR

Una policy endpoint VPC è una policy della risorsa IAM che viene collegata a un endpoint durante la creazione o la modifica dell'endpoint. Se non alleghi una policy quando crei un endpoint, ti AWS allega una policy predefinita che consente l'accesso completo al servizio. Una policy endpoint non esclude né sostituisce policy dell'utente o policy specifiche del servizio. Si tratta di una policy separata per controllare l'accesso dall'endpoint al servizio specificato. Le policy endpoint devono essere scritte in formato JSON. Per ulteriori informazioni, consultare Controllo degli accessi ai servizi con endpoint VPC nella Guida per l'utente di Amazon VPC.

Ti consigliamo di creare un'unica policy di risorse IAM e di collegarla a entrambi gli endpoint VPC di Amazon ECR.

Di seguito è riportato un esempio di una policy endpoint per l'API di Amazon ECR. Questa policy consente a un ruolo IAM specifico di estrarre immagini da Amazon ECR.

{ "Statement": [{ "Sid": "AllowPull", "Principal": { "AWS": "arn:aws:iam::1234567890:role/role_name" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Effect": "Allow", "Resource": "*" }] }

La seguente policy endpoint di esempio impedisce l'eliminazione di un repository specificato.

{ "Statement": [{ "Sid": "AllowAll", "Principal": "*", "Action": "*", "Effect": "Allow", "Resource": "*" }, { "Sid": "PreventDelete", "Principal": "*", "Action": "ecr:DeleteRepository", "Effect": "Deny", "Resource": "arn:aws:ecr:region:1234567890:repository/repository_name" } ] }

L'esempio di policy endpoint seguente combina i due esempi precedenti in un'unica policy.

{ "Statement": [{ "Sid": "AllowAll", "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" }, { "Sid": "PreventDelete", "Effect": "Deny", "Principal": "*", "Action": "ecr:DeleteRepository", "Resource": "arn:aws:ecr:region:1234567890:repository/repository_name" }, { "Sid": "AllowPull", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::1234567890:role/role_name" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ] }
Per modificare la policy endpoint VPC per Amazon ECR
  1. Accedere alla console Amazon VPC all'indirizzo https://console.aws.amazon.com/vpc/.

  2. Nel pannello di navigazione, seleziona Endpoints (Endpoint).

  3. Se non hai già creato gli endpoint VPC per Amazon ECR, consulta Creare gli endpoint VPC per Amazon ECR.

  4. Selezionare l'endpoint VPC di Amazon ECR a cui aggiungere una policy e scegliere la scheda Policy (Policy) nella metà inferiore della schermata.

  5. Scegli Edit Policy (Modifica policy) e apporta le modifiche alla policy.

  6. Selezionare Save (Salva) per salvare la policy.

Sottoreti condivise

Non puoi creare, descrivere, modificare o eliminare gli endpoint VPC nelle sottoreti condivise con te. Tuttavia, puoi utilizzare gli endpoint VPC in sottoreti condivise con te.