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.