Ruoli e autorizzazioni di Registro Azure ContainerAzure Container Registry roles and permissions

Il servizio Azure Container Registry supporta un set di ruoli di Azure predefiniti che forniscono diversi livelli di autorizzazioni per un registro contenitori di Azure.The Azure Container Registry service supports a set of built-in Azure roles that provide different levels of permissions to an Azure container registry. Usare il controllo degli accessi in base al ruolo (RBAC) di Azure per assegnare autorizzazioni specifiche a utenti, entità servizio o altre identità che devono interagire con un registro.Use Azure role-based access control (RBAC) to assign specific permissions to users, service principals, or other identities that need to interact with a registry.

Ruolo/autorizzazioneRole/Permission Accedere ad Azure Resource ManagerAccess Resource Manager Creare/eliminare registro di sistemaCreate/delete registry Eseguire il push dell'immaginePush image Eseguire il pull dell'immaginePull image Elimina dati immagineDelete image data Modificare i criteriChange policies Firma delle immaginiSign images
ProprietarioOwner XX XX XX XX XX XX
CollaboratoreContributor XX XX XX XX XX XX
ReaderReader XX XX
AcrPushAcrPush XX XX
AcrPullAcrPull XX
AcrDeleteAcrDelete XX
AcrImageSignerAcrImageSigner XX

Distinguere gli utenti e i serviziDifferentiate users and services

Ogni volta che vengono applicate le autorizzazioni, una procedura consigliata è quella di fornire il set più limitato di autorizzazioni a una persona, o a un servizio, per svolgere un compito.Any time permissions are applied, a best practice is to provide the most limited set of permissions for a person, or service, to accomplish a task. I set di autorizzazioni seguenti rappresentano un set di funzionalità che può essere usato da persone e servizi headless.The following permission sets represent a set of capabilities that may be used by humans and headless services.

Soluzioni CI/CDCI/CD solutions

Quando si automatizzano i comandi docker build dalle soluzioni CI/CD, sono necessarie le funzionalità docker push.When automating docker build commands from CI/CD solutions, you need docker push capabilities. Per questi scenari di servizio headless, è consigliabile assegnare il ruolo AcrPush.For these headless service scenarios, we suggest assigning the AcrPush role. Questo ruolo, a differenza del ruolo più ampio Collaboratore, impedisce all'account di eseguire altre operazioni del registro di sistema o l'accesso ad Azure Resource Manager.This role, unlike the broader Contributor role, prevents the account from performing other registry operations or accessing Azure Resource Manager.

Nodi dell'host del contenitoreContainer host nodes

Allo stesso modo, i nodi che eseguono i contenitori necessitano il ruolo AcrPull, ma richiedono funzionalità Lettore.Likewise, nodes running your containers need the AcrPull role, but shouldn't require Reader capabilities.

Estensione Visual Studio Code DockerVisual Studio Code Docker extension

Per gli strumenti come estensione Docker di Visual Studio Code, è richiesto l'accesso aggiuntivo al provider di risorse per elencare i registri contenitori Azure disponibili.For tools like the Visual Studio Code Docker extension, additional resource provider access is required to list the available Azure container registries. In questo caso, fornire agli utenti l'accesso al ruolo Lettore oppure Collaboratore.In this case, provide your users access to the Reader or Contributor role. Questi ruoli consentono docker pull, docker push, az acr list, az acr build e altre funzionalità.These roles allow docker pull, docker push, az acr list, az acr build, and other capabilities.

Accedere ad Azure Resource ManagerAccess Resource Manager

L'accesso ad Azure Resource Manager è necessario per il portale di Azure e per la gestione del registro di sistema con l'interfaccia della riga di comando di Azure.Azure Resource Manager access is required for the Azure portal and registry management with the Azure CLI. Ad esempio, per ottenere un elenco dei registri usando il comando az acr list, è necessario questo set di autorizzazioni.For example, to get a list of registries by using the az acr list command, you need this permission set.

Creare ed eliminare un registro di sistemaCreate and delete registry

La possibilità di creare ed eliminare i registri contenitori di Azure.The ability to create and delete Azure container registries.

Immagine di pushPush image

La possibilità di docker push un'immagine o di eseguire il push su un altro artefatto supportato, ad esempio un grafico Helm, in un registro di sistema.The ability to docker push an image, or push another supported artifact such as a Helm chart, to a registry. Richiede l'autenticazione con il registro di sistema usando l'identità autorizzata.Requires authentication with the registry using the authorized identity.

Eseguire il pull dell'immaginePull image

La possibilità di docker pull un'immagine non in quarantena o di eseguire il pull su un altro artefatto supportato, ad esempio un grafico Helm, in un registro di sistema.The ability to docker pull a non-quarantined image, or pull another supported artifact such as a Helm chart, from a registry. Richiede l'autenticazione con il registro di sistema usando l'identità autorizzata.Requires authentication with the registry using the authorized identity.

Eliminare i dati di immaginiDelete image data

La possibilità di eliminare immagini del contenitoreo di eliminare altri elementi supportati , ad esempio i grafici Helm, da un registro di sistema.The ability to delete container images, or delete other supported artifacts such as Helm charts, from a registry.

Modificare i criteriChange policies

La possibilità di configurare i criteri in un registro di sistema.The ability to configure policies on a registry. I criteri includono l'eliminazione di immagini, l'abilitazione della quarantena e la firma di immagini.Policies include image purging, enabling quarantine, and image signing.

Firma di immaginiSign images

La possibilità di firmare immagini, in genere assegnate a un processo automatizzato, che utilizza un'entità di servizio.The ability to sign images, usually assigned to an automated process, which would use a service principal. Questa autorizzazione viene in genere combinata con un'immagine push per consentire l'inserimento di un'immagine attendibile a un registro di sistema.This permission is typically combined with push image to allow pushing a trusted image to a registry. Per informazioni dettagliate, vedere Attendibilità dei contenuti in Registro Azure Container.For details, see Content trust in Azure Container Registry.

Ruoli personalizzatiCustom roles

Come per le altre risorse di Azure, è possibile creare ruoli personalizzati con le autorizzazioni con granularità fine per Azure container Registry.As with other Azure resources, you can create your own custom roles with fine-grained permissions to Azure Container Registry. Assegnare quindi i ruoli personalizzati a utenti, entità servizio o altre identità che devono interagire con un registro.Then assign the custom roles to users, service principals, or other identities that need to interact with a registry.

Per determinare le autorizzazioni da applicare a un ruolo personalizzato, vedere l'elenco di azioniMicrosoft. ContainerRegistry, esaminare le azioni consentite dei ruoli predefiniti di ACRoppure eseguire il comando seguente:To determine which permissions to apply to a custom role, see the list of Microsoft.ContainerRegistry actions, review the permitted actions of the built-in ACR roles, or run the following command:

az provider operation show --namespace Microsoft.ContainerRegistry

Per definire un ruolo personalizzato, vedere passaggi per la creazione di un ruolo personalizzato.To define a custom role, see Steps to create a custom role.

Importante

In un ruolo personalizzato, Azure Container Registry attualmente non supporta i caratteri jolly, ad esempio Microsoft.ContainerRegistry/* o Microsoft.ContainerRegistry/registries/* che concedono l'accesso a tutte le azioni corrispondenti.In a custom role, Azure Container Registry doesn't currently support wildcards such as Microsoft.ContainerRegistry/* or Microsoft.ContainerRegistry/registries/* that grant access to all matching actions. Specificare un'azione obbligatoria singolarmente nel ruolo.Specify any required action individually in the role.

Passaggi successiviNext steps