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 meningkatkan, lihat Memasang Azure CLI.
Penting
Artikel ini tidak berlaku untuk mengunci seluruh registri, misalnya, menggunakan Pengaturan > Kunci di portal 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 myrepo:tag \
--output jsonc
Mengunci gambar menurut tag
Untuk mengunci gambar myrepo:tag di myregistry, jalankan perintah az acr repository update berikut:
az acr repository update \
--name myregistry --image myrepo:tag \
--write-enabled false
Mengunci gambar dengan inti manifes
Untuk mengunci gambar myrepo yang diidentifikasi oleh hash manifes (hash SHA-256, yang diwakili sebagai sha256:...
), jalankan perintah berikut. (Untuk menemukan hash manifes yang terkait dengan satu atau beberapa tag gambar, jalankan perintah az acr manifest list-metadata.)
az acr repository update \
--name myregistry --image myrepo@sha256:123456abcdefg \
--write-enabled false
Mengunci repositori
Untuk mengunci repositori myrepo dan semua citra di dalamnya, jalankan perintah berikut:
az acr repository update \
--name myregistry --repository myrepo \
--write-enabled false
Mencantumkan atribut repositori saat ini
Untuk memperbarui atribut repositori untuk menunjukkan daftar kunci gambar, jalankan perintah az acr repository update .
az acr repository update \
--name myregistry --repository myrepo \
--list-enabled false
Menampilkan atribut gambar pada kunci gambar
Untuk mengkueri tag pada kunci gambar dengan --list-enabled false
diaktifkan pada atribut, jalankan perintah az acr repository show .
az acr repository show-manifests \
--name myregistry --repository myrepo \
--query "[?listEnabled==null].tags"
--output table
Periksa atribut gambar untuk tag dan manifes yang sesuai.
Catatan
- Atribut tag dan manifes yang dapat diubah dikelola secara terpisah. Artinya, mengatur atribut
deleteEnabled=false
untuk tag tidak akan mengatur hal yang sama untuk manifes yang sesuai.
- Kueri atribut menggunakan skrip di bawah ini:
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"
Catatan
Jika atribut gambar diatur dengan writeEnabled=false
atau deleteEnabled=false
, maka akan memblokir penghapusan gambar.
Melindungi gambar atau repositori dari penghapusan
Melindungi gambar dari penghapusan
Untuk mengizinkan gambar myrepo:tag diperbarui tetapi tidak dihapus, jalankan perintah berikut:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled false --write-enabled true
Melindungi repositori dari penghapusan
Perintah berikut mengatur repositori myrepo sehingga tidak dapat dihapus. Gambar individual masih dapat diperbarui atau dihapus.
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled false --write-enabled true
Mencegah operasi baca pada gambar atau repositori
Untuk mencegah operasi baca (tarik) pada gambar myrepo:tag , jalankan perintah berikut:
az acr repository update \
--name myregistry --image myrepo:tag \
--read-enabled false
Untuk mencegah operasi baca (penarikan) pada semua gambar di repositori myrepo, jalankan perintah berikut:
az acr repository update \
--name myregistry --repository myrepo \
--read-enabled false
Mengunci gambar atau repositori
Untuk memulihkan perilaku default gambar myrepo:tag sehingga dapat dihapus dan diperbarui, jalankan perintah berikut:
az acr repository update \
--name myregistry --image myrepo:tag \
--delete-enabled true --write-enabled true
Untuk memulihkan perilaku default repositori myrepo , memungkinkan gambar individual dihapus dan diperbarui, jalankan perintah berikut:
az acr repository update \
--name myregistry --repository myrepo \
--delete-enabled true --write-enabled true
Namun, jika ada kunci pada manifes, Anda perlu menjalankan perintah tambahan untuk membuka kunci manifes.
az acr repository update \
--name myregistry --image $repo@$digest \
--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.