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.

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 korzystający z tożsamości zarządzanej Połączenie-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

 Zrzut ekranu przedstawiający przypisywanie przypisań ról platformy Azure.

Zrzut ekranu przedstawiający sposób dodawania przypisania roli.

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.
  • 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ą.