Configurar identidades gerenciadas para recursos do Azure em uma VM do Azure usando o PowerShell

As identidades gerenciadas para recursos do Azure são um recurso do Microsoft Entra ID. Cada um dos serviços do Azure que suportam as identidades geridas para os recursos do Azure estão sujeitos à sua própria linha de tempo. Certifique-se de que revê o estado de disponibilidade das identidades geridas para o seu recurso e problemas conhecidos antes de começar.

As identidades geridas para os recursos do Azure proporcionam aos recursos do Azure uma identidade gerida automaticamente no Microsoft Entra ID. Pode utilizar esta identidade para se autenticar em qualquer serviço que suporte a autenticação do Microsoft Entra sem ter credenciais no código.

Neste artigo, usando o PowerShell, você aprenderá a executar as seguintes identidades gerenciadas para operações de recursos do Azure em uma VM do Azure.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

  • Se você não estiver familiarizado com identidades gerenciadas para recursos do Azure, confira a seção de visão geral. Certifique-se de revisar a diferença entre uma identidade gerenciada atribuída pelo sistema e atribuída pelo usuário.
  • Se ainda não tem uma conta do Azure, inscreva-se numa conta gratuita antes de continuar.
  • Para executar os scripts de exemplo, você tem duas opções:
    • Use o Azure Cloud Shell, que você pode abrir usando o botão Experimentar no canto superior direito dos blocos de código.
    • Execute scripts localmente instalando a versão mais recente do Azure PowerShell e, em seguida, entre no Azure usando Connect-AzAccounto .

Identidade gerida atribuída pelo sistema

Nesta seção, explicamos como habilitar e desabilitar a identidade gerenciada atribuída ao sistema usando o Azure PowerShell.

Habilitar a identidade gerenciada atribuída ao sistema durante a criação de uma VM do Azure

Para criar uma VM do Azure com a identidade gerenciada atribuída ao sistema habilitada, sua conta precisa da atribuição de função de Colaborador de Máquina Virtual . Nenhuma outra atribuição de função de diretório do Microsoft Entra é necessária.

  1. Consulte um dos seguintes Quickstarts de VM do Azure, preenchendo apenas as seções necessárias ("Entrar no Azure", "Criar grupo de recursos", "Criar grupo de rede", "Criar a VM").

    Quando chegar à seção "Criar a VM", faça uma pequena modificação na sintaxe do cmdlet New-AzVMConfig . Certifique-se de adicionar um -IdentityType SystemAssigned parâmetro para provisionar a VM com a identidade atribuída pelo sistema habilitada, por exemplo:

    $vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
    

Habilitar a identidade gerenciada atribuída ao sistema em uma VM do Azure existente

Para habilitar a identidade gerenciada atribuída ao sistema em uma VM que foi originalmente provisionada sem ela, sua conta precisa da atribuição de função de Colaborador de Máquina Virtual . Nenhuma outra atribuição de função de diretório do Microsoft Entra é necessária.

  1. Recupere as propriedades da VM usando o Get-AzVM cmdlet. Em seguida, para habilitar uma identidade gerenciada atribuída ao sistema, use a -IdentityTypeopção no cmdlet Update-AzVM :

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
    

Adicionar identidade atribuída ao sistema VM a um grupo

Depois de habilitar a identidade atribuída ao sistema em uma VM, você pode adicioná-la a um grupo. O procedimento a seguir adiciona a identidade atribuída ao sistema de uma VM a um grupo.

  1. Recupere e anote o ObjectID (conforme especificado no Id campo dos valores retornados) da entidade de serviço da VM:

    Get-AzADServicePrincipal -displayname "myVM"
    
  2. Recupere e anote o ObjectID (conforme especificado no Id campo dos valores retornados) do grupo:

    Get-AzADGroup -searchstring "myGroup"
    
  3. Adicione a entidade de serviço da VM ao grupo:

    New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>" 
    

Desabilitar a identidade gerenciada atribuída ao sistema de uma VM do Azure

Para desabilitar a identidade gerenciada atribuída ao sistema em uma VM, sua conta precisa da atribuição de função de Colaborador de Máquina Virtual . Nenhuma outra atribuição de função de diretório do Microsoft Entra é necessária.

Se você tiver uma máquina virtual que não precisa mais da identidade gerenciada atribuída ao sistema, mas ainda precisa de identidades gerenciadas atribuídas pelo usuário, use o seguinte cmdlet:

  1. Recupere as propriedades da VM usando o cmdlet e defina o Get-AzVM-IdentityType parâmetro como UserAssigned:

    $vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
    Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType "UserAssigned" -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

Se você tiver uma máquina virtual que não precisa mais de identidade gerenciada atribuída ao sistema e não tem identidades gerenciadas atribuídas pelo usuário, use os seguintes comandos:

$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

Identidade gerida atribuída pelo utilizador

Nesta seção, você aprenderá a adicionar e remover uma identidade gerenciada atribuída pelo usuário de uma VM usando o Azure PowerShell.

Atribuir uma identidade gerenciada atribuída pelo usuário a uma VM durante a criação

Para atribuir uma identidade atribuída pelo usuário a uma VM, sua conta precisa das atribuições de função Colaborador de Máquina Virtual e Operador de Identidade Gerenciado. Nenhuma outra atribuição de função de diretório do Microsoft Entra é necessária.

  1. Consulte um dos seguintes Quickstarts de VM do Azure, preenchendo apenas as seções necessárias ("Entrar no Azure", "Criar grupo de recursos", "Criar grupo de rede", "Criar a VM").

    Quando chegar à seção "Criar a VM", faça uma pequena modificação na sintaxe do New-AzVMConfig cmdlet. Adicione os -IdentityType UserAssigned parâmetros e -IdentityID para provisionar a VM com uma identidade atribuída pelo usuário. Substitua <VM NAME>,,<SUBSCRIPTION ID><RESROURCE GROUP> e <USER ASSIGNED IDENTITY NAME> com seus próprios valores. Por exemplo:

    $vmConfig = New-AzVMConfig -VMName <VM NAME> -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>..."
    

Atribuir uma identidade gerenciada atribuída pelo usuário a uma VM do Azure existente

Para atribuir uma identidade atribuída pelo usuário a uma VM, sua conta precisa das atribuições de função Colaborador de Máquina Virtual e Operador de Identidade Gerenciado. Nenhuma outra atribuição de função de diretório do Microsoft Entra é necessária.

  1. Crie uma identidade gerenciada atribuída pelo usuário usando o cmdlet New-AzUserAssignedIdentity . Observe a Id saída porque você precisará dessas informações na próxima etapa.

    Importante

    A criação de identidades gerenciadas atribuídas pelo usuário suporta apenas caracteres alfanuméricos, sublinhados e hífen (0-9 ou a-z ou A-Z, _ ou -). Além disso, o nome deve ser limitado de 3 a 128 caracteres para que a atribuição a VM/VMSS funcione corretamente. Para obter mais informações, consulte Perguntas frequentes e problemas conhecidos

    New-AzUserAssignedIdentity -ResourceGroupName <RESOURCEGROUP> -Name <USER ASSIGNED IDENTITY NAME>
    
  2. Recupere as propriedades da VM usando o Get-AzVM cmdlet. Em seguida, para atribuir uma identidade gerenciada atribuída pelo usuário à VM do Azure, use o cmdlet Update-AzVM e -IdentityID ative o -IdentityTypemesmo. O valor para o parâmetro é o-IdentityIdId que você anotou na etapa anterior. Substitua <VM NAME>, , , <SUBSCRIPTION ID><RESROURCE GROUP>e <USER ASSIGNED IDENTITY NAME> pelos seus próprios valores.

    Aviso

    Para manter quaisquer identidades gerenciadas atribuídas anteriormente pelo usuário atribuídas à VM, consulte a Identity propriedade do objeto VM (por exemplo, $vm.Identity). Se quaisquer identidades gerenciadas atribuídas ao usuário forem retornadas, inclua-as no comando a seguir junto com a nova identidade gerenciada atribuída ao usuário que você gostaria de atribuir à VM.

    $vm = Get-AzVM -ResourceGroupName <RESOURCE GROUP> -Name <VM NAME>
    Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
    

Remover uma identidade gerenciada atribuída pelo usuário de uma VM do Azure

Para remover uma identidade atribuída pelo usuário a uma VM, sua conta precisa da atribuição de função de Colaborador de Máquina Virtual .

Se sua VM tiver várias identidades gerenciadas atribuídas pelo usuário, você poderá remover todas, exceto a última, usando os comandos a seguir. Certifique-se de que substitui os valores de parâmetros <RESOURCE GROUP> e <VM NAME> pelos seus próprios valores. A <USER ASSIGNED IDENTITY NAME> é a propriedade name da identidade gerenciada atribuída pelo usuário, que deve permanecer na VM. Essas informações podem ser detetadas usando uma consulta para procurar a Identity propriedade do objeto VM. Por exemplo: $vm.Identity

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType UserAssigned -IdentityID <USER ASSIGNED IDENTITY NAME>

Se sua VM não tiver uma identidade gerenciada atribuída pelo sistema e você quiser remover todas as identidades gerenciadas atribuídas pelo usuário dela, use o seguinte comando:

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None

Se sua VM tiver identidades gerenciadas atribuídas pelo sistema e pelo usuário, você poderá remover todas as identidades gerenciadas atribuídas pelo usuário alternando para usar apenas identidades gerenciadas atribuídas pelo sistema.

$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType "SystemAssigned"

Próximos passos