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.
- Buat Identitas Terkelola Sistem Akun Automation dan gunakan untuk mengautentikasi.
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
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.