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 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 wpływa 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 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ąć w razie potrzeby. 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 zezwalaj na aktualizacje
Zapobieganie operacjom odczytu (ściągania) w wersji obrazu lub całego 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 usłudze myregistry, uruchom następujące polecenie az acr repository update :
az acr repository update \
--name myregistry --image myrepo:tag \
--write-enabled false
Blokowanie obrazu według 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 obrazy w nim, 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 na blokadzie obrazu
Aby wykonać zapytanie dotyczące tagów na 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 odpowiedniego manifestu.
Uwaga
- Zmienialne atrybuty tagów i manifestu są zarządzane oddzielnie. Oznacza to, że ustawienie atrybutu
deleteEnabled=false
tagu nie spowoduje ustawienia tego samego dla odpowiedniego manifestu.
- Wykonaj zapytanie o atrybuty 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 umożliwić zaktualizowanie obrazu tagu myrepo:, ale nie zostało usunięte, 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 i wszystkich obrazów, aby można je było usunąć i zaktualizować, uruchom następujące polecenie:
az acr repository update \
--name myregistry --repository myrepo \
--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ć atrybuty ustawione 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 Azure Container Registry.