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.
- Erstellen Sie die systemseitig verwaltete Identität des Automation-Kontos, und verwenden Sie sie für die Authentifizierung.
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
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.