Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье рассматриваются решения проблем, при возникновении которых может потребоваться использование управляемой идентичности с учетной записью для автоматизации. Общие сведения об использовании управляемого удостоверения с учетными записями Cлужба автоматизации Azure см. в статье Обзор аутентификации учетных записей Cлужба автоматизации Azure.
Сценарий: Runbook с системой присвоенной управляемой идентичностью завершается сбоем с сообщением об ошибке 400
Проблема
Руководство с управляемым удостоверением, назначенным системой, завершается с ошибкой unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request).
Причина
Вы не назначили права доступа после создания системного управляемого удостоверения.
Решение
Убедитесь, что назначены соответствующие разрешения для системного управляемого удостоверения. Использование управляемого системой удостоверения для учетной записи Cлужба автоматизации Azure
Сценарий. Управляемое удостоверение в Runbook не может пройти проверку подлинности в Azure
Проблема
При использовании управляемого удостоверения в Runbook возникает ошибка: 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)
Причина
Это может произойти в следующих случаях:
Причина 1: Вы используете системно управляемое удостоверение учетной записи автоматизации, которое еще не создано, и
Code Connect-AzAccount -Identityпытается выполнить проверку подлинности в Azure и выполнить сценарий Runbook в Azure или на гибридной рабочей роли Runbook.Cause 2: Учетной записи автоматизации присвоено управляемое удостоверение пользователя, а не управляемое удостоверение системы, и
Code Connect-AzAccount -Identityона пытается выполнить аутентификацию в Azure и запустить откат Runbook на гибридном рабочем процессе Runbook на виртуальной машине Azure с использованием управляемого удостоверения виртуальной машины Azure.
Решение
Resolution 1. Необходимо создать управляемое удостоверение системы учетной записи автоматизации и предоставить ему доступ к ресурсам Azure.
Решение 2. В соответствии с вашими требованиями вы можете:
- Создайте управляемое удостоверение системы учетной записи службы автоматизации и используйте его для проверки подлинности.
Или - Удалите управляемое удостоверение, назначенное пользователем учетной записи службы автоматизации.
- Создайте управляемое удостоверение системы учетной записи службы автоматизации и используйте его для проверки подлинности.
Сценарий: Не удается найти назначенное пользователем управляемое удостоверение, чтобы добавить его в учетную запись автоматизации.
Проблема
Вы хотите добавить назначаемое пользователем управляемое удостоверение в учетную запись Службы автоматизации. Однако вы не можете найти учетную запись на панели автоматизации.
Причина
Эта проблема возникает, если у вас отсутствуют следующие разрешения для пользовательски назначенного управляемого удостоверения, чтобы его просматривать на панели автоматизации.
Microsoft.ManagedIdentity/userAssignedIdentities/*/readMicrosoft.ManagedIdentity/userAssignedIdentities/*/assign/action
Примечание.
Указанные выше разрешения предоставляются по умолчанию на роли Managed Identity Operator и Managed Identity Contributor.
Решение
Убедитесь, что у вас есть разрешение на роль оператора удостоверений, чтобы добавить управляемое удостоверение, назначаемое пользователем, в учетную запись службы автоматизации.
Сценарий: Runbook завершается ошибкой "this.Client.SubscriptionId не может быть null."
Проблема
Модуль Runbook с помощью управляемого удостоверения Connect-AzAccount -Identity, который пытается управлять объектами Azure, не работает успешно и регистрирует следующую ошибку — 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
Причина
Это может произойти, если управляемое удостоверение (или другая учетная запись, используемая в runbook), не была предоставлена каких-либо разрешений на доступ к подписке.
Решение
Предоставьте управляемому удостоверению (или другой учетной записи, используемой в runbook) соответствующую роль в подписке. Подробнее
Сценарий: не удалось получить токен MSI для учетной записи
Проблема
При работе с назначаемым пользователем управляемым удостоверением в вашей учетной записи автоматизации, вы получаете сообщение об ошибке, похожее на: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b.
Причина
Использование управляемого удостоверения, назначаемого пользователем, перед включением управляемого удостоверения, назначаемого системой, для учетной записи службы автоматизации.
Решение
Включите управляемое удостоверение, назначаемое системой, для учетной записи службы автоматизации. Используйте назначенное пользователем управляемое удостоверение.
Сценарий: попытка использовать управляемое удостоверение с учетной записью службы автоматизации завершается сбоем
Проблема
При попытке работы с управляемыми удостоверениями в вашей учетной записи Automation, возникает ошибка следующего вида.
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
Причина
Наиболее распространенной причиной этого является то, что вы не активировали удостоверение до того, как попытались его использовать. Чтобы проверить это, запустите следующий сценарий PowerShell в соответствующей учетной записи службы автоматизации.
$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"
}
Если проблема в том, что вы не включили идентификатор, прежде чем его использовать, вы должны увидеть результат, подобный этому:
Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}
Решение
Прежде чем вы сможете использовать службу управляемых удостоверений, необходимо задать удостоверение для вашей учетной записи автоматизации. См. Включение управляемого удостоверения для учетной записи Cлужба автоматизации Azure
Следующие шаги
Если эта статья не помогла вам решить проблему, попробуйте использовать один из следующих каналов для получения дополнительной поддержки.
- Получите ответы от экспертов Azure через форумы Azure.
- Свяжитесь с @AzureSupport. Это официальная Microsoft Azure учетная запись для подключения сообщества Azure к правильным ресурсам: ответы, поддержка и эксперты.
- Если вы планируете открыть случай поддержки для неразрешенной проблемы, соберите необходимые диагностические данные перед его открытием. См. Данные, которые необходимо собрать при открытии дела для Microsoft Cлужба автоматизации Azure.
- Отправить запрос в поддержку Azure. Перейдите на сайт поддержка Azure и выберите Get Support.