Peran dan izin Azure Container Registry

Layanan Azure Container Registry mendukung serangkaian peran Azure bawaan yang menyediakan tingkat izin yang berbeda untuk registri kontainer Azure. Gunakan kontrol akses berbasis peran Azure (Azure RBAC) untuk menetapkan izin tertentu kepada pengguna, prinsipal layanan, atau identitas lain yang perlu berinteraksi dengan registri, misalnya untuk menarik atau mendorong gambar kontainer. Anda juga dapat menentukan peran kustom dengan izin akses ke registri untuk operasi yang berbeda.

Peran/Izin Azure Resource Manager Membuat/menghapus registri Pendorongan gambar Penarikan gambar Menghapus data gambar Mengubah kebijakan Menandatangani gambar
Pemilik X X X X X X
Kontributor X X X X X X
Pembaca X X
AcrPush X X
AcrPull X
AcrDelete X
AcrImageSigner X

Menetapkan peran

Lihat Langkah-langkah untuk menambahkan penetapan peran untuk langkah-langkah tingkat tinggi untuk menambahkan penetapan peran ke pengguna, grup, prinsipal layanan, atau identitas terkelola yang sudah ada. Anda dapat menggunakan portal Microsoft Azure, Azure CLI, Azure PowerShell atau alat Azure lainnya.

Saat membuat prinsipal layanan, Anda juga mengkonfigurasi akses dan izinnya ke sumber daya Azure seperti registri kontainer. Misalnya skrip menggunakan Azure CLI, lihat Autentikasi Azure Container Registry dengan prinsipal layanan.

Membedakan pengguna dan layanan

Setiap kali izin diberikan, praktik terbaik adalah memberikan serangkaian izin yang paling terbatas bagi seseorang, atau layanan, untuk menyelesaikan tugas. Rangkaian izin berikut mewakili serangkaian kemampuan yang dapat digunakan oleh manusia dan layanan tanpa kepala.

Solusi CI/CD

Saat mengotomatiskan perintah docker build dari solusi CI/CD, Anda memerlukan kemampuan docker push. Untuk skenario layanan headless ini, sebaiknya tetapkan peran AcrPush. Peran ini, tidak seperti peran Kontributor yang lebih luas, mencegah akun melakukan operasi registri lain atau mengakses Azure Resource Manager.

Node host kontainer

Demikian juga, node yang menjalankan kontainer Anda membutuhkan peran AcrPull, tetapi seharusnya tidak memerlukan kemampuan Pembaca.

Ekstensi Docker Visual Studio Code

Untuk alat seperti ekstensi Docker Visual Studio Code, akses penyedia sumber daya tambahan diperlukan untuk mencantumkan registri kontainer Azure yang tersedia. Dalam hal ini, berikan pengguna Anda akses ke peran Pembaca atau Kontributor. Peran ini memungkinkan docker pull, docker push, az acr list, az acr build, dan kemampuan lainnya.

Mengakses Azure Resource Manager

Akses Azure Resource Manager diperlukan untuk portal Microsoft Azure dan manajemen registri dengan Azure CLI. Misalnya, untuk mendapatkan daftar registri dengan menggunakan perintah az acr list, Anda memerlukan rangkaian izin ini.

Membuat dan menghapus registri

Kemampuan untuk membuat dan menghapus registri kontainer Azure.

Pendorongan gambar

Kemampuan untuk docker push gambar, atau mendorong artefak lain yang didukung seperti bagan Helm, ke registri. Memerlukan autentikasi dengan registri menggunakan identitas yang diotorisasi.

Penarikan gambar

Kemampuan untuk docker pull gambar yang tidak dikarantina, atau menarik artefak lain yang didukung seperti bagan Helm, dari registri. Memerlukan autentikasi dengan registri menggunakan identitas yang diotorisasi.

Menghapus data gambar

Kemampuan untuk menghapus gambar kontainer, atau menghapus artefak lain yang didukung seperti bagan Helm, dari registri.

Mengubah kebijakan

Kemampuan untuk mengkonfigurasi kebijakan pada registri. Kebijakan termasuk pembersihan gambar, mengaktifkan karantina, dan penandatanganan gambar.

Menandatangani gambar

Kemampuan untuk menandatangani gambar, biasanya ditetapkan ke proses otomatis, yang akan menggunakan prinsipal layanan. Izin ini biasanya dikombinasikan dengan pendorongan gambar untuk memungkinkan mendorong gambar tepercaya ke registri. Untuk detailnya, lihat Kepercayaan konten di Azure Container Registry.

Peran kustom

Seperti halnya sumber daya Azure lainnya, Anda dapat membuat peran kustom dengan izin akses ke Azure Container Registry. Kemudian tetapkan peran kustom kepada pengguna, prinsipal layanan, atau identitas lain yang perlu berinteraksi dengan registri.

Untuk menentukan izin mana yang akan diterapkan ke peran kustom, lihat daftar tindakan Microsoft.ContainerRegistry, tinjau tindakan yang diizinkan dari peran ACR bawaan, atau jalankan perintah berikut:

az provider operation show --namespace Microsoft.ContainerRegistry

Untuk menentukan peran kustom, lihat Langkah-langkah untuk membuat peran kustom.

Penting

Dalam peran kustom, Azure Container Registry saat ini tidak mendukung wildcard seperti Microsoft.ContainerRegistry/* atau Microsoft.ContainerRegistry/registries/* yang memberikan akses ke semua tindakan yang cocok. Tentukan setiap tindakan yang diperlukan secara individual dalam peran.

Contoh: Peran kustom untuk mengimpor gambar

Misalnya, JSON berikut mendefinisikan tindakan minimum untuk peran kustom yang memungkinkan mengimpor gambar ke registri.

{
   "assignableScopes": [
     "/subscriptions/<optional, but you can limit the visibility to one or more subscriptions>"
   ],
   "description": "Can import images to registry",
   "Name": "AcrImport",
   "permissions": [
     {
       "actions": [
         "Microsoft.ContainerRegistry/registries/push/write",
         "Microsoft.ContainerRegistry/registries/pull/read",
         "Microsoft.ContainerRegistry/registries/read",
         "Microsoft.ContainerRegistry/registries/importImage/action"
       ],
       "dataActions": [],
       "notActions": [],
       "notDataActions": []
     }
   ],
   "roleType": "CustomRole"
 }

Untuk membuat atau memperbarui peran kustom menggunakan deskripsi JSON, gunakan Azure CLI, templat Azure Resource Manager, Azure PowerShell, atau alat Azure lainnya. Tambahkan atau hapus penetapan peran untuk peran kustom dengan cara yang sama seperti Anda mengelola penetapan peran untuk peran Azure bawaan.

Langkah berikutnya