Azure Container Registry è un servizio di gestione di container di Microsoft Azure che permette agli utenti di archiviare e gestire immagini di container privati e di altri tipi di artefatti correlati. Sebbene possiamo utilizzare facilmente le credenziali amministrative, è sconsigliato utilizzare l'accesso predefinito come amministratore per ACR. L'utilizzo di credenziali amministrative fornisce un livello di accesso eccessivamente ampio, che può portare a rischi di sicurezza significativi, come l'esposizione accidentale di credenziali o l'accesso non autorizzato. Inoltre, la pratica di utilizzare account amministrativi per operazioni quotidiane contraddice i principi di minimo privilegio e sicurezza di best practice.
Uno dei principali vantaggi di ACR è la sua integrazione nativa con Azure e i servizi correlati, garantendo una gestione sicura e scalabile delle immagini dei container. Possiamo quindi provvedere a creare un service principal dedicato allo scopo, per esempio per scaricare le immagini e circoscrivere i permessi.
Prima di tutto dobbiamo procedere alla configurazione del service principal accedendo, sempre dal portale, alla sezione Entra ID dove possiamo creare una nuova applicazione.

Indichiamo un nome e manteniamo le impostazioni predefinite, poiché non abbiamo bisogno di autenticare gli utenti con questa app. Accediamo quindi all?app creata e nello specifico nell?area Certificates & secrets e creiamo un secret.

Diamogli una scadenza che non può eccedere i 24 mesi. A questo punto segniamoci il valore del secret che abbiamo creato, rappresentante la password di login di Docker. Torniamo sull?overview dell?app e copiamoci l?application/client id che rappresenta, invece, lo username. Abbiamo quindi le credenziali per effettuare il login, perciò non ci resta che autorizzare l?app tramite IAM. Andiamo sull?istanza ACR desiderata, accediamo alla sezione Access Control (IAM) e premiamo Add role assignment.

Cerchiamo Acr Pull (o altro permesso desiderato) e procediamo alla selezione del membro cercando il nome dell?app e confermiamo il tutto.

A questo punto possiamo utilizzare docker con l?istruzione login o qualsiasi altro strumento compatibile per scaricare l?immagine effettuando l?accesso con il client id e secret creato in precedenza.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Collegare applicazioni server e client con .NET Aspire
Gestione file Javascript in Blazor con .NET 9
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Utilizzare l nesting nativo dei CSS
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Utilizzare Locust con Azure Load Testing
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Migliorare la sicurezza dei prompt con Azure AI Studio
Cancellare una run di un workflow di GitHub
Gestire gli accessi con Token su Azure Container Registry