Bloccare un'immagine del contenitore in un'istanza di Registro Azure Container
In un registro Azure Container è possibile bloccare una versione dell'immagine o un repository in modo che non possa essere eliminata o aggiornata. Per bloccare un'immagine o un repository, aggiornarne gli attributi usando il comando dell'interfaccia della riga di comando di Azure az acr repository update.
Questo articolo richiede l'esecuzione dell'interfaccia della riga di comando di Azure in Azure Cloud Shell o localmente (si consiglia la versione 2.0.55 o una versione successiva). Eseguire az --version
per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Importante
Questo articolo non si applica al blocco di un intero registro, ad esempio usando Blocchi > Impostazioni nel portale di Azure o comandi az lock
nell'interfaccia della riga di comando di Azure. Il blocco di una risorsa del Registro di sistema non impedisce di creare, aggiornare o eliminare dati nei repository. Il blocco di un Registro di sistema influisce solo sulle operazioni di gestione, ad esempio l'aggiunta o l'eliminazione di repliche o l'eliminazione del Registro di sistema stesso. Per altre informazioni sono disponibili in Bloccare le risorse per impedire modifiche impreviste.
Scenari
Per impostazione predefinita, un'immagine contrassegnata in Registro Azure Container è modificabile, quindi con le autorizzazioni appropriate è possibile aggiornare ed eseguire ripetutamente il push di un'immagine con lo stesso tag in un registro. Le immagini del contenitore possono anche essere eliminate in base alle esigenze. Questo comportamento è utile quando si sviluppano immagini ed è necessario mantenere una dimensione per il registro.
Tuttavia, quando si distribuisce un'immagine del contenitore nell'ambiente di produzione, potrebbe essere necessaria un'immagine del contenitore non modificabile. Un'immagine non modificabile è una che non è possibile eliminare o sovrascrivere accidentalmente.
Vedere Suggerimenti per l'assegnazione di tag e il controllo delle versioni delle immagini del contenitore per le strategie per l'assegnazione di tag e versioni delle immagini nel registro.
Usare il comando az acr repository update per impostare gli attributi del repository in modo che sia possibile:
Bloccare una versione dell'immagine o un intero repository
Proteggere una versione dell'immagine o un repository dall'eliminazione, ma consentire gli aggiornamenti
Impedire operazioni di lettura (pull) in una versione dell'immagine o in un intero repository
Per esempi, vedere le sezioni seguenti.
Bloccare un'immagine o un repository
Visualizzare gli attributi correnti del repository
Per visualizzare gli attributi correnti di un repository, eseguire il comando az acr repository showseguente:
az acr repository show \
--name myregistry --repository myrepo \
--output jsonc
Mostra gli attributi dell'immagine corrente
Per visualizzare gli attributi correnti di un tag, eseguire il comando az acr repository show seguente:
az acr repository show \
--name myregistry --image myrepo:tag \
--output jsonc
Bloccare un'immagine in base al tag
Per bloccare l'immagine myrepo:tag in myregistry, eseguire il comando az acr repository update seguente:
az acr repository update \
--name myregistry --image myrepo:tag \
--write-enabled false
Bloccare un'immagine in base al digest del manifesto
Per bloccare un'immagine myrepo identificata dal digest del manifesto (hash SHA-256, rappresentato come sha256:...
), eseguire il comando seguente. Per trovare il digest del manifesto associato a uno o più tag di immagine, eseguire il comando az acr manifest list-metadata.
az acr repository update \
--name myregistry --image myrepo@sha256:123456abcdefg \
--write-enabled false
Bloccare un repository
Per bloccare il repository myrepo e tutte le immagini in esso contenute, eseguire il comando seguente:
az acr repository update \
--name myregistry --repository myrepo \
--write-enabled false
Elencare gli attributi correnti del repository
Per aggiornare gli attributi del repository per indicare l'elenco di blocchi delle immagini, eseguire il comando az acr repository update.
az acr repository update \
--name myregistry --repository myrepo \
--list-enabled false
Visualizzare gli attributi dell'immagine nel blocco immagine
Per eseguire una query sui tag in un blocco immagine con --list-enabled false
abilitato nell'attributo, eseguire il comando az acr repository show.
az acr repository show-manifests \
--name myregistry --repository myrepo \
--query "[?listEnabled==null].tags"
--output table
Controllare gli attributi dell'immagine per il tag e il manifesto corrispondente.
Nota
- Gli attributi modificabili dei tag e del manifesto vengono gestiti separatamente. Ovvero, l'impostazione dell'attributo
deleteEnabled=false
per il tag non imposta lo stesso per il manifesto corrispondente.
- Eseguire una query sugli attributi usando lo script seguente:
registry="myregistry"
repo="myrepo"
tag="mytag"
az login
az acr repository show -n $registry --repository $repo
az acr manifest show-metadata -r $registry -n "$repo:$tag"
digest=$(az acr manifest show-metadata -r $registry -n "$repo:$tag" --query digest -o tsv)
az acr manifest show-metadata -r $registry -n "$repo@$digest"
Nota
Se gli attributi dell'immagine sono impostati con writeEnabled=false
o deleteEnabled=false
, bloccherà l'eliminazione dell'immagine.
Proteggere un'immagine o un repository dall'eliminazione
Proteggere un'immagine dall'eliminazione
Per consentire l'aggiornamento dell'immagine myrepo:tag ma non eliminata, eseguire il comando seguente:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled false --write-enabled true
Proteggere un repository dall'eliminazione
Il comando seguente imposta il repository myrepo in modo che non possa essere eliminato. È comunque possibile aggiornare o eliminare singole immagini.
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled false --write-enabled true
Impedire operazioni di lettura su un'immagine o un repository
Per impedire operazioni di lettura (pull) nell'immagine myrepo:tag, eseguire il comando seguente:
az acr repository update \
--name myregistry --image myrepo:tag \
--read-enabled false
Per impedire operazioni di lettura su tutte le immagini nel repository myrepo, eseguire il comando seguente:
az acr repository update \
--name myregistry --repository myrepo \
--read-enabled false
Sbloccare un'immagine o un repository
Per ripristinare il comportamento predefinito dell'immagine myrepo:tag in modo che possa essere eliminato e aggiornato, eseguire il comando seguente:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled true --write-enabled true
Per ripristinare il comportamento predefinito del repository myrepo, abilitare l'eliminazione e l'aggiornamento di singole immagini, eseguire il comando seguente:
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled true --write-enabled true
Tuttavia, se è presente un blocco nel manifesto, è necessario eseguire un comando aggiuntivo per sbloccare il manifesto.
az acr repository update \
--name myregistry --image $repo@$digest \
--delete-enabled true --write-enabled true
Passaggi successivi
In questo articolo si è appreso come usare il comando az acr repository update per impedire l'eliminazione o l'aggiornamento delle versioni delle immagini in un repository. Per impostare attributi aggiuntivi, vedere il riferimento al comando az acr repository update.
Per visualizzare gli attributi impostati per una versione dell'immagine o un repository, usare il comando az acr repository show.
Per informazioni dettagliate sulle operazioni di eliminazione, vedere Eliminare immagini del contenitore in Registro Azure Container.