Sperren von Containerimages in einer Azure-Containerregistrierung
Sie können eine Imageversion oder ein Repository in einer Azure-Containerregistrierung sperren, damit es nicht gelöscht oder aktualisiert werden kann. Aktualisieren Sie die Attribute mithilfe des Azure CLI-Befehls az acr repository update, um ein Image oder ein Repository zu sperren.
Für die Vorgehensweisen in diesem Artikel ist erforderlich, dass Sie die Azure CLI in Azure Cloud Shell oder lokal ausführen (Version 2.0.55 oder höher werden empfohlen). Führen Sie az --version
aus, um die Version zu ermitteln. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sei bei Bedarf unter Installieren der Azure CLI.
Wichtig
Dieser Artikel gilt nicht für das Sperren einer ganzen Registrierung, z. B. durch die Verwendung von Einstellungen > Sperren im Azure-Portal oder von az lock
-Befehlen in der Azure CLI. Das Sperren einer Registrierungsressource hindert Sie nicht am Erstellen, Aktualisieren oder Löschen von Daten in Repositorys. Das Sperren einer Registrierung wirkt sich nur auf Verwaltungsvorgänge wie das Hinzufügen oder Löschen von Replizierungen oder das Löschen der Registrierung selbst aus. Weitere Informationen finden Sie unter Sperren von Ressourcen, um unerwartete Änderungen zu verhindern.
Szenarien
Markierte Images sind in Azure Container Registry standardmäßig änderbar. Mit den entsprechenden Berechtigungen können Sie ein Image also wiederholt mit dem gleichen Tag aktualisieren und an eine Registrierung pushen. Containerimages können bei Bedarf auf gelöscht werden. Dieses Verhalten ist nützlich, wenn Sie Images entwickeln und eine Größe für Ihre Registrierung einhalten müssen.
Wenn Sie jedoch ein Containerimage für die Produktionsumgebung bereitstellen, benötigen Sie möglicherweise ein unveränderliches Containerimage. Ein unveränderliches Containerimage kann nicht versehentlich gelöscht oder überschrieben werden.
Informationen zu Strategien zum Taggen und für die Versionsverwaltung von Images in Ihrer Registrierung finden Sie unter Empfehlungen für das Taggen und die Versionsverwaltung von Containerimages.
Verwenden Sie den Befehl az acr repository update, um Repositoryattribute für Folgendes festzulegen:
Sperren einer Imageversion oder eines gesamten Repositorys
Schützen einer Imageversion oder eines Repositorys mit zugelassenen Updates
Verhindern von Lesevorgängen (Pull) für eine Imageversion oder ein gesamtes Repository
Beispiele hierzu finden Sie in den nachfolgenden Abschnitten.
Sperren von Images oder Repositorys
Anzeigen der aktuellen Repository-Attribute
Führen Sie den folgenden Befehl vom Typ az acr repository show aus, um die aktuellen Attribute eines Repositorys anzuzeigen:
az acr repository show \
--name myregistry --repository myrepo \
--output jsonc
Anzeigen der aktuellen Imageattribute
Führen Sie den folgenden Befehl vom Typ az acr repository show aus, um die aktuellen Attribute eines Tags anzuzeigen:
az acr repository show \
--name myregistry --image myrepo:tag \
--output jsonc
Sperren von Images mithilfe von Tags
Um das Image myrepo:tag in myregistry zu sperren, führen Sie den folgenden Befehl az acr repository update aus:
az acr repository update \
--name myregistry --image myrepo:tag \
--write-enabled false
Sperren von Images anhand von Manifest-Digests
Um das Image myrepo zu sperren, das durch den Manifest-Digest (SHA-256-Hash, dargestellt als sha256:...
) identifiziert wird, führen Sie den folgenden Befehl aus. (Führen Sie den Befehl az acr manifest list-metadata aus, um den Manifest-Digest zu ermitteln, der mindestens einem Imagetag zugeordnet ist.)
az acr repository update \
--name myregistry --image myrepo@sha256:123456abcdefg \
--write-enabled false
Sperren eines Repositorys
Um das Repository myrepo und alle darin enthaltenen Images zu sperren, führen Sie den folgenden Befehl aus:
az acr repository update \
--name myregistry --repository myrepo \
--write-enabled false
Auflisten der aktuellen Repositoryattribute
Führen Sie den Befehl az acr repository update aus, um die Repositoryattribute zur Angabe der Imagesperrliste zu aktualisieren.
az acr repository update \
--name myregistry --repository myrepo \
--list-enabled false
Anzeigen der Imageattribute einer Imagesperre
Führen Sie den Befehl az acr repository show aus, um die Tags für eine Imagesperre mit aktivierter Option --list-enabled false
im Attribut abzufragen.
az acr repository show-manifests \
--name myregistry --repository myrepo \
--query "[?listEnabled==null].tags"
--output table
Überprüfen Sie Imageattribute für das Tag und das entsprechende Manifest.
Hinweis
- Die veränderlichen Attribute von Tags und Manifesten werden separat verwaltet. Das heißt, das Festlegen des Attributs
deleteEnabled=false
für das Tag nicht dasselbe für das entsprechende Manifest bewirkt.
- Fragen Sie die Attribute mithilfe des folgenden Skripts ab:
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"
Hinweis
Wenn die Imageattribute mit writeEnabled=false
oder deleteEnabled=false
festgelegt wurden, wird das Löschen von Images blockiert.
Schützen von Images und Repositorys vor dem Löschen
Schützen von Images vor dem Löschen
Um zuzulassen, dass das Image myimage:tag aktualisiert, aber nicht gelöscht wird, führen Sie den folgenden Befehl aus:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled false --write-enabled true
Schützen von Repositorys vor dem Löschen
Der folgende Befehl setzt das Repository myrepo so, dass es nicht gelöscht werden kann. Einzelne Images können weiterhin aktualisiert oder gelöscht werden.
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled false --write-enabled true
Verhindern von Lesevorgängen für Images oder Repositorys
Um Lesevorgänge (Pullvorgänge) für das Image myimage:tag zu verhindern, führen Sie den folgenden Befehl aus:
az acr repository update \
--name myregistry --image myrepo:tag \
--read-enabled false
Um Lesevorgänge für alle Images im Repository myrepo zu verhindern, führen Sie den folgenden Befehl aus:
az acr repository update \
--name myregistry --repository myrepo \
--read-enabled false
Entsperren von Images oder Repositorys
Um das Standardverhalten des Images myimage:tag wiederherzustellen, so dass es gelöscht und aktualisiert werden kann, führen Sie den folgenden Befehl aus:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled true --write-enabled true
Um das Standardverhalten des Repositorys myrepo wiederherzustellen, sodass einzelne Images gelöscht und aktualisiert werden können, führen Sie den folgenden Befehl aus:
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled true --write-enabled true
Wenn das Manifest jedoch gesperrt ist, müssen Sie einen weiteren Befehl ausführen, um das Manifest zu entsperren.
az acr repository update \
--name myregistry --image $repo@$digest \
--delete-enabled true --write-enabled true
Nächste Schritte
In diesem Artikel haben Sie gelernt, wie Sie den Befehl az acr repository update verwenden, um das Löschen und Aktualisieren von Imageversionen in einem Repository zu verhindern. Informationen zum Festlegen zusätzlicher Attribute finden Sie in der Referenz zum Befehl az acr repository update.
Mit dem Befehl az acr repository show können Sie die für eine Imageversion oder ein Repository festgelegten Attribute anzeigen.
Ausführliche Informationen zu Löschvorgängen finden Sie unter Löschen von Containerimages in Azure Container Registry.