Udostępnij za pośrednictwem


Zablokuj obraz kontenera w usłudze Azure Container Registry

W rejestrze kontenerów platformy Azure można zablokować wersję obrazu lub repozytorium, aby nie można było go usunąć ani zaktualizować. Aby zablokować obraz lub repozytorium, zaktualizuj jego atrybuty przy użyciu polecenia interfejsu wiersza polecenia platformy Azure az acr repository update.

Ten artykuł wymaga uruchomienia interfejsu wiersza polecenia platformy Azure w usłudze Azure Cloud Shell lub lokalnie (zalecana wersja 2.0.55 lub nowsza). Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Ważne

Ten artykuł nie ma zastosowania do blokowania całego rejestru, na przykład przy użyciu blokad ustawień > w witrynie Azure Portal lub az lock poleceń w interfejsie wiersza polecenia platformy Azure. Blokowanie zasobu rejestru nie uniemożliwia tworzenia, aktualizowania ani usuwania danych w repozytoriach. Blokowanie rejestru ma wpływ tylko na operacje zarządzania, takie jak dodawanie lub usuwanie replikacji lub usuwanie samego rejestru. Więcej informacji znajduje się w temacie Blokowanie zasobów, aby zapobiec nieoczekiwanym zmianom.

Scenariusze

Domyślnie obraz otagowany w usłudze Azure Container Registry jest modyfikowalny, więc z odpowiednimi uprawnieniami można wielokrotnie aktualizować i wypychać obraz z tym samym tagiem do rejestru. Obrazy kontenerów można również usunąć zgodnie z potrzebami. To zachowanie jest przydatne podczas tworzenia obrazów i konieczności zachowania rozmiaru rejestru.

Jednak podczas wdrażania obrazu kontenera w środowisku produkcyjnym może być potrzebny niezmienny obraz kontenera. Niezmienny obraz jest taki, który nie można przypadkowo usunąć ani zastąpić.

Zobacz Zalecenia dotyczące tagowania i przechowywania wersji obrazów kontenerów, aby zapoznać się ze strategiami tagowania i wersji obrazów w rejestrze.

Użyj polecenia az acr repository update, aby ustawić atrybuty repozytorium, aby umożliwić:

  • Blokowanie wersji obrazu lub całego repozytorium

  • Ochrona wersji obrazu lub repozytorium przed usunięciem, ale zezwalanie na aktualizacje

  • Zapobieganie operacjom odczytu (ściągania) w wersji obrazu lub w całym repozytorium

Zapoznaj się z poniższymi sekcjami, aby zapoznać się z przykładami.

Blokowanie obrazu lub repozytorium

Pokaż bieżące atrybuty repozytorium

Aby wyświetlić bieżące atrybuty repozytorium, uruchom następujące polecenie az acr repository show :

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

Pokaż bieżące atrybuty obrazu

Aby wyświetlić bieżące atrybuty tagu, uruchom następujące polecenie az acr repository show :

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

Blokowanie obrazu według tagu

Aby zablokować obraz myrepo:tag w pliku myregistry, uruchom następujące polecenie az acr repository update :

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

Blokowanie obrazu za pomocą skrótu manifestu

Aby zablokować obraz myrepo zidentyfikowany przez skrót manifestu (skrót SHA-256, reprezentowany jako sha256:...), uruchom następujące polecenie. (Aby znaleźć skrót manifestu skojarzony z co najmniej jednym tagiem obrazu, uruchom polecenie az acr manifest list-metadata ).

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

Blokowanie repozytorium

Aby zablokować repozytorium myrepo i wszystkie w nim obrazy, uruchom następujące polecenie:

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

Wyświetlanie listy bieżących atrybutów repozytorium

Aby zaktualizować atrybuty repozytorium w celu wskazania listy blokady obrazu, uruchom polecenie az acr repository update .

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

Pokaż atrybuty obrazu w blokadzie obrazu

Aby wykonać zapytanie dotyczące tagów w blokadzie obrazu z --list-enabled false włączonym atrybutem, uruchom polecenie az acr repository show .

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

Sprawdź atrybuty obrazu dla tagu i odpowiadającego mu manifestu.

Uwaga

  • Zmienialne atrybuty tagów i manifestu są zarządzane oddzielnie. Oznacza to, że ustawienie atrybutu deleteEnabled=false dla tagu nie spowoduje ustawienia tego samego dla odpowiedniego manifestu.
  • Wykonaj zapytanie dotyczące atrybutów przy użyciu poniższego skryptu:
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"

Uwaga

Jeśli atrybuty obrazu są ustawione za pomocą writeEnabled=false elementu lub deleteEnabled=false, spowoduje to zablokowanie usunięcia obrazu.

Ochrona obrazu lub repozytorium przed usunięciem

Ochrona obrazu przed usunięciem

Aby zezwolić na zaktualizowanie obrazu myrepo:tag , ale go nie usunięto, uruchom następujące polecenie:

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

Ochrona repozytorium przed usunięciem

Następujące polecenie ustawia repozytorium myrepo , aby nie można było go usunąć. Poszczególne obrazy można nadal aktualizować lub usuwać.

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

Zapobieganie operacjom odczytu na obrazie lub repozytorium

Aby zapobiec operacjom odczytu (ściągania) na obrazie myrepo:tag , uruchom następujące polecenie:

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

Aby zapobiec operacjom odczytu na wszystkich obrazach w repozytorium myrepo , uruchom następujące polecenie:

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

Odblokowywanie obrazu lub repozytorium

Aby przywrócić domyślne zachowanie obrazu myrepo:tag , aby można je było usunąć i zaktualizować, uruchom następujące polecenie:

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

Aby przywrócić domyślne zachowanie repozytorium myrepo , włączenie usuwania i aktualizowania poszczególnych obrazów, uruchom następujące polecenie:

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

Jeśli jednak w manifeście istnieje blokada, musisz uruchomić dodatkowe polecenie, aby odblokować manifest.

az acr repository update \
   --name myregistry --image $repo@$digest \
   --delete-enabled true --write-enabled true

Następne kroki

W tym artykule przedstawiono informacje na temat używania polecenia az acr repository update , aby zapobiec usunięciu lub zaktualizowaniu wersji obrazów w repozytorium. Aby ustawić dodatkowe atrybuty, zobacz dokumentację polecenia az acr repository update .

Aby wyświetlić zestaw atrybutów dla wersji obrazu lub repozytorium, użyj polecenia az acr repository show .

Aby uzyskać szczegółowe informacje na temat operacji usuwania, zobacz Usuwanie obrazów kontenerów w usłudze Azure Container Registry.