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, aggiornare i relativi 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 locale (versione 2.0.55 o successiva consigliata). 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 di sistema, ad esempio usando i blocchi delle impostazioni > nell'portale di Azure o az lock i comandi nell'interfaccia della riga di comando di Azure. Il blocco di una risorsa del Registro di sistema non impedisce di creare, aggiornare o eliminare i 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. Altre informazioni in Blocca risorse per evitare modifiche impreviste.

Scenari

Per impostazione predefinita, un'immagine contrassegnata in Registro Azure Container è modificabile, quindi con autorizzazioni appropriate è possibile aggiornare ripetutamente e eseguire il push di un'immagine con lo stesso tag in un Registro di sistema. Le immagini del contenitore possono essere eliminate anche in base alle esigenze. Questo comportamento è utile quando si sviluppano immagini e devono mantenere una dimensione per il Registro di sistema.

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 Raccomandazioni per l'assegnazione di tag e il controllo delle versioni delle immagini del contenitore per le strategie per contrassegnare e modificare le immagini nel Registro di sistema.

Usare il comando az acr repository update per impostare gli attributi del repository in modo che sia possibile:

  • Bloccare una versione di un'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

Mostra gli attributi correnti del repository

Per visualizzare gli attributi correnti di un repository, eseguire il comando az acr repository show seguente:

az acr repository show \
    --name myregistry --repository myrepo \
    --output jsonc

Mostra gli attributi dell'immagine correnti

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 per 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 manifesto (hash SHA-256, rappresentato come sha256:...), eseguire il comando seguente. Per trovare il digest 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 immagine, 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 query sui tag in un blocco di immagini 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 relativo manifesto corrispondente.

Nota

  • Gli attributi modificabili di tag e manifesto vengono gestiti separatamente. Vale a dire, l'impostazione dell'attributo deleteEnabled=false per il tag non verrà impostata come stessa per il manifesto corrispondente.
  • Eseguire 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 vengono impostati con writeEnabled=false o deleteEnabled=false, blocca 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. Le singole immagini possono comunque essere aggiornate o eliminate.

az acr repository update \
    --name myregistry --repository myrepo \
    --delete-enabled false --write-enabled true

Impedire operazioni di lettura in un'immagine o in 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 eliminata e aggiornata, 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 e tutte le immagini in modo che possano essere eliminate e aggiornate, eseguire il comando seguente:

az acr repository update \
    --name myregistry --repository myrepo \
    --delete-enabled true --write-enabled true

Passaggi successivi

In questo articolo si è appreso l'uso del comando az acr repository update per impedire l'eliminazione o l'aggiornamento delle versioni dell'immagine in un repository. Per impostare attributi aggiuntivi, vedere il riferimento al comando az acr repository update .

Per visualizzare gli attributi impostati per una versione o un repository di immagini, usare il comando az acr repository show .

Per informazioni dettagliate sulle operazioni di eliminazione, vedere Eliminare immagini del contenitore in Registro Azure Container.