Résoudre les problèmes d’identité managée Azure Automation
Cet article traite des solutions aux problèmes que vous pourriez rencontrer en utilisant une identité managée avec votre compte Automation. Pour obtenir des informations générales sur l’utilisation d’une identité managée avec des comptes Automation, consultez Vue d’ensemble de l’authentification de compte Azure Automation.
Scénario : le runbook avec une identité managée affectée par le système échoue avec le message d’erreur 400
Problème
Le runbook avec une identité managée affectée par le système échoue avec l’erreur suivante : unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request)
Cause
Vous n’avez pas attribué d’autorisations après la création de l’identité managée affectée par le système.
Résolution
Veillez à attribuer les autorisations appropriées pour l’identité managée affectée par le système. Utilisation d’une identité managée affectée par le système pour un compte Azure Automation
Scénario : Une identité managée dans un runbook ne peut pas s’authentifier auprès d’Azure
Problème
Quand vous utilisez une identité managée dans votre runbook, vous recevez une erreur de type : 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)
Cause
Cela peut se produire dans les cas suivants :
Cause 1 : vous utilisez l’identité managée système du compte Automation, qui n’a pas encore été créée ;
Code Connect-AzAccount -Identity
tente de s’authentifier auprès d’Azure et d’exécuter un runbook dans Azure ou sur un Runbook Worker hybride.Cause 2 : le compte Automation dispose d’une identité managée utilisateur et non d’une identité managée système ;
Code Connect-AzAccount -Identity
tente de s’authentifier auprès d’Azure et d’exécuter un runbook sur un Runbook Worker hybride de machine virtuelle Azure en utilisant l’identité managée système de machine virtuelle Azure.
Résolution
Résolution 1 : vous devez créer l’identité managée système du compte Automation et lui accorder un accès aux ressources Azure.
Résolution 2 : selon vos besoins, vous pouvez :
- Créer l’identité managée système du compte Automation et vous en servir pour vous authentifier.
Ou - Supprimer l’identité managée affectée par l’utilisateur du compte Automation.
- Créer l’identité managée système du compte Automation et vous en servir pour vous authentifier.
Scénario : Impossible de trouver l’identité managée affectée par l’utilisateur pour l’ajouter au compte Automation
Problème
Vous souhaitez ajouter une identité managée affectée par l’utilisateur au compte Automation. Or, vous ne trouvez pas le compte dans le panneau Automation.
Cause
Ce problème se produit si vous n’avez pas les autorisations suivantes vous permettant d’afficher l’identité managée affectée par l’utilisateur dans le panneau Automation.
Microsoft.ManagedIdentity/userAssignedIdentities/*/read
Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action
Remarque
Les autorisations ci-dessus sont accordées par défaut à l’Opérateur d’identité managée et au Contributeur d’identité managée.
Résolution
Veillez à disposer de l’d’une autorisation de rôle Opérateur d’identité pour ajouter l’identité managée affectée par l’utilisateur à votre compte Automation.
Scénario : Le runbook échoue avec le message d’erreur « this.Client.SubscriptionId ne peut pas être null. »
Problème
Votre runbook utilisant une identité managée Connect-AzAccount -Identity qui tente de gérer des objets Azure échoue à fonctionner correctement et consigne l’erreur suivante : 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
Cause
Ceci peut se produire quand l’identité managée (ou un autre compte utilisé dans le runbook) n’a pas reçu les autorisations nécessaires pour accéder à l’abonnement.
Résolution
Accordez à l’identité managée (ou à un autre compte utilisé dans le runbook) une appartenance au rôle approprié dans l’abonnement. En savoir plus
Scénario : Échec d’obtention du jeton MSI pour le compte
Problème
Quand vous utilisez une identité managée affectée par l’utilisateur dans votre compte Automation, vous recevez une erreur semblable à la suivante : Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b
.
Cause
Utilisation d’une identité managée affectée par l’utilisateur avant l’activation d’une identité managée affectée par le système pour votre compte Automation.
Résolution
Activez une identité managée affectée par le système pour votre compte Automation. Ensuite, utilisez l’identité managée affectée par l’utilisateur.
Scénario : Échec de la tentative d’utilisation d’une identité managée avec un compte Automation
Problème
Lorsque vous essayez d’utiliser des identités managées dans votre compte Automation, vous rencontrez une erreur semblable à celle-ci :
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
Cause
La cause la plus courante est que vous n’avez pas activé l’identité avant d’essayer de l’utiliser. Pour vérifier cela, exécutez le runbook PowerShell suivant dans le compte Automation concerné.
$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"
}
Si le problème est que vous n’avez pas activé l’identité avant de tenter de l’utiliser, vous devriez obtenir un résultat similaire à ce qui suit :
Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}
Résolution
Vous devez activer une identité pour votre compte Automation avant de pouvoir utiliser le service d’identité managée. Voir Activer une identité managée pour votre compte Azure Automation
Étapes suivantes
Si cet article ne vous permet pas de résoudre votre problème, utilisez l’un des canaux suivants pour obtenir une aide supplémentaire :
- Obtenez des réponses de la part d’experts Azure via les Forums Azure.
- Contactez @AzureSupport. Il s’agit du compte Microsoft Azure officiel qui permet à la communauté Azure d’accéder aux ressources dont elle a besoin : réponses, support et experts.
- Signaler un incident au support Azure Accédez au site du support Azure, puis sélectionnez Obtenir de l’aide.