Een containerinstallatiekopie blokkeren in een Azure-containerregister

In een Azure-containerregister kunt u een versie van een installatiekopieën of een opslagplaats vergrendelen, zodat deze niet kan worden verwijderd of bijgewerkt. Als u een installatiekopieën of opslagplaats wilt vergrendelen, werkt u de kenmerken bij met behulp van de Azure CLI-opdracht az acr repository update.

Voor dit artikel moet u de Azure CLI uitvoeren in Azure Cloud Shell of lokaal (versie 2.0.55 of hoger aanbevolen). Voer az --version uit om de versie te bekijken. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren.

Belangrijk

Dit artikel is niet van toepassing op het vergrendelen van een heel register, bijvoorbeeld met behulp van InstellingenVergrendelingen > in de Azure Portal of az lock opdrachten in de Azure CLI. Het vergrendelen van een registerresource voorkomt niet dat u gegevens in opslagplaatsen maakt, bijwerkt of verwijdert. Het vergrendelen van een register is alleen van invloed op beheerbewerkingen, zoals het toevoegen of verwijderen van replicaties, of het verwijderen van het register zelf. Zie Resources vergrendelen om onverwachte wijzigingen te voorkomen voor meer informatie.

Scenario's

Standaard is een getagde installatiekopieën in Azure Container Registry veranderlijk, dus met de juiste machtigingen kunt u een installatiekopieën met dezelfde tag herhaaldelijk bijwerken en naar een register pushen. Containerinstallatiekopieën kunnen indien nodig ook worden verwijderd . Dit gedrag is handig wanneer u installatiekopieën ontwikkelt en een grootte voor uw register moet behouden.

Wanneer u echter een containerinstallatiekopieën in productie implementeert, hebt u mogelijk een onveranderbare containerinstallatiekopieën nodig. Een onveranderbare afbeelding is een afbeelding die u niet per ongeluk kunt verwijderen of overschrijven.

Zie Aanbevelingen voor het taggen en versiebeheer van containerinstallatiekopieën voor strategieën voor het taggen en versiebeheer van installatiekopieën in uw register.

Gebruik de opdracht az acr repository update om de kenmerken van de opslagplaats in te stellen, zodat u het volgende kunt doen:

  • Een installatiekopieënversie of een volledige opslagplaats vergrendelen

  • Een versie of opslagplaats van een installatiekopie beveiligen tegen verwijdering, maar updates toestaan

  • Leesbewerkingen (pull-bewerkingen) voorkomen in een installatiekopieversie of een hele opslagplaats

Zie de volgende secties voor voorbeelden.

Een installatiekopieën of opslagplaats vergrendelen

De kenmerken van de huidige opslagplaats weergeven

Als u de huidige kenmerken van een opslagplaats wilt zien, voert u de volgende opdracht az acr repository show uit :

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

De huidige afbeeldingskenmerken weergeven

Als u de huidige kenmerken van een tag wilt zien, voert u de volgende opdracht az acr repository show uit :

az acr repository show \
    --name myregistry --image myrepo:tag \
    --output jsonc

Een afbeelding vergrendelen op tag

Als u de installatiekopie myrepo:tag in myregistry wilt vergrendelen, voert u de volgende opdracht az acr repository update uit :

az acr repository update \
    --name myregistry --image myrepo:tag \
    --write-enabled false

Een afbeelding vergrendelen via manifestsamenvating

Als u een myrepo-installatiekopieën wilt vergrendelen die zijn geïdentificeerd door manifestsamenvating (SHA-256-hash, weergegeven als sha256:...), voert u de volgende opdracht uit. (Als u de manifestsamenvating wilt vinden die is gekoppeld aan een of meer afbeeldingstags, voert u de opdracht az acr manifest list-metadata uit .)

az acr repository update \
    --name myregistry --image myrepo@sha256:123456abcdefg \
    --write-enabled false

Een opslagplaats vergrendelen

Voer de volgende opdracht uit om de myrepo-opslagplaats en alle installatiekopieën daarin te vergrendelen:

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

De huidige opslagplaatskenmerken weergeven

Voer de opdracht az acr repository update uit om de kenmerken van de opslagplaats bij te werken om de afbeeldingsvergrendelingsvermelding aan te geven.

az acr repository update \
    --name myregistry --repository myrepo \ 
    --list-enabled false

De afbeeldingskenmerken weergeven bij afbeeldingsvergrendeling

Voer de opdracht az acr repository show uit om een query uit te voeren op de tags op een afbeeldingsvergrendeling waarvoor --list-enabled false het kenmerk is ingeschakeld.

az acr repository show-manifests \
    --name myregistry --repository myrepo \
    --query "[?listEnabled==null].tags" 
    --output table

Controleer de afbeeldingskenmerken op de tag en het bijbehorende manifest.

Notitie

  • De veranderlijke kenmerken van tags en manifesten worden afzonderlijk beheerd. Dat wil dus dat het instellen van het kenmerk deleteEnabled=false voor de tag niet hetzelfde is voor het bijbehorende manifest.
  • Voer een query uit op de kenmerken met behulp van het onderstaande script:
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"

Notitie

Als de afbeeldingskenmerken zijn ingesteld met writeEnabled=false of deleteEnabled=false, wordt het verwijderen van afbeeldingen geblokkeerd.

Een installatiekopie of opslagplaats beveiligen tegen verwijdering

Een afbeelding beveiligen tegen verwijdering

Voer de volgende opdracht uit om toe te staan dat de installatiekopieën myrepo:tag worden bijgewerkt maar niet worden verwijderd:

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

Een opslagplaats beveiligen tegen verwijdering

Met de volgende opdracht wordt de myrepo-opslagplaats ingesteld zodat deze niet kan worden verwijderd. Afzonderlijke afbeeldingen kunnen nog steeds worden bijgewerkt of verwijderd.

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

Leesbewerkingen in een installatiekopieën of opslagplaats voorkomen

Voer de volgende opdracht uit om leesbewerkingen (pull)-bewerkingen op de installatiekopie myrepo:tag te voorkomen:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --read-enabled false

Voer de volgende opdracht uit om leesbewerkingen op alle installatiekopieën in de myrepo-opslagplaats te voorkomen:

az acr repository update \
    --name myregistry --repository myrepo \
    --read-enabled false

Een installatiekopieën of opslagplaats ontgrendelen

Voer de volgende opdracht uit om het standaardgedrag van de afbeelding myrepo:tag te herstellen, zodat deze kan worden verwijderd en bijgewerkt:

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

Voer de volgende opdracht uit om het standaardgedrag van de myrepo-opslagplaats en alle installatiekopieën te herstellen, zodat ze kunnen worden verwijderd en bijgewerkt:

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

Volgende stappen

In dit artikel hebt u geleerd hoe u de opdracht az acr repository update gebruikt om te voorkomen dat installatiekopieversies in een opslagplaats worden verwijderd of bijgewerkt. Als u aanvullende kenmerken wilt instellen, raadpleegt u de naslaginformatie over de opdracht az acr repository update .

Als u de kenmerken wilt zien die zijn ingesteld voor een installatiekopieënversie of opslagplaats, gebruikt u de opdracht az acr repository show .

Zie Containerinstallatiekopieën verwijderen in Azure Container Registry voor meer informatie over verwijderingsbewerkingen.