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.