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
" } } } ] }