Ruoli e autorizzazioni di Registro Azure Container

Il servizio Registro Azure Container supporta un set di ruoli predefiniti di Azure che forniscono diversi livelli di autorizzazioni a un Registro Azure Container. Usare il controllo degli accessi in base al ruolo di Azure per assegnare autorizzazioni specifiche agli utenti, alle entità servizio o ad altre identità che devono interagire con un Registro di sistema, ad esempio per eseguire il pull o il push delle immagini del contenitore. È anche possibile definire ruoli personalizzati con autorizzazioni con granularità fine a un Registro di sistema per operazioni diverse.

Ruolo/autorizzazione Accedere ad Azure Resource Manager Creare/eliminaliminare registro di sistema Immagine di push Eseguire il pull dell'immagine Eliminare i dati di immagini Modificare i criteri Firma delle immagini
Proprietario X X X X X X
Collaboratore X X X X X X
Reader X X
AcrPush X X
AcrPull X
AcrDelete X
AcrImageSigner X

Assegnare ruoli

Vedere Passaggi per aggiungere un'assegnazione di ruolo per i passaggi di alto livello per aggiungere un'assegnazione di ruolo a un utente, un gruppo, un'entità servizio o un'identità gestita esistente. È possibile usare portale di Azure, interfaccia della riga di comando di Azure, Azure PowerShell o altri strumenti di Azure.

Quando si crea un'entità servizio, si configura anche l'accesso e le autorizzazioni per le risorse di Azure, ad esempio un registro contenitori. Per uno script di esempio usando l'interfaccia della riga di comando di Azure, vedere autenticazione Registro Azure Container con entità servizio.

Distinguere gli utenti e i servizi

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. I set di autorizzazioni seguenti rappresentano un set di funzionalità che può essere usato da persone e servizi headless.

Soluzioni CI/CD

Quando si automatizzano i comandi docker build dalle soluzioni CI/CD, sono necessarie le funzionalità docker push. Per questi scenari di servizio headless, è consigliabile assegnare il ruolo AcrPush . 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.

Nodi dell'host del contenitore

Allo stesso modo, i nodi che eseguono i contenitori necessitano il ruolo AcrPull, ma richiedono funzionalità Lettore.

Estensione Visual Studio Code Docker

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. In questo caso, fornire agli utenti l'accesso al ruolo Lettore oppure Collaboratore. Questi ruoli consentono docker pull, docker push, az acr list, az acr build e altre funzionalità.

Accedere ad Azure 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. Ad esempio, per ottenere un elenco dei registri usando il comando az acr list, è necessario questo set di autorizzazioni.

Creare ed eliminare un registro di sistema

La possibilità di creare ed eliminare i registri contenitori di Azure.

Immagine di push

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. Richiede l'autenticazione con il registro di sistema usando l'identità autorizzata.

Eseguire il pull dell'immagine

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. Richiede l'autenticazione con il registro di sistema usando l'identità autorizzata.

Eliminare i dati di immagini

Possibilità di eliminare immagini contenitore o eliminare altri artefatti supportati , ad esempio grafici Helm, da un Registro di sistema.

Modificare i criteri

La possibilità di configurare i criteri in un registro di sistema. I criteri includono l'eliminazione di immagini, l'abilitazione della quarantena e la firma di immagini.

Firma di immagini

La possibilità di firmare immagini, in genere assegnate a un processo automatizzato, che utilizza un'entità di servizio. Questa autorizzazione viene in genere combinata con un'immagine push per consentire l'inserimento di un'immagine attendibile a un registro di sistema. Per informazioni dettagliate, vedere Attendibilità del contenuto in Registro Azure Container.

Ruoli personalizzati

Come per altre risorse di Azure, è possibile creare ruoli personalizzati con autorizzazioni con granularità fine per Registro Azure Container. Assegnare quindi i ruoli personalizzati agli utenti, alle entità servizio o ad altre identità che devono interagire con un Registro di sistema.

Per determinare quali autorizzazioni applicare a un ruolo personalizzato, vedere l'elenco delle azioni Microsoft.ContainerRegistry, esaminare le azioni consentite dei ruoli del Registro Azure Container predefiniti o eseguire il comando seguente:

az provider operation show --namespace Microsoft.ContainerRegistry

Per definire un ruolo personalizzato, vedere Passaggi per creare un ruolo personalizzato.

Nota

Nei tenant configurati con azure Resource Manager collegamento privato, Registro Azure Container supporta azioni con caratteri jolly, ad esempio Microsoft.ContainerRegistry/*/read o Microsoft.ContainerRegistry/registries/*/write in ruoli personalizzati, concedendole l'accesso a tutte le azioni corrispondenti. In un tenant senza un collegamento privato arm specificare tutte le azioni del Registro di sistema necessarie singolarmente in un ruolo personalizzato.

Esempio: Ruolo personalizzato per importare immagini

Ad esempio, il codice JSON seguente definisce le azioni minime per un ruolo personalizzato che consente l'importazione di immagini in un Registro di sistema.

{
   "assignableScopes": [
     "/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
   ],
   "description": "Can import images to registry",
   "Name": "AcrImport",
   "permissions": [
     {
       "actions": [
         "Microsoft.ContainerRegistry/registries/push/write",
         "Microsoft.ContainerRegistry/registries/pull/read",
         "Microsoft.ContainerRegistry/registries/read",
         "Microsoft.ContainerRegistry/registries/importImage/action"
       ],
       "dataActions": [],
       "notActions": [],
       "notDataActions": []
     }
   ],
   "roleType": "CustomRole"
 }

Per creare o aggiornare un ruolo personalizzato usando la descrizione JSON, usare l'interfaccia della riga di comando di Azure, il modello di Azure Resource Manager, Azure PowerShell o altri strumenti di Azure. Aggiungere o rimuovere assegnazioni di ruolo per un ruolo personalizzato nello stesso modo in cui si gestiscono le assegnazioni di ruolo per i ruoli predefiniti di Azure.

Passaggi successivi