Cara menggunakan identitas terkelola untuk sumber daya Azure di komputer virtual Azure untuk masuk

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.

Artikel ini menyediakan contoh skrip PowerShell dan CLI untuk masuk menggunakan identitas terkelola untuk perwakilan layanan sumber daya Azure dan panduan tentang topik penting seperti penanganan kesalahan.

Catatan

Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.

Prasyarat

Jika Anda berencana untuk menggunakan contoh Azure PowerShell atau Azure CLI dalam artikel ini, pastikan untuk menginstal versi terbaru Azure PowerShell atau Azure CLI.

Penting

Gambaran Umum

Identitas terkelola untuk sumber daya Azure menyediakan objek perwakilan layanan yang dibuat setelah mengaktifkan identitas terkelola untuk sumber daya Azure di komputer virtual. Perwakilan layanan dapat diberikan akses ke sumber daya Azure dan digunakan sebagai identitas oleh klien skrip/baris perintah untuk masuk dan akses sumber daya. Secara tradisional, untuk mengakses sumber daya aman dengan identitasnya sendiri, klien skrip harus:

  • didaftarkan dan disetujui dengan ID Microsoft Entra sebagai aplikasi klien rahasia/web
  • masuk di bawah perwakilan layanannya menggunakan informasi masuk aplikasi (yang kemungkinan disematkan dalam skrip)

Dengan identitas terkelola untuk sumber daya Azure, klien skrip Anda tidak perlu lagi melakukan keduanya, karena dapat masuk dengan identitas terkelola untuk perwakilan layanan sumber daya Azure.

Azure CLI

Skrip berikut menunjukkan cara:

  1. Masuk ke ID Microsoft Entra di bawah identitas terkelola VM untuk perwakilan layanan sumber daya Azure

  2. Memanggil Azure Resource Manager dan mendapatkan ID perwakilan layanan komputer virtual. CLI menangani pengelolaan akuisisi/penggunaan token untuk Anda secara otomatis. Pastikan untuk mengganti nama komputer virtual Anda dengan <VM-NAME>.

    az login --identity
    
    $spID=$(az resource list -n <VM-NAME> --query [*].identity.principalId --out tsv)
    echo The managed identity for Azure resources service principal ID is $spID
    

Azure PowerShell

Skrip berikut menunjukkan cara:

  1. Masuk ke ID Microsoft Entra di bawah identitas terkelola VM untuk perwakilan layanan sumber daya Azure

  2. Memanggil cmdlet Azure Resource Manager untuk mendapatkan informasi tentang komputer virtual. PowerShell menangani pengelolaan penggunaan token untuk Anda secara otomatis.

    Add-AzAccount -identity
    
    # Call Azure Resource Manager to get the service principal ID for the VM's managed identity for Azure resources. 
    $vmInfoPs = Get-AzVM -ResourceGroupName <RESOURCE-GROUP> -Name <VM-NAME>
    $spID = $vmInfoPs.Identity.PrincipalId
    echo "The managed identity for Azure resources service principal ID is $spID"
    

ID sumber daya untuk layanan Azure

Lihat Layanan Azure yang mendukung autentikasi Microsoft Entra untuk daftar sumber daya yang mendukung ID Microsoft Entra dan telah diuji dengan identitas terkelola untuk sumber daya Azure, dan ID sumber daya masing-masing.

Panduan penanganan kesalahan

Respons seperti berikut ini mungkin menunjukkan bahwa identitas terkelola komputer virtual untuk sumber daya Azure belum dikonfigurasi dengan benar:

  • PowerShell: Invoke-WebRequest : Tidak dapat terhubung ke server jarak jauh
  • CLI: MSI: Gagal mengambil token dari http://localhost:50342/oauth2/token dengan kesalahan 'HTTPConnectionPool(host='localhost', port=50342)

Jika Anda menerima salah satu kesalahan ini, kembali ke komputer virtual Azure di portal Microsoft Azure, lalu buka halaman Identitas dan pastikan Sistem yang ditetapkan diatur ke "Ya."

Langkah berikutnya