Esempi di policy relative agli archivi privati in Amazon ECR - 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à.

Esempi di policy relative agli archivi privati in Amazon ECR

Importante

Gli esempi di policy di repository riportati in questa pagina sono concepiti per essere applicati ai repository privati di Amazon ECR. Non funzioneranno correttamente se utilizzati direttamente con un principale IAM, a meno che non vengano modificati per specificare il repository di Amazon ECR come risorsa. Per ulteriori informazioni sull'impostazione delle policy dei repository, consulta Impostazione di una dichiarazione sulla politica di archiviazione privata in Amazon ECR.

Le policy del repository Amazon ECR sono un sottoinsieme delle policy IAM che vengono definite e specificamente utilizzate per controllare l'accesso ai singoli repository Amazon ECR. Le policy IAM sono generalmente utilizzate per applicare le autorizzazioni per l'intero servizio Amazon ECR, ma possono anche essere utilizzate per controllare l'accesso alle risorse specifiche. Per ulteriori informazioni, consulta Policy del repository e policy IAM .

I seguenti esempi di policy dei repository mostrano le dichiarazioni di autorizzazione che puoi utilizzare per controllare l'accesso ai repository privati di Amazon ECR.

Importante

Amazon ECR richiede che gli utenti dispongano dell'autorizzazione per effettuare chiamate all'API ecr:GetAuthorizationToken tramite una policy IAM prima che possano autenticarsi in un registro ed eseguire l'invio o l'estrazione delle immagini da un repository Amazon ECR. Amazon ECR fornisce diverse policy IAM gestite per controllare l'accesso degli utenti a diversi livelli: per ulteriori informazioni consultare Esempi di policy basate su Identità di Amazon Elastic Container Registry.

Esempio: consentire uno o più utenti

La policy del repository seguente consente a uno o più utenti di eseguire il push e il pull delle immagini da e verso un repository.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPushPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/push-pull-user-1", "arn:aws:iam::account-id:user/push-pull-user-2" ] }, "Action": [ "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:GetDownloadUrlForLayer", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart" ] } ] }

Esempio: abilita un altro account

La seguente policy di repository consente a un account specifico di inviare immagini.

Importante

L'account a cui si concedono le autorizzazioni deve avere abilitata la regione in cui si sta creando la policy del repository; in caso contrario si verificherà un errore.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCrossAccountPush", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:root" }, "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:CompleteLayerUpload", "ecr:InitiateLayerUpload", "ecr:PutImage", "ecr:UploadLayerPart" ] } ] }

La policy seguente del repository consente agli utenti di eseguire il pull di immagini (pull-user-1 e pull-user-2) concedendo l’accesso completo un altro utente (admin-user).

Nota

Per politiche di repository più complicate che attualmente non sono supportate in AWS Management Console, puoi applicare la politica con il comando. set-repository-policy AWS CLI

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPull", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/pull-user-1", "arn:aws:iam::account-id:user/pull-user-2" ] }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] }, { "Sid": "AllowAll", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/admin-user" }, "Action": [ "ecr:*" ] } ] }

Esempio: vieta a tutti

La seguente policy di repository nega a tutti gli utenti in tutti gli account la possibilità di estrarre immagini.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyPull", "Effect": "Deny", "Principal": "*", "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

Esempio: limitazione dell'accesso a indirizzi IP specifici

Nell'esempio seguente vengono negate autorizzazioni a qualunque utente per eseguire qualsiasi operazione Amazon ECR quando applicata a un repository da uno specifico intervallo di indirizzi.

La condizione in questa istruzione identifica l'intervallo 54.240.143.* di indirizzi IP Internet Protocol versione 4 (IPv4) consentiti.

Il Condition blocco utilizza le NotIpAddress condizioni e la chiave aws:SourceIp condition, che è una chiave di condizione AWS-wide. Per ulteriori informazioni su queste chiavi di condizioni, consulta Chiavi di contesto delle condizioni globali AWS. I valori IPv4 aws:sourceIp utilizzano la notazione CIDR standard. Per ulteriori informazioni, consulta Operatori di condizione con indirizzo IP nella Guida per l'utente di IAM.

{ "Version": "2012-10-17", "Id": "ECRPolicyId1", "Statement": [ { "Sid": "IPAllow", "Effect": "Deny", "Principal": "*", "Action": "ecr:*", "Condition": { "NotIpAddress": { "aws:SourceIp": "54.240.143.0/24" } } } ] }

Esempio: consentire un servizio AWS

La seguente politica di repository consente AWS CodeBuild l'accesso alle azioni dell'API Amazon ECR necessarie per l'integrazione con quel servizio. Quando utilizzi l'esempio seguente, è necessario utilizzare le chiavi di condizione aws:SourceArn e aws:SourceAccount per l'ambito delle risorse che possono assumere tali autorizzazioni. Per ulteriori informazioni, consulta l'esempio di Amazon ECR CodeBuild nella Guida per l'AWS CodeBuild utente.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"CodeBuildAccess", "Effect":"Allow", "Principal":{ "Service":"codebuild.amazonaws.com" }, "Action":[ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ], "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:codebuild:region:123456789012:project/project-name" }, "StringEquals":{ "aws:SourceAccount":"123456789012" } } } ] }