Resolver problemas das identidades geridas da Automatização do Azure
Este artigo discute soluções para problemas que você pode encontrar ao usar uma identidade gerenciada com sua conta de automação. Para obter informações gerais sobre como usar a identidade gerenciada com contas de automação, consulte Visão geral da autenticação de conta de automação do Azure.
Cenário: Runbook com identidade gerenciada atribuída ao sistema falha com mensagem de erro 400
Problema
Runbook com identidade gerenciada atribuída ao sistema falha com o erro como unable to acquire for tenant organizations with error ManagedIdentityCredential authentication failed. Managed System Identity not found! Status 400 (Bad Request)
Motivo
Você não atribuiu permissões depois de criar a identidade gerenciada atribuída ao sistema.
Resolução
Certifique-se de atribuir as permissões apropriadas para a identidade gerenciada atribuída ao sistema. Utilizar a identidade gerida atribuída pelo sistema para uma conta de Automatização do Azure
Cenário: A Identidade Gerenciada em um Runbook não pode ser autenticada no Azure
Problema
Ao usar uma Identidade Gerenciada em seu runbook, você recebe um erro como: 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)
Motivo
Isto pode acontecer quando:
Causa 1: Você usa a Identidade Gerenciada do Sistema da conta de automação, que ainda não foi criada, e tenta
Code Connect-AzAccount -Identity
autenticar no Azure e executar um runbook no Azure ou em um Runbook Worker híbrido.Causa 2: A conta de Automação tem uma identidade gerenciada pelo Usuário atribuída e não uma Identidade Gerenciada pelo Sistema e o -
Code Connect-AzAccount -Identity
tenta autenticar no Azure e executar um runbook em um Runbook Worker Híbrido de máquina virtual do Azure usando a Identidade Gerenciada do Sistema de VM do Azure.
Resolução
Resolução 1: Você deve criar a Identidade Gerenciada do Sistema de Conta de Automação e conceder-lhe acesso aos Recursos do Azure.
Resolução 2: Conforme apropriado para suas necessidades, você pode:
- Crie a Identidade Gerenciada do Sistema de Conta de Automação e use-a para autenticar.
Ou - Exclua a identidade gerenciada atribuída ao usuário da conta de automação.
- Crie a Identidade Gerenciada do Sistema de Conta de Automação e use-a para autenticar.
Cenário: Não é possível localizar a identidade gerenciada atribuída ao usuário para adicioná-la à conta de automação
Problema
Pretende adicionar uma identidade gerida atribuída pelo utilizador à conta de Automatização. No entanto, não é possível encontrar a conta no separador Automatização.
Motivo
Este problema ocorre quando não tem as seguintes permissões para a identidade gerida atribuída pelo utilizador para vê-la no separador Automatização.
Microsoft.ManagedIdentity/userAssignedIdentities/*/read
Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action
Nota
As permissões acima são concedidas por padrão ao Operador de Identidade Gerenciada e ao Colaborador de Identidade Gerenciada.
Resolução
Verifique se você tem permissão para a função Operador de Identidade para adicionar a identidade gerenciada atribuída pelo usuário à sua conta de Automação.
Cenário: Runbook falha com "isto. Client.SubscriptionId não pode ser null." mensagem de erro
Problema
Seu runbook usando uma identidade gerenciada Connect-AzAccount -Identity que tenta gerenciar objetos do Azure, não funciona com êxito e registra o seguinte erro - 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
Motivo
Isso pode acontecer quando a Identidade Gerenciada (ou outra conta usada no runbook) não recebeu nenhuma permissão para acessar a assinatura.
Resolução
Conceda à Identidade Gerida (ou a outra conta utilizada no runbook) uma associação de função adequada na subscrição. Mais informações
Cenário: Falha ao obter o token MSI para a conta
Problema
Ao trabalhar com uma identidade gerenciada atribuída pelo usuário em sua conta de automação, você recebe um erro semelhante a: Failed to get MSI token for account a123456b-1234-12a3-123a-aa123456aa0b
.
Motivo
Usando uma identidade gerenciada atribuída pelo usuário antes de habilitar uma identidade gerenciada atribuída pelo sistema para sua conta de automação.
Resolução
Habilite uma identidade gerenciada atribuída ao sistema para sua conta de automação. E, em seguida, utilize a identidade gerida atribuída pelo utilizador.
Cenário: Falha na tentativa de usar a identidade gerenciada com a conta de automação
Problema
Quando tenta trabalhar com identidades geridas na sua conta de Automatização, encontra um erro como este:
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
Causa
A causa mais comum é não ter ativado a identidade antes de a tentar usar. Para verificar isto, execute o seguinte runbook do PowerShell na conta de Automatização afetada.
$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"
}
Se o problema estiver em não ter ativado a identidade antes de tentar usá-la, verá um resultado semelhante a este:
Request Failed with Status: 400, Message: {"Message":"No managed identity was found for Automation account xxxxxxxxxxxx"}
Resolução
Deve ativar uma identidade para a sua conta de Automatização antes de poder usar o serviço de identidade gerido. Consulte Habilitar uma identidade gerenciada para sua conta de Automação do Azure
Próximos passos
Se este artigo não resolver o problema, tente um dos seguintes canais para obter suporte adicional:
- Obtenha respostas de especialistas do Azure através dos Fóruns do Azure.
- Conecte-se com @AzureSupport. Esta é a conta oficial do Microsoft Azure para conectar a comunidade do Azure aos recursos certos: respostas, suporte e especialistas.
- Registre um incidente de suporte do Azure. Vá para o site de suporte do Azure e selecione Obter Suporte.