Behandlung von Problemen mit verwalteten Identitäten für Azure Automation

In diesem Artikel werden Lösungen für Probleme beschrieben, die bei Verwendung einer verwalteten Identität mit Ihrem Automation-Konto auftreten können. Allgemeine Informationen zur Verwendung von verwalteten Identitäten mit Automation-Konten finden Sie unter Übersicht über die Azure Automation-Kontoauthentifizierung.

Szenario: 400-Fehler bei einem Runbook mit einer systemseitig zugewiesenen verwalteten Identität

Abgang

Fehler unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request) bei einem Runbook mit einer systemseitig zugewiesenen verwalteten Identität

Ursache

Sie haben nach dem Erstellen der systemseitig zugewiesenen verwalteten Identität keine Berechtigungen zugewiesen.

Lösung

Stellen Sie sicher, dass Sie der systemseitig zugewiesenen verwalteten Identität die erforderlichen Berechtigungen zuweisen. Verwenden einer vom System zugewiesenen verwalteten Identität für ein Azure Automation Konto

Szenario: Verwaltete Identität in einem Runbook kann sich nicht bei Azure authentifizieren

Problem

Wenn Sie eine verwaltete Identität in Ihrem Runbook verwenden, erhalten Sie eine Fehlermeldung wie die folgende: 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)

Ursache

Dies kann eine der folgenden Ursachen haben:

  • Ursache 1: Sie verwenden die systemseitig verwaltete Identität des Automation-Kontos, diese wurde jedoch noch nicht erstellt, und von Code Connect-AzAccount -Identity wird versucht, die Authentifizierung bei Azure durchzuführen und ein Runbook in Azure oder auf einem Hybrid Runbook Worker auszuführen.

  • Ursache 2: Dem Automation-Konto ist keine systemseitig verwaltete Identität, sondern eine benutzerseitig verwaltete Identität zugewiesen, und von Code Connect-AzAccount -Identity wird versucht, die Authentifizierung bei Azure durchzuführen und ein Runbook auf einem Hybrid Runbook Worker eines virtuellen Azure-Computers mit der systemseitig verwalteten Identität des virtuellen Azure-Computers auszuführen.

Lösung

  • Lösung 1: Sie müssen die systemseitig verwaltete Identität des Automation-Kontos erstellen und ihr Zugriff auf die Azure-Ressourcen gewähren.

  • Lösung 2: Abhängig von Ihren Anforderungen haben Sie folgende Möglichkeiten:

    • Erstellen Sie die systemseitig verwaltete Identität des Automation-Kontos, und verwenden Sie sie für die Authentifizierung.
      Oder:
    • Löschen Sie die benutzerseitig zugewiesene verwaltete Identität des Automation-Kontos.

Szenario: Die benutzerseitig zugewiesene verwaltete Identität wurde nicht gefunden, um sie dem Automation-Konto hinzuzufügen.

Problem

Sie möchten dem Automation-Konto eine benutzerseitig zugewiesene verwaltete Identität hinzufügen. Sie können das Konto aber auf dem Blatt „Automation“ nicht finden.

Ursache

Dieses Problem tritt auf, wenn Sie nicht über die folgenden Berechtigungen für die benutzerseitig zugewiesene verwaltete Identität verfügen, um sie auf dem Blatt „Automation“ anzuzeigen.

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

Hinweis

Die oben genannten Berechtigungen werden standardmäßig für „Mitwirkender für verwaltete Identität“ und „Operator für verwaltete Identität“ gewährt.

Lösung

Stellen Sie sicher, dass Sie über die Berechtigung der Rolle Operator für verwaltete Identität verfügen, um die benutzerseitig zugewiesene verwaltete Identität dem Automation-Konto hinzuzufügen.

Szenario: Runbook schlägt mit der Fehlermeldung „this.Client.SubscriptionId kann nicht Null sein“ fehl.

Problem

Ihr Runbook, das eine verwaltete Identität „Connect-AzAccount -Identity“ verwendet, die versucht, Azure-Objekte zu verwalten, funktioniert nicht erfolgreich und protokolliert den folgenden Fehler: 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

Ursache

Dies kann passieren, wenn der verwalteten Identität (oder einem anderen Konto, das im Runbook verwendet wird) keine Berechtigungen für den Zugriff auf das Abonnement gewährt wurden.

Lösung

Gewähren Sie der verwalteten Identität (oder einem anderen Konto, das im Runbook verwendet wird) eine geeignete Rollenmitgliedschaft im Abonnement. Weitere Informationen

 Screenshot: Zuweisung der Azure-Rollenzuweisungen.

Screenshot: Hinzufügen der Rollenzuweisung.

Szenario: Fehler beim Abrufen des MSI-Tokens für das Konto

Problem

Wenn Sie in Ihrem Automation-Konto mit einer benutzerseitig zugewiesenen verwalteten Identität arbeiten, erhalten Sie eine ähnliche Fehlermeldung wie diese: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b.

Ursache

Verwenden einer benutzerseitig zugewiesenen verwalteten Identität vor dem Aktivieren einer systemseitig zugewiesenen verwalteten Identität für Ihr Automation-Konto.

Lösung

Aktivieren einer systemseitig zugewiesenen verwalteten Identität für Ihr Automation-Konto. Verwenden Sie dann die benutzerseitig zugewiesene verwaltete Identität.

Szenario: Fehler bei dem Versuch, eine verwaltete Identität mit einem Automation-Konto zu verwenden

Problem

Bei dem Versuch, mit verwalteten Identitäten in Ihrem Automation-Konto zu arbeiten, tritt ein Fehler wie der folgende auf:

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

Ursache

Die häufigste Ursache dafür ist, dass Sie die Identität vor dem Versuch, sie zu verwenden, nicht aktiviert haben. Um dies zu überprüfen, führen Sie das folgende PowerShell-Runbook im betroffenen Automation-Konto aus.

$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"
}

Wenn das Problem darin besteht, dass Sie die Identität vor der Verwendung nicht aktiviert haben, sollten Sie ein ähnliches Ergebnis wie das folgende erhalten:

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

Lösung

Sie müssen eine Identität für Ihr Automation-Konto aktivieren, bevor Sie den Dienst für verwaltete Identitäten verwenden können. Siehe Aktivieren einer verwalteten Identität für Ihr Azure Automation-Konto

Nächste Schritte

Wenn Sie Ihr Problem nicht mit diesem Artikel lösen konnten, besuchen Sie einen der folgenden Kanäle, um weitere Unterstützung zu erhalten:

  • Erhalten Sie Antworten von Azure-Experten über Azure-Foren.
  • Verbinden mit @AzureSupport. Dies ist das offizielle Microsoft Azure-Konto, über das die Azure-Community Zugriff auf die richtigen Ressourcen erhält: Antworten, Support und Experten.
  • Erstellen Sie einen Azure-Supportfall. Wechseln Sie zur Azure-Supportwebsite, und wählen Sie Support erhalten aus.