Memecahkan masalah identitas terkelola Azure Automation (pratinjau)

Artikel ini membahas solusi untuk masalah yang mungkin Anda alami saat menggunakan identitas terkelola pada akun Azure Automation. Untuk informasi umum tentang menggunakan identitas terkelola pada akun Automation, lihat Gambaran umum autentikasi akun Azure Automation.

Skenario: Runbook dengan identitas terkelola yang ditetapkan sistem gagal dengan pesan kesalahan 400

Masalah

Runbook dengan identitas terkelola yang ditetapkan sistem gagal dengan kesalahan sebagai unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request)

Penyebab

Anda belum menetapkan izin setelah membuat identitas terkelola yang ditetapkan sistem.

Resolusi

Pastikan untuk menetapkan izin yang sesuai untuk identitas terkelola yang ditetapkan sistem. Mengaktifkan identitas terkelola yang ditetapkan sistem untuk akun Azure Automation

Skenario: Identitas Terkelola dalam Runbook tidak dapat mengautentikasi terhadap Azure

Masalah

Saat menggunakan Identitas Terkelola di runbook, Anda menerima kesalahan sebagai: connect-azaccount : ManagedIdentityCredential authentication failed: Failed to get MSI token for account d94c0db6-5540-438c-9eb3-aa20e02e1226 and resource https://management.core.windows.net/. Status: 500 (Internal Server Error)

Penyebab

Ini dapat terjadi baik ketika:

  • Penyebab 1: Anda menggunakan akun Automation System Managed Identity, yang belum dibuat dan Code Connect-AzAccount -Identity mencoba mengautentikasi ke Azure dan menjalankan runbook di Azure atau di Hybrid Runbook Worker.

  • Penyebab 2: Akun Automation memiliki identitas terkelola Pengguna yang ditetapkan dan bukan Identitas Terkelola Sistem dan - Code Connect-AzAccount -Identity mencoba mengautentikasi ke Azure dan menjalankan runbook pada Hybrid Runbook Worker komputer virtual Azure menggunakan Azure VM System Managed Identity.

Resolusi

  • Resolusi 1: Anda harus membuat Identitas Terkelola Sistem Akun Automation dan memberinya akses ke Sumber Daya Azure.

  • Resolusi 2: Sesuai dengan kebutuhan Anda, Anda dapat:

    • Buat Identitas Terkelola Sistem Akun Automation dan gunakan untuk mengautentikasi.
      Atau
    • Hapus Identitas Terkelola yang Ditetapkan Pengguna Akun Automation.

Skenario: Tidak dapat menemukan identitas terkelola yang ditetapkan pengguna untuk menambahkannya ke akun Automation

Masalah

Anda ingin menambahkan identitas terkelola yang ditetapkan pengguna ke akun Automation. Namun, Anda tidak dapat menemukan akun tersebut di bilah Automation.

Penyebab

Masalah ini terjadi ketika Anda tidak memiliki izin berikut untuk identitas terkelola yang ditetapkan pengguna untuk melihatnya di bilah Automation.

  • Microsoft.ManagedIdentity/userAssignedIdentities/*/read
  • Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action

Catatan

Izin di atas diberikan secara default ke Operator Identitas Terkelola dan Kontributor Identitas Terkelola.

Resolusi

Pastikan Anda memiliki izin peran Operator Identitas untuk menambahkan identitas terkelola yang ditetapkan pengguna ke akun Automation Anda.

Skenario: Runbook gagal dengan "ini. Client.SubscriptionId tidak boleh null." pesan kesalahan

Masalah

Runbook Anda menggunakan identitas terkelola Koneksi-AzAccount -Identity yang mencoba mengelola objek Azure, gagal berfungsi dengan sukses dan mencatat kesalahan berikut -this.Client.SubscriptionId cannot be null.

get-azvm : 'this.Client.SubscriptionId' cannot be null. At line:5 char:1 + get-azvm + ~~~~~~~~ + CategoryInfo : CloseError: (:) [Get-AzVM], ValidationException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.GetAzureVMCommand

Penyebab

Ini dapat terjadi ketika Identitas Terkelola (atau akun lain yang digunakan dalam runbook) belum diberikan izin apa pun untuk mengakses langganan.

Resolusi

Harap berikan Identitas Terkelola (atau akun lain yang digunakan dalam runbook) keanggotaan peran yang sesuai pada langganan. Pelajari lebih lanjut

 Cuplikan layar yang memperlihatkan penetapan penetapan Peran Azure.

Cuplikan layar yang memperlihatkan cara menambahkan penetapan peran.

Skenario: Gagal mendapatkan token MSI untuk akun

Masalah

Saat bekerja dengan identitas terkelola yang ditetapkan pengguna di akun Automation Anda, Anda menerima kesalahan yang mirip dengan: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b.

Penyebab

Menggunakan identitas terkelola yang ditetapkan pengguna sebelum mengaktifkan identitas terkelola yang ditetapkan sistem untuk akun Automation Anda.

Resolusi

Aktifkan identitas terkelola yang ditetapkan sistem untuk akun Automation Anda. Kemudian gunakan identitas terkelola yang ditetapkan pengguna.

Skenario: Upaya untuk menggunakan identitas terkelola dengan akun Automation gagal

Masalah

Ketika Anda mencoba bekerja dengan identitas terkelola di akun Automation, Anda mengalami kesalahan seperti ini:

Connect-AzureRMAccount : An error occurred while sending the request. At line:2 char:1 + Connect-AzureRMAccount -Identity + 
CategoryInfo : CloseError: (:) [Connect-AzureRmAccount], HttpRequestException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Profile.ConnectAzureRmAccountCommand

Penyebab

Penyebab paling umum untuk ini adalah Anda tidak mengaktifkan identitas sebelum mencoba menggunakannya. Untuk memverifikasi ini, jalankan runbook PowerShell berikut ini di akun Automation yang terpengaruh.

$resource= "?resource=https://management.azure.com/"
$url = $env:IDENTITY_ENDPOINT + $resource
$Headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$Headers.Add("X-IDENTITY-HEADER", $env:IDENTITY_HEADER)
$Headers.Add("Metadata", "True")

try
{
    $Response = Invoke-RestMethod -Uri $url -Method 'GET' -Headers $Headers
}
catch
{
    $StatusCode = $_.Exception.Response.StatusCode.value__
    $stream = $_.Exception.Response.GetResponseStream()
    $reader = New-Object System.IO.StreamReader($stream)
    $responseBody = $reader.ReadToEnd()
    
    Write-Output "Request Failed with Status: $StatusCode, Message: $responseBody"
}

Jika masalahnya adalah Anda tidak mengaktifkan identitas sebelum mencoba menggunakannya, Anda akan melihat hasil yang mirip dengan ini:

Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}

Resolusi

Anda harus mengaktifkan identitas untuk akun Automation sebelum dapat menggunakan layanan identitas terkelola. Lihat Mengaktifkan identitas terkelola untuk akun Azure Automation

Langkah berikutnya

Jika artikel ini tidak menyelesaikan masalah Anda, coba salah satu saluran berikut untuk mendapatkan dukungan tambahan:

  • Dapatkan jawaban dari para ahli Azure melalui Forum Internet Azure.
  • Terhubung dengan @AzureSupport. Ini adalah akun resmi Microsoft Azure untuk menyambungkan komunitas Azure ke sumber daya yang tepat: jawaban, dukungan, dan para ahli.
  • Ajukan insiden dukungan Azure. Buka situs web dukungan Azure, lalu pilih Dapatkan Dukungan.