Mengunci gambar kontainer di registri kontainer Azure

Di registri kontainer Azure, Anda dapat mengunci versi gambar atau repositori sehingga tidak dapat dihapus atau diperbarui. Untuk mengunci gambar atau repositori, perbarui atributnya menggunakan Azure CLI az acr repository update.

Artikel ini mengharuskan Anda menjalankan Azure CLI di Azure Cloud Shell atau secara lokal (versi 2.0.55 atau yang lebih baru direkomendasikan). Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau memutakhirkannya, lihat Memasang Azure CLI.

Penting

Artikel ini tidak berlaku untuk mengunci seluruh registri, misalnya, menggunakan Pengaturan > Mengunci di portal Microsoft Azure, atau perintah az lock di Azure CLI. Mengunci sumber daya registri tidak menyebabkan Anda tidak dapat membuat, memperbarui, atau menghapus data di repositori. Mengunci registri hanya mempengaruhi operasi manajemen seperti menambahkan atau menghapus replikasi, atau menghapus registri itu sendiri. Untuk informasi selengkapnya, lihat Mengunci sumber daya untuk mencegah perubahan yang tidak terduga.

Skenario

Secara default, gambar bertag di Azure Container Registry dapat diubah, sehingga dengan izin yang sesuai, Anda dapat berulang kali memperbarui dan mendorong gambar dengan tag yang sama ke registri. Gambar kontainer juga dapat dihapus sesuai kebutuhan. Perilaku ini berguna ketika Anda mengembangkan gambar dan perlu mempertahankan ukuran untuk registri Anda.

Namun, ketika Anda menyebarkan gambar kontainer ke produksi, Anda mungkin memerlukan gambar kontainer yang tidak dapat diubah. Gambar yang tidak dapat diubah adalah gambar yang tidak dapat Anda hapus atau timpa secara tidak sengaja.

Lihat juga Rekomendasi untuk memberi tag dan membuat versi gambar kontainer untuk strategi untuk memberi tag dan membuat versi gambar di registri Anda.

Gunakan perintah pembaruan repositori az acr untuk mengatur atribut repositori sehingga Anda dapat:

  • Mengunci versi gambar, atau seluruh repositori

  • Melindungi versi gambar atau repositori dari penghapusan, tetapi perbolehkan pembaruan

  • Mencegah operasi baca (penarikan) pada versi gambar, atau seluruh repositori

Lihat bagian berikut ini sebagai contoh.

Mengunci gambar atau repositori

Menampilkan atribut repositori saat ini

Untuk melihat atribut repositori saat ini, jalankan perintah tampilkan repositori az acr berikut:

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

Tampilkan atribut gambar saat ini

Untuk melihat atribut tag saat ini, jalankan perintah tampilkan repositori az acr berikut:

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

Mengunci gambar menurut tag

Untuk mengunci gambar myrepo/myimage:tag dalam myregistry, jalankan perintah az acr repository update berikut:

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

Mengunci gambar dengan inti manifes

Untuk mengunci gambar myrepo/myimage yang diidentifikasi oleh inti manifes (SHA-256 hash, dinyatakan sebagai sha256:...), jalankan perintah berikut. (Untuk menemukan inti manifes yang terkait dengan satu atau beberapa tag gambar, jalankan perintah az acr repository show-manifests)

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

Mengunci repositori

Untuk mengunci repositori myrepo/myimage dan semua gambar di dalamnya, jalankan perintah berikut:

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

Melindungi gambar atau repositori dari penghapusan

Melindungi gambar dari penghapusan

Untuk mengizinkan gambar myrepo/myimage:tag diperbarui tetapi tidak dihapus, jalankan perintah berikut:

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

Melindungi repositori dari penghapusan

Perintah berikut mengatur repositori myrepo/myimage sehingga tidak dapat dihapus. Gambar individual masih dapat diperbarui atau dihapus.

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

Mencegah operasi baca pada gambar atau repositori

Untuk mencegah operasi baca (penarikan) pada gambar myrepo/myimage:tag, jalankan perintah berikut:

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

Untuk mencegah operasi baca (penarikan) pada semua gambar di repositori myrepo/myimage:tag, jalankan perintah berikut:

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

Mengunci gambar atau repositori

Untuk memulihkan perilaku default gambar myrepo/myimage:tag sehingga dapat dihapus dan diperbarui, jalankan perintah berikut:

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

Untuk memulihkan perilaku default dari repositori dan semua gambar myrepo/myimage:tag sehingga dapat dihapus dan diperbarui, jalankan perintah berikut:

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

Langkah berikutnya

Dalam artikel ini, Anda akan belajar tentang menggunakan perintah az acr repository update untuk mencegah penghapusan atau pembaruan versi gambar di repositori. Untuk mengatur atribut tambahan, lihat referensi perintah az acr repository update.

Untuk melihat atribut yang ditetapkan untuk versi gambar atau repositori, gunakan perintah tampilkan repositori az acr.

Untuk detail tentang operasi penghapusan, lihat Menghapus gambar kontainer di Azure Container Registry.