Partilhar via


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.

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

 Captura de tela que mostra a atribuição de atribuições de Função do Azure.

Captura de tela que mostra como adicionar atribuição de função.

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.