Rozwiązywanie problemów z tożsamością zarządzaną usługi Azure Automation
W tym artykule omówiono rozwiązania problemów, które mogą wystąpić podczas korzystania z tożsamości zarządzanej z kontem usługi Automation. Aby uzyskać ogólne informacje na temat korzystania z tożsamości zarządzanej z kontami usługi Automation, zobacz Omówienie uwierzytelniania konta usługi Azure Automation.
Scenariusz: element Runbook z przypisaną przez system tożsamością zarządzaną kończy się niepowodzeniem z komunikatem o błędzie 400
Problem
Element Runbook z tożsamością zarządzaną przypisaną przez system kończy się niepowodzeniem z powodu błędu unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request)
Przyczyna
Nie przypisano uprawnień po utworzeniu tożsamości zarządzanej przypisanej przez system.
Rozwiązanie
Upewnij się, że przypisano odpowiednie uprawnienia dla tożsamości zarządzanej przypisanej przez system. Używanie tożsamości zarządzanej przypisanej przez system w przypadku konta usługi Azure Automation
Scenariusz: tożsamość zarządzana w elemecie Runbook nie może uwierzytelniać się na platformie Azure
Problem
W przypadku korzystania z tożsamości zarządzanej w elemecie Runbook wyświetlany jest błąd: 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)
Przyczyna
Może się tak zdarzyć, gdy:
Przyczyna 1: Używasz tożsamości zarządzanej systemu usługi Automation, która nie została jeszcze utworzona, i
Code Connect-AzAccount -Identity
próbujesz uwierzytelnić się na platformie Azure i uruchomić element Runbook na platformie Azure lub w hybrydowym procesie roboczym elementu Runbook.Przyczyna 2: Konto usługi Automation ma przypisaną tożsamość zarządzaną użytkownika, a nie tożsamość zarządzaną przez system, a nie tożsamość zarządzaną przez system —
Code Connect-AzAccount -Identity
próbuje uwierzytelnić się na platformie Azure i uruchomić element Runbook na hybrydowej maszynie wirtualnej platformy Azure przy użyciu tożsamości zarządzanej przez system maszyny wirtualnej platformy Azure.
Rozwiązanie
Rozwiązanie 1: Należy utworzyć tożsamość zarządzaną systemu kont usługi Automation i udzielić jej dostępu do zasobów platformy Azure.
Rozwiązanie 2: Zgodnie z wymaganiami można wykonać następujące czynności:
- Utwórz tożsamość zarządzaną systemu konta usługi Automation i użyj jej do uwierzytelniania.
Lub - Usuń tożsamość zarządzaną przypisaną przez użytkownika konta usługi Automation.
- Utwórz tożsamość zarządzaną systemu konta usługi Automation i użyj jej do uwierzytelniania.
Scenariusz: Nie można odnaleźć tożsamości zarządzanej przypisanej przez użytkownika w celu dodania jej do konta usługi Automation
Problem
Chcesz dodać tożsamość zarządzaną przypisaną przez użytkownika do konta usługi Automation. Nie można jednak znaleźć konta w bloku Automatyzacja.
Przyczyna
Ten problem występuje, gdy nie masz następujących uprawnień do tożsamości zarządzanej przypisanej przez użytkownika, aby wyświetlić ją w bloku Automatyzacja.
Microsoft.ManagedIdentity/userAssignedIdentities/*/read
Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action
Uwaga
Powyższe uprawnienia są domyślnie przyznawane operatorowi tożsamości zarządzanej i współautorowi tożsamości zarządzanej.
Rozwiązanie
Upewnij się, że masz uprawnienia roli Operator tożsamości, aby dodać tożsamość zarządzaną przypisaną przez użytkownika do konta usługi Automation.
Scenariusz: element Runbook kończy się niepowodzeniem z komunikatem "this. Identyfikator Client.SubscriptionId nie może mieć wartości null" — komunikat o błędzie
Problem
Element Runbook używający tożsamości zarządzanej Connect-AzAccount -Identity, który próbuje zarządzać obiektami platformy Azure, nie działa pomyślnie i rejestruje następujący błąd — 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
Przyczyna
Może się tak zdarzyć, gdy tożsamość zarządzana (lub inne konto używane w elemecie Runbook) nie otrzymała żadnych uprawnień dostępu do subskrypcji.
Rozwiązanie
Przyznaj tożsamości zarządzanej (lub innemu kontu używanemu w elemencie runbook) odpowiedniego członkostwa w roli w subskrypcji. Dowiedz się więcej
Scenariusz: Nie można pobrać tokenu MSI dla konta
Problem
Podczas pracy z tożsamością zarządzaną przypisaną przez użytkownika na koncie usługi Automation jest wyświetlany błąd podobny do: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b
.
Przyczyna
Przy użyciu tożsamości zarządzanej przypisanej przez użytkownika przed włączeniem przypisanej przez system tożsamości zarządzanej dla konta usługi Automation.
Rozwiązanie
Włącz tożsamość zarządzaną przypisaną przez system dla konta usługi Automation. Następnie użyj tożsamości zarządzanej przypisanej przez użytkownika.
Scenariusz: Próba użycia tożsamości zarządzanej z kontem usługi Automation kończy się niepowodzeniem
Problem
Podczas próby pracy z tożsamościami zarządzanymi na koncie usługi Automation wystąpi błąd podobny do następującego:
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
Przyczyna
Problem ten najczęściej wynika z tego, że nie włączono tożsamości przed próbą jej użycia. Aby to sprawdzić, uruchom następujący element Runbook programu PowerShell na koncie usługi Automation, którego dotyczy problem.
$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"
}
Jeśli problem polega na tym, że nie włączono tożsamości przed próbą jej użycia, powinien wyświetlić się wynik podobny do następującego:
Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}
Rozwiązanie
Aby móc korzystać z usługi tożsamości zarządzanej, musisz włączyć tożsamość dla konta usługi Automation. Zobacz Włączanie tożsamości zarządzanej dla konta usługi Azure Automation
Następne kroki
Jeśli ten artykuł nie rozwiąże problemu, wypróbuj jeden z następujących kanałów, aby uzyskać dodatkową pomoc techniczną:
- Uzyskaj odpowiedzi od ekspertów platformy Azure za pośrednictwem forów platformy Azure.
- Nawiąż połączenie z @AzureSupport. To jest oficjalne konto platformy Microsoft Azure służące do łączenia społeczności platformy Azure z odpowiednimi zasobami: odpowiedziami, pomocą techniczną i ekspertami.
- Zgłoś zdarzenie pomoc techniczna platformy Azure. Przejdź do witryny pomoc techniczna platformy Azure i wybierz pozycję Uzyskaj pomoc techniczną.