Mengonfigurasi Identitas terkelola untuk sumber daya Azure di komputer virtual Azure menggunakan panggilan REST API
Identitas terkelola untuk sumber daya Azure adalah fitur ID Microsoft Entra. Setiap layanan Azure yang mendukung identitas terkelola untuk sumber daya Azure tunduk pada garis waktu mereka masing-masing. Pastikan Anda meninjau status ketersediaan identitas terkelola untuk sumber daya dan masalah yang diketahui sebelum Anda memulai.
Identitas terkelola untuk sumber daya Azure menyediakan layanan Azure dengan identitas sistem yang dikelola secara otomatis di ID Microsoft Entra. Anda dapat menggunakan identitas ini untuk mengautentikasi tiap layanan yang mendukung autentikasi Microsoft Entra, tanpa memiliki kredensial dalam kode Anda.
Dalam artikel ini, menggunakan CURL untuk melakukan panggilan ke titik akhir REST Azure Resource Manager, Anda mempelajari cara menjalankan identitas terkelola berikut untuk operasi sumber daya Azure di komputer virtual Azure:
- Mengaktifkan dan menonaktifkan identitas terkelola yang ditetapkan sistem di komputer virtual Azure
- Menambahkan dan menghapus identitas terkelola yang ditetapkan pengguna di komputer virtual Azure
Jika Anda belum memiliki akun Azure, daftar untuk mendapatkan akun gratis sebelum melanjutkan.
Prasyarat
- Jika Anda asing dengan identitas terkelola untuk sumber daya Azure, lihat Apa itu identitas terkelola untuk sumber daya Azure?. Untuk mempelajari jenis identitas terkelola yang ditetapkan sistem dan yang ditetapkan pengguna, lihat Jenis identitas terkelola.
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Identitas terkelola yang ditetapkan sistem
Di bagian ini, Anda mempelajari cara mengaktifkan dan menonaktifkan identitas terkelola yang ditetapkan sistem di komputer virtual Azure menggunakan CURL untuk melakukan panggilan ke titik akhir REST Azure Resource Manager.
Mengaktifkan identitas terkelola yang ditetapkan sistem selama pembuatan komputer virtual Azure
Untuk membuat komputer virtual Azure dengan identitas terkelola yang ditetapkan sistem yang diaktifkan, akun Anda memerlukan penetapan peran Kontributor Komputer Virtual. Tidak diperlukan penetapan peran direktori Microsoft Entra lainnya.
Buat grup sumber daya untuk penahanan dan penyebaran komputer virtual Anda dan sumber daya terkaitnya, menggunakan az group create. Anda dapat melewati langkah ini jika Anda sudah memiliki grup sumber daya yang ingin Anda gunakan sebagai gantinya:
az group create --name myResourceGroup --location westus
Buat antarmuka jaringan untuk komputer virtual Anda:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Ambil token akses Pembawa, yang akan Anda gunakan pada langkah berikutnya di header Otorisasi untuk membuat komputer virtual Anda dengan identitas terkelola yang ditetapkan sistem.
az account get-access-token
Dengan menggunakan Azure Cloud Shell, buat komputer virtual menggunakan CURL untuk memanggil titik akhir REST Azure Resource Manager. Contoh berikut membuat komputer virtual bernama myVM dengan identitas terkelola yang ditetapkan sistem, seperti yang diidentifikasi dalam isi permintaan berdasarkan nilai
"identity":{"type":"SystemAssigned"}
. Ganti<ACCESS TOKEN>
dengan nilai yang Anda terima di langkah sebelumnya ketika Anda meminta token akses Pembawa dan nilai<SUBSCRIPTION ID>
yang sesuai untuk lingkungan Anda.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"SystemAssigned"},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"<SECURE PASSWORD STRING>"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "location":"westus", "name":"myVM", "identity":{ "type":"SystemAssigned" }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
Mengaktifkan identitas terkelola yang ditetapkan sistem di komputer virtual yang ada
Untuk mengaktifkan identitas terkelola yang ditetapkan sistem pada komputer virtual yang awalnya disediakan tanpa identitas tersebut, akun Anda memerlukan penetapan peran Kontributor Komputer Virtual. Tidak diperlukan penetapan peran direktori Microsoft Entra lainnya.
Ambil token akses Pembawa, yang akan Anda gunakan pada langkah berikutnya di header Otorisasi untuk membuat komputer virtual Anda dengan identitas terkelola yang ditetapkan sistem.
az account get-access-token
Gunakan perintah CURL berikut untuk memanggil titik akhir REST Azure Resource Manager untuk mengaktifkan identitas terkelola yang ditetapkan sistem pada komputer virtual Anda seperti yang diidentifikasi dalam isi permintaan berdasarkan nilai
{"identity":{"type":"SystemAssigned"}
untuk komputer virtual bernama myVM. Ganti<ACCESS TOKEN>
dengan nilai yang Anda terima di langkah sebelumnya ketika Anda meminta token akses Pembawa dan nilai<SUBSCRIPTION ID>
yang sesuai untuk lingkungan Anda.Penting
Untuk memastikan Anda tidak menghapus identitas terkelola yang ditetapkan pengguna apa pun yang ditetapkan ke komputer virtual, Anda perlu mencantumkan identitas terkelola yang ditetapkan pengguna menggunakan perintah CURL ini:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Jika Anda memiliki identitas terkelola yang ditetapkan pengguna yang ditetapkan ke komputer virtual seperti yang diidentifikasi dalam nilaiidentity
dalam respons, lewati ke langkah 3 yang memperlihatkan cara mempertahankan identitas terkelola yang ditetapkan pengguna sambil mengaktifkan identitas terkelola yang ditetapkan sistem pada komputer virtual Anda.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"SystemAssigned" } }
Untuk mengaktifkan identitas terkelola yang ditetapkan sistem pada komputer virtual dengan identitas terkelola yang ditetapkan pengguna yang ada, Anda perlu menambahkan
SystemAssigned
ke nilaitype
.Misalnya, jika komputer virtual Anda memiliki identitas terkelola yang ditetapkan pengguna
ID1
ID2
dan ditetapkan untuknya, dan Anda ingin menambahkan identitas terkelola yang ditetapkan sistem ke komputer virtual, gunakan panggilan CURL berikut. Ganti<ACCESS TOKEN>
dan<SUBSCRIPTION ID>
dengan nilai yang sesuai untuk lingkungan Anda.Versi API
2018-06-01
menyimpan identitas terkelola yang ditetapkan pengguna dalam nilaiuserAssignedIdentities
dalam format kamus dibandingkan dengan nilaiidentityIds
dalam format array yang digunakan dalam versi API2017-12-01
.API VERSION 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
API VERSION 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
Menonaktifkan identitas terkelola yang ditetapkan sistem dari komputer virtual Azure
Untuk menonaktifkan identitas terkelola yang ditetapkan sistem pada komputer virtual, akun Anda memerlukan penetapan peran Kontributor Komputer Virtual. Tidak diperlukan penetapan peran direktori Microsoft Entra lainnya.
Ambil token akses Pembawa, yang akan Anda gunakan pada langkah berikutnya di header Otorisasi untuk membuat komputer virtual Anda dengan identitas terkelola yang ditetapkan sistem.
az account get-access-token
Perbarui komputer virtual menggunakan CURL untuk memanggil titik akhir REST Azure Resource Manager untuk menonaktifkan identitas terkelola yang ditetapkan sistem. Contoh berikut menonaktifkan identitas terkelola yang ditetapkan sistem seperti yang diidentifikasi dalam isi permintaan berdasarkan nilai
{"identity":{"type":"None"}}
dari komputer virtual bernama myVM. Ganti<ACCESS TOKEN>
dengan nilai yang Anda terima di langkah sebelumnya ketika Anda meminta token akses Pembawa dan nilai<SUBSCRIPTION ID>
yang sesuai untuk lingkungan Anda.Penting
Untuk memastikan Anda tidak menghapus identitas terkelola yang ditetapkan pengguna apa pun yang ditetapkan ke komputer virtual, Anda perlu mencantumkan identitas terkelola yang ditetapkan pengguna menggunakan perintah CURL ini:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
. Jika Anda memiliki identitas terkelola yang ditetapkan pengguna yang ditetapkan ke komputer virtual seperti yang diidentifikasi dalam nilaiidentity
dalam respons, lewati ke langkah 3 yang memperlihatkan cara mempertahankan identitas terkelola yang ditetapkan pengguna sambil menonaktifkan identitas terkelola yang ditetapkan sistem pada komputer virtual Anda.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"None" } }
Untuk menghapus identitas terkelola yang ditetapkan sistem dari komputer virtual yang memiliki identitas terkelola yang ditetapkan pengguna, hapus
SystemAssigned
dari nilai{"identity":{"type:" "}}
sambil mempertahankan nilaiUserAssigned
dan nilai kamususerAssignedIdentities
jika Anda menggunakan versi API 2018-06-01. Jika Anda menggunakan versi API 2017-12-01 atau versi lebih lama, pertahankan arrayidentityIds
.
Identitas terkelola yang ditetapkan pengguna
Di bagian ini, Anda mempelajari cara menambahkan dan menghapus identitas terkelola yang ditetapkan pengguna di komputer virtual Azure menggunakan CURL untuk melakukan panggilan ke titik akhir REST Azure Resource Manager.
Menetapkan identitas terkelola yang ditetapkan pengguna selama pembuatan komputer virtual Azure
Untuk menetapkan identitas yang ditetapkan pengguna ke Komputer Virtual, akun Anda memerlukan penetapan peran Kontributor Komputer Virtual dan Operator Identitas Terkelola. Tidak diperlukan penetapan peran direktori Microsoft Entra lainnya.
Ambil token akses Pembawa, yang akan Anda gunakan pada langkah berikutnya di header Otorisasi untuk membuat komputer virtual Anda dengan identitas terkelola yang ditetapkan sistem.
az account get-access-token
Buat antarmuka jaringan untuk komputer virtual Anda:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Ambil token akses Pembawa, yang akan Anda gunakan pada langkah berikutnya di header Otorisasi untuk membuat komputer virtual Anda dengan identitas terkelola yang ditetapkan sistem.
az account get-access-token
Buat identitas terkelola yang ditetapkan pengguna menggunakan instruksi yang ditemukan di sini: Membuat identitas terkelola yang ditetapkan pengguna.
Buat komputer virtual menggunakan CURL untuk memanggil titik akhir REST Azure Resource Manager. Contoh berikut membuat komputer virtual bernama myVM di grup sumber daya myResourceGroup dengan identitas terkelola yang ditetapkan pengguna
ID1
, seperti yang diidentifikasi dalam isi permintaan berdasarkan nilai"identity":{"type":"UserAssigned"}
. Ganti<ACCESS TOKEN>
dengan nilai yang Anda terima di langkah sebelumnya ketika Anda meminta token akses Pembawa dan nilai<SUBSCRIPTION ID>
yang sesuai untuk lingkungan Anda.API VERSION 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "location":"westus", "name":"myVM", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
API VERSION 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "location":"westus", "name":"myVM", "identity":{ "type":"UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] }, "properties":{ "hardwareProfile":{ "vmSize":"Standard_D2_v2" }, "storageProfile":{ "imageReference":{ "sku":"2016-Datacenter", "publisher":"MicrosoftWindowsServer", "version":"latest", "offer":"WindowsServer" }, "osDisk":{ "caching":"ReadWrite", "managedDisk":{ "storageAccountType":"StandardSSD_LRS" }, "name":"myVM3osdisk", "createOption":"FromImage" }, "dataDisks":[ { "diskSizeGB":1023, "createOption":"Empty", "lun":0 }, { "diskSizeGB":1023, "createOption":"Empty", "lun":1 } ] }, "osProfile":{ "adminUsername":"azureuser", "computerName":"myVM", "adminPassword":"myPassword12" }, "networkProfile":{ "networkInterfaces":[ { "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic", "properties":{ "primary":true } } ] } } }
Menetapkan identitas terkelola yang ditetapkan pengguna ke komputer virtual Azure yang sudah ada
Untuk menetapkan identitas yang ditetapkan pengguna ke Komputer Virtual, akun Anda memerlukan penetapan peran Kontributor Komputer Virtual dan Operator Identitas Terkelola. Tidak diperlukan penetapan peran direktori Microsoft Entra lainnya.
Ambil token akses Pembawa, yang akan Anda gunakan pada langkah berikutnya di header Otorisasi untuk membuat komputer virtual Anda dengan identitas terkelola yang ditetapkan sistem.
az account get-access-token
Buat identitas terkelola yang ditetapkan pengguna menggunakan instruksi yang ditemukan di sini, Membuat identitas terkelola yang ditetapkan pengguna.
Untuk memastikan Anda tidak menghapus identitas terkelola yang ditetapkan pengguna atau sistem yang ada yang ditetapkan ke komputer virtual, Anda perlu mencantumkan jenis identitas yang ditetapkan ke komputer virtual menggunakan perintah CURL berikut. Jika Anda sudah mengelola identitas yang ditetapkan ke kumpulan skala komputer virtual, identitas tersebut tercantum di bawah nilai
identity
.curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Jika Anda memiliki identitas terkelola yang ditetapkan pengguna atau sistem yang ditetapkan ke komputer virtual seperti yang diidentifikasi dalam nilai
identity
dalam respons, lewati ke langkah 5 yang memperlihatkan cara mempertahankan identitas terkelola yang ditetapkan sistem sambil menambahkan identitas terkelola yang ditetapkan pengguna ke komputer virtual Anda.Jika Anda tidak memiliki identitas terkelola yang ditetapkan pengguna apa pun yang ditetapkan ke komputer virtual Anda, gunakan perintah CURL berikut untuk memanggil titik akhir REST Azure Resource Manager untuk menetapkan identitas terkelola yang ditetapkan pengguna pertama ke komputer virtual.
Contoh berikut menetapkan identitas terkelola yang ditetapkan pengguna,
ID1
ke komputer virtual bernama myVM di grup sumber daya myResourceGroup. Ganti<ACCESS TOKEN>
dengan nilai yang Anda terima di langkah sebelumnya ketika Anda meminta token akses Pembawa dan nilai<SUBSCRIPTION ID>
yang sesuai untuk lingkungan Anda.API VERSION 2018-06-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ } } } }
API VERSION 2017-12-01
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"userAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Jika Anda memiliki identitas terkelola yang ditetapkan pengguna atau yang ditetapkan sistem yang ditetapkan untuk komputer virtual Anda:
API VERSION 2018-06-01
Tambahkan identitas terkelola yang ditetapkan pengguna ke nilai kamus
userAssignedIdentities
.Misalnya, jika Anda memiliki identitas terkelola yang ditetapkan sistem dan identitas terkelola yang ditetapkan pengguna
ID1
yang saat ini ditetapkan ke komputer virtual Anda dan ingin menambahkan identitas terkelola yang ditetapkan penggunaID2
ke identitas tersebut:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{ }, "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{ } } } }
API VERSION 2017-12-01
Pertahankan identitas terkelola yang ditetapkan pengguna yang ingin Anda simpan dalam nilai array
identityIds
sambil menambahkan identitas terkelola yang ditetapkan pengguna baru.Misalnya, jika Anda memiliki identitas terkelola yang ditetapkan sistem dan identitas terkelola yang ditetapkan pengguna
ID1
yang saat ini ditetapkan ke komputer virtual Anda dan ingin menambahkan identitas terkelola yang ditetapkan penggunaID2
ke identitas tersebut:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"SystemAssigned,UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1", "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2" ] } }
Menghapus identitas terkelola yang ditetapkan pengguna dari komputer virtual Azure
Untuk menghapus identitas yang ditetapkan pengguna ke komputer virtual, akun Anda memerlukan penetapan peran Kontributor Komputer Virtual.
Ambil token akses Pembawa, yang akan Anda gunakan pada langkah berikutnya di header Otorisasi untuk membuat komputer virtual Anda dengan identitas terkelola yang ditetapkan sistem.
az account get-access-token
Untuk memastikan Anda tidak menghapus identitas terkelola yang ditetapkan pengguna yang sudah ada yang tetap ingin Anda tetapkan ke komputer virtual atau menghapus identitas terkelola yang ditetapkan sistem, Anda perlu mencantumkan identitas terkelola dengan menggunakan perintah CURL berikut:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Jika Anda sudah mengelola identitas yang ditetapkan ke komputer virtual, identitas tersebut tercantum dalam respons dalam nilai
identity
.Misalnya, jika Anda memiliki identitas terkelola yang ditetapkan pengguna
ID1
danID2
yang ditetapkan ke komputer virtual Anda, dan Anda hanya ingin tetap menetapkanID1
dan mempertahankan identitas yang ditetapkan sistem:API VERSION 2018-06-01
Tambahkan
null
ke identitas terkelola yang ditetapkan pengguna yang ingin Anda hapus:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null } } }
API VERSION 2017-12-01
Hanya pertahankan identitas terkelola yang ditetapkan pengguna yang ingin Anda simpan dalam array
identityIds
:curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
Header permintaan
Header permintaan Deskripsi Tipe-Konten Harus diisi. Atur ke application/json
.Authorization Harus diisi. Atur ke token akses Bearer
yang valid.Badan permintaan
{ "identity":{ "type":"SystemAssigned, UserAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Jika komputer virtual Anda memiliki identitas terkelola yang ditetapkan sistem dan ditetapkan pengguna, Anda dapat menghapus semua identitas terkelola yang ditetapkan pengguna dengan beralih untuk hanya menggunakan identitas terkelola yang ditetapkan sistem menggunakan perintah berikut:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan | Deskripsi |
---|---|
Tipe-Konten | Harus diisi. Atur ke application/json . |
Authorization | Harus diisi. Atur ke token akses Bearer yang valid. |
Badan permintaan
{
"identity":{
"type":"SystemAssigned"
}
}
Jika komputer virtual Anda hanya memiliki identitas terkelola yang ditetapkan pengguna dan Anda ingin menghapus semuanya, gunakan perintah berikut:
curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
Header permintaan
Header permintaan | Deskripsi |
---|---|
Tipe-Konten | Harus diisi. Atur ke application/json . |
Authorization | Harus diisi. Atur ke token akses Bearer yang valid. |
Badan permintaan
{
"identity":{
"type":"None"
}
}
Langkah berikutnya
Untuk informasi tentang cara membuat, mencantumkan, atau menghapus identitas terkelola yang ditetapkan pengguna menggunakan REST, lihat: