Gunakan identitas yang dikelola Azure di Tugas ACR

Aktifkan identitas terkelola untuk sumber daya Azure di tugas ACR, sehingga tugas dapat mengakses sumber daya Azure lainnya, tanpa perlu memberikan atau mengelola kredensial. Misalnya, gunakan identitas terkelola untuk mengaktifkan langkah tugas untuk menarik atau mendorong citra kontainer ke registri lain.

Di artikel ini, Anda mempelajari cara menggunakan Azure CLI untuk mengaktifkan identitas terkelola yang ditetapkan pengguna atau sistem yang ditetapkan pada tugas ACR. Anda dapat menggunakan Azure Cloud Shell atau penginstalan lokal Azure CLI. Jika Anda ingin menggunakannya secara lokal, diperlukan versi 2.0.68 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.

Untuk tujuan ilustrasi, contoh perintah dalam artikel ini menggunakan az acr task create untuk membuat tugas build citra dasar yang mengaktifkan identitas terkelola. Untuk skenario contoh untuk mengakses sumber daya aman dari tugas ACR menggunakan identitas terkelola, lihat:

Mengapa menggunakan identitas terkelola?

Identitas terkelola untuk sumber daya Azure menyediakan layanan Azure yang dipilih dengan identitas yang dikelola secara otomatis di ID Microsoft Entra. Anda dapat mengonfigurasi tugas ACR dengan identitas terkelola sehingga tugas dapat mengakses sumber daya Azure aman lainnya, tanpa melewati kredensial dalam langkah-langkah tugas.

Identitas yang dikelola terdiri dari dua jenis:

  • Identitas yang ditetapkan pengguna, yang dapat Anda tetapkan ke beberapa sumber daya dan bertahan selama yang Anda inginkan. Identitas yang ditetapkan pengguna saat ini sedang dalam pratinjau.

  • Identitas yang ditetapkan sistem, yang unik untuk sumber daya tertentu seperti tugas ACR dan berlangsung selama masa pakai sumber daya tersebut.

Anda dapat mengaktifkan salah satu atau kedua jenis identitas dalam tugas ACR. Berikan akses identitas ke sumber daya lain, sama seperti prinsip keamanan lainnya. Saat tugas berjalan, ia menggunakan identitas untuk mengakses sumber daya dalam setiap langkah tugas yang memerlukan akses.

Langkah-langkah untuk menggunakan identitas yang dikelola

Ikuti langkah-langkah tingkat tinggi ini untuk menggunakan identitas yang dikelola dengan tugas ACR.

1. (Opsional) Buat identitas yang ditetapkan pengguna

Jika Anda berencana untuk menggunakan identitas yang ditetapkan pengguna, gunakan identitas yang sudah ada, atau buat identitas menggunakan Azure CLI atau alat Azure lainnya. Misalnya, gunakan perintah az identity create.

Jika Anda berencana untuk hanya menggunakan identitas yang ditetapkan sistem, lewati langkah ini. Anda membuat identitas yang ditetapkan sistem saat Anda membuat tugas ACR.

2. Aktifkan identitas pada tugas ACR

Saat Anda membuat tugas ACR, secara opsional aktifkan identitas yang ditetapkan pengguna, identitas yang ditetapkan sistem, atau keduanya. Misalnya, berikan parameter --assign-identity saat Anda menjalankan perintah az acr task create di Azure CLI.

Untuk mengaktifkan identitas yang ditetapkan sistem, berikan --assign-identity tanpa nilai atau assign-identity [system]. Contoh perintah berikut membuat tugas Linux dari repositori GitHub publik yang membangun citra hello-world dan mengaktifkan identitas yang dikelola yang ditetapkan sistem:

az acr task create \
    --image hello-world:{{.Run.ID}} \
    --name hello-world --registry MyRegistry \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --file Dockerfile \
    --commit-trigger-enabled false \
    --assign-identity

Untuk mengaktifkan identitas yang ditetapkan pengguna, teruskan --assign-identity dengan nilai ID sumber daya identitas tersebut. Perintah contoh berikut membuat tugas Linux dari repositori GitHub publik yang membangun hello-world gambar dan mengaktifkan identitas terkelola yang ditetapkan pengguna:

az acr task create \
    --image hello-world:{{.Run.ID}} \
    --name hello-world --registry MyRegistry \
    --context https://github.com/Azure-Samples/acr-build-helloworld-node.git#main \
    --file Dockerfile \
    --commit-trigger-enabled false
    --assign-identity <resourceID>

Anda bisa mendapatkan ID sumber daya identitas dengan menjalankan perintah az identity show. ID sumber daya untuk ID myUserAssignedIdentity dalam grup sumber daya myResourceGroup berbentuk:

"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUserAssignedIdentity"

3. Berikan izin identitas untuk mengakses sumber daya Azure lainnya

Bergantung pada persyaratan tugas Anda, berikan izin identitas untuk mengakses sumber daya Azure lainnya. Contoh meliputi:

  • Tetapkan peran identitas terkelola dengan tarik, dorong dan tarik, atau izin lainnya ke registri kontainer target di Azure. Untuk daftar lengkap peran registri, lihat peran dan izin Azure Container Registry.
  • Tetapkan peran identitas yang dikelola untuk membaca rahasia di brankas kunci Azure.

Gunakan Azure CLI atau alat Azure lainnya untuk mengelola akses berbasis peran ke sumber daya. Misalnya, jalankan perintah az role assignment create untuk menetapkan identitas peran ke sumber daya.

Contoh berikut memberikan izin untuk menarik identitas yang dikelola dari registri kontainer. Perintah tersebut menentukan ID utama dari identitas tugas dan ID sumber daya registri target.

az role assignment create \
  --assignee <principalID> \
  --scope <registryID> \
  --role acrpull

4. (Opsional) Tambahkan kredensial ke tugas

Jika tugas Anda memerlukan kredensial untuk menarik atau mendorong citra ke registri kustom lain, atau untuk mengakses sumber daya lain, tambahkan kredensial ke tugas. Jalankan perintah az acr task credential add untuk menambahkan kredensial, dan teruskan parameter --use-identity untuk menunjukkan bahwa identitas dapat mengakses kredensial.

Misalnya, untuk menambahkan kredensial bagi identitas yang ditetapkan sistem untuk diautentikasi dengan targetregistry registri kontainer Azure, teruskan use-identity [system]:

az acr task credential add \
    --name helloworld \
    --registry myregistry \
    --login-server targetregistry.azurecr.io \
    --use-identity [system]

Untuk menambahkan kredensial bagi identitas yang ditetapkan pengguna untuk diautentikasi dengan targetregistry registri, teruskan use-identity dengan nilai ID klien identitas tersebut. Contohnya:

az acr task credential add \
    --name helloworld \
    --registry myregistry \
    --login-server targetregistry.azurecr.io \
    --use-identity <clientID>

Anda bisa mendapatkan ID klien dari identitas tersebut dengan menjalankan perintah az identity show. ID klien adalah GUID dari formulir xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Parameter --use-identity tidak bersifat opsional, jika registri menonaktifkan akses jaringan publik dan hanya bergantung pada layanan tepercaya tertentu untuk menjalankan tugas ACR. Lihat, contoh Tugas ACR sebagai layanan tepercaya.

5. Jalankan tugas

Setelah mengonfigurasi tugas dengan identitas yang dikelola, jalankan tugas. Misalnya, untuk menguji salah satu tugas yang dibuat dalam artikel ini, picu secara manual menggunakan perintah az acr task run. Jika Anda mengonfigurasi pemicu tugas otomatis tambahan, tugas akan berjalan saat dipicu secara otomatis.

Langkah berikutnya

Di artikel ini, Anda mempelajari cara mengaktifkan dan menggunakan identitas terkelola yang ditetapkan pengguna atau sistem yang ditetapkan pada tugas ACR. Untuk skenario mengakses sumber daya aman dari tugas ACR menggunakan identitas terkelola, lihat: