Configurar identidades gerenciadas em máquinas virtuais (VMs) do Azure

Identidades gerenciadas para recursos do Azure é 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.

Para obter informações sobre a definição e os detalhes da Política do Azure, consulte Usar a Política do Azure para atribuir identidades gerenciadas (visualização).

Neste artigo, você aprenderá a habilitar e desabilitar identidades gerenciadas atribuídas pelo sistema e pelo usuário para uma Máquina Virtual (VM) do Azure, usando o portal do Azure.

Pré-requisitos

  • Se você não estiver familiarizado com identidades gerenciadas para recursos do Azure, confira a seção de visão geral.
  • Se ainda não tem uma conta do Azure, inscreva-se numa conta gratuita antes de continuar.

Identidade gerida atribuída pelo sistema

Nesta seção, você aprenderá a habilitar e desabilitar a identidade gerenciada atribuída pelo sistema para VM usando o portal do Azure.

Ativar a identidade gerida atribuída pelo sistema durante a criação de uma VM

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

  • Na guia Gerenciamento na seção Identidade, alterne Identidade do serviço gerenciado para Ativado.

Captura de tela mostrando como habilitar a identidade atribuída ao sistema durante a criação da VM.

Consulte os seguintes Guias de início rápido para criar uma VM:

Ativar a identidade gerida atribuída pelo sistema numa VM existente

Gorjeta

As etapas neste artigo podem variar ligeiramente com base no portal a partir do qual você começou.

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. Entre no portal do Azure usando uma conta associada à assinatura do Azure que contém a VM.

  2. Navegue até a Máquina Virtual desejada e selecione Identidade.

  3. Em Sistema atribuído, Estado, selecione Ativado e, em seguida, clique em Guardar:

    Captura de ecrã que mostra a página

Remover identidade gerenciada atribuída ao sistema de uma VM

Para remover a identidade gerenciada atribuída ao sistema de 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 de identidade gerenciada atribuída ao sistema:

  1. Entre no portal do Azure usando uma conta associada à assinatura do Azure que contém a VM.

  2. Navegue até a Máquina Virtual desejada e selecione Identidade.

  3. Em Sistema atribuído, Estado, selecione Desativado e, em seguida, clique em Guardar:

    Captura de ecrã da página de configuração.

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 portal do Azure.

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

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.

Atualmente, o portal do Azure não oferece suporte à atribuição de uma identidade gerenciada atribuída pelo usuário durante a criação de uma VM. Em vez disso, consulte um dos seguintes artigos de início rápido de criação de VM para primeiro criar uma VM e, em seguida, prossiga para a próxima seção para obter detalhes sobre como atribuir uma identidade gerenciada atribuída pelo usuário à VM:

Atribuir uma identidade gerenciada atribuída pelo usuário a uma VM 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. Entre no portal do Azure usando uma conta associada à assinatura do Azure que contém a VM.

  2. Navegue até a VM desejada e clique em Identidade, Usuário atribuído e, em seguida, em +Adicionar.

    Captura de ecrã que mostra a página Identidade com o Utilizador atribuído selecionado e o botão Adicionar realçado.

  3. Clique na identidade atribuída pelo usuário que você deseja adicionar à VM e clique em Adicionar.

    Captura de tela mostrando a adição de uma identidade gerenciada atribuída pelo usuário à VM.

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

Para remover uma identidade atribuída pelo usuário de 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.

  1. Entre no portal do Azure usando uma conta associada à assinatura do Azure que contém a VM.

  2. Navegue até a VM desejada e selecione Identidade, Usuário atribuído, o nome da identidade gerenciada atribuída pelo usuário que você deseja excluir e clique em Remover (clique em Sim no painel de confirmação).

    Captura de tela mostrando como remover a identidade gerenciada atribuída pelo usuário de uma VM

Próximos passos

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

  • Habilitar e desabilitar a identidade gerenciada atribuída pelo sistema em uma VM do Azure
  • Adicionar e remover uma identidade gerenciada atribuída pelo usuário em uma VM do Azure

Se ainda não tem uma conta do Azure, inscreva-se numa conta gratuita antes de continuar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Identidade gerida atribuída pelo sistema

Nesta seção, você aprenderá a habilitar e desabilitar a identidade gerenciada atribuída ao sistema em uma VM do Azure usando a CLI do Azure.

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. Crie uma grupo de recursos para contenção e implementação da VM e os respetivos recursos relacionados, utilizando az group create. Pode ignorar este passo se já tiver o grupo de recursos que pretende utilizar em vez disso:

    az group create --name myResourceGroup --location westus
    
  2. Crie uma VM com az vm create. O exemplo a seguir cria uma VM chamada myVM com uma identidade gerenciada atribuída ao sistema, conforme solicitado pelo --assign-identity parâmetro, com o especificado --role e --scope. Os parâmetros --admin-username e --admin-password especificam o nome e a palavra-passe da conta de utilizador administrativo para início de sessão na máquina virtual. Atualize estes valores conforme adequado para o seu ambiente:

    az vm create --resource-group myResourceGroup --name myVM --image win2016datacenter --generate-ssh-keys --assign-identity --role contributor --scope mySubscription --admin-username azureuser --admin-password myPassword12
    

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

Para habilitar a identidade gerenciada atribuída pelo 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.

  1. Se estiver a utilizar a CLI do Azure numa consola local, primeiro inicie sessão no Azure com az login. Use uma conta associada à assinatura do Azure que contém a VM.

    az login
    
  2. Use az vm identity assign com o identity assign comando enable the system-assigned identity to an existing VM:

    az vm identity assign -g myResourceGroup -n myVm
    

Desabilitar a identidade 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 atribuída pelo sistema, mas ainda precisa de identidades atribuídas pelo usuário, use o seguinte comando:

az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned' 

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

Nota

O valor none diferencia maiúsculas de minúsculas. Deve ser minúscula.

az vm update -n myVM -g myResourceGroup --set identity.type="none"

Identidade gerida atribuída pelo utilizador

Nesta seção, você aprenderá como adicionar e remover uma identidade gerenciada atribuída pelo usuário de uma VM do Azure usando a CLI do Azure. Se você criar sua identidade gerenciada atribuída pelo usuário em um RG diferente da sua VM. Você terá que usar a URL da sua identidade gerenciada para atribuí-la à sua VM. Por exemplo:

--identities "/subscriptions/<SUBID>/resourcegroups/<RESROURCEGROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER_ASSIGNED_ID_NAME>"

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

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

  1. Pode ignorar este passo se já tiver um grupo de recursos que gostaria de utilizar. Crie um grupo de recursos para contenção e implantação de sua identidade gerenciada atribuída pelo usuário, usando az group create. Certifique-se de que substitui os valores de parâmetros <RESOURCE GROUP> e <LOCATION> pelos seus próprios valores. :

    az group create --name <RESOURCE GROUP> --location <LOCATION>
    
  2. Crie uma identidade gerida atribuída pelo utilizador com az identity create. O parâmetro -g especifica o grupo de recursos onde a identidade gerida atribuída pelo utilizador é criada e o parâmetro -n especifica o respetivo nome.

    Importante

    Quando você cria identidades gerenciadas atribuídas pelo usuário, o nome deve começar com uma letra ou número e pode incluir uma combinação de caracteres alfanuméricos, hífenes (-) e sublinhados (_). Para que a atribuição a uma máquina virtual ou a uma escala de máquina virtual funcione corretamente, o nome é limitado a 24 caracteres. Para obter mais informações, veja FAQs e problemas conhecidos.

    az identity create -g myResourceGroup -n myUserAssignedIdentity
    

    A resposta contém detalhes para a identidade gerenciada atribuída pelo usuário criada, semelhante à seguinte. O valor de ID de recurso atribuído à identidade gerenciada atribuída pelo usuário é usado na etapa a seguir.

    {
        "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. Crie uma VM com az vm create. O exemplo a seguir cria uma VM associada à nova identidade atribuída pelo usuário, conforme especificado pelo --assign-identity parâmetro, com o especificado --role e --scope. Certifique-se de substituir os <RESOURCE GROUP>valores , <VM NAME>, , <PASSWORD><USER NAME>, <ROLE><USER ASSIGNED IDENTITY NAME>, e <SUBSCRIPTION> parâmetro por seus próprios valores.

    az vm create --resource-group <RESOURCE GROUP> --name <VM NAME> --image <SKU linux image>  --admin-username <USER NAME> --admin-password <PASSWORD> --assign-identity <USER ASSIGNED IDENTITY NAME> --role <ROLE> --scope <SUBSCRIPTION> 
    

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 atribuída ao utilizador com az identity create. O -g parâmetro especifica o grupo de recursos onde a identidade atribuída pelo usuário é criada e o -n parâmetro especifica seu nome. Certifique-se de que substitui os valores de parâmetros <RESOURCE GROUP>e <USER ASSIGNED IDENTITY NAME> pelos seus próprios valores:

    Importante

    Atualmente, não há suporte para a criação de identidades gerenciadas atribuídas pelo usuário com caracteres especiais (ou seja, sublinhado) no nome. Utilize caracteres alfanuméricos. Volte mais tarde para obter atualizações. Para obter mais informações, consulte Perguntas frequentes e problemas conhecidos

    az identity create -g <RESOURCE GROUP> -n <USER ASSIGNED IDENTITY NAME>
    

    A resposta contém detalhes para a identidade gerenciada atribuída pelo usuário criada, semelhante à seguinte.

    {
      "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>/credentials?tid=5678&oid=9012&aid=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. Atribua a identidade atribuída pelo usuário à sua VM usando az vm identity assign. 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 de recurso name da identidade gerenciada atribuída pelo usuário, conforme criada na etapa anterior. Se você criou sua identidade gerenciada atribuída pelo usuário em um RG diferente da sua VM. Terá de utilizar o URL da sua identidade gerida.

    az vm identity assign -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>
    

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 esta for a única identidade gerenciada atribuída pelo usuário atribuída à máquina virtual, UserAssigned será removida do valor do tipo de identidade. Certifique-se de que substitui os valores de parâmetros <RESOURCE GROUP> e <VM NAME> pelos seus próprios valores. A <USER ASSIGNED IDENTITY> será a propriedade da name identidade atribuída pelo usuário, que pode ser encontrada na seção de identidade da máquina virtual usando az vm identity show:

az vm identity remove -g <RESOURCE GROUP> -n <VM NAME> --identities <USER ASSIGNED IDENTITY>

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

Nota

O valor none diferencia maiúsculas de minúsculas. Deve ser minúscula.

az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null

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

az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null 

Próximos passos

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 -IdentityType opçã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 Get-AzVM cmdlet e defina o -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 tiver 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 -IdentityType cmdlet Update-AzVM e -IdentityID ative o mesmo. O valor para o-IdentityId parâmetro é o Id 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>
    
    # Get the list of existing identity IDs and then append to it
    $identityIds = $vm.Identity.UserAssignedIdentities.Keys
    $uid = "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
    $identityIds = $identityIds + $uid 
    
    # Update the VM with added identity IDs
    Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID $uid 
    

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

Neste artigo, usando o modelo de implantação do Azure Resource Manager, você aprenderá a executar as seguintes identidades gerenciadas para operações de recursos do Azure em uma VM do Azure:

Pré-requisitos

  • Se você não estiver familiarizado com o uso do modelo de implantação do Azure Resource Manager, 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.

Modelos do Azure Resource Manager

Tal como acontece com o portal e os scripts do Azure, os modelos do Azure Resource Manager permitem-lhe implementar recursos novos ou modificados definidos por um grupo de recursos do Azure. Várias opções estão disponíveis para edição e implantação de modelos, tanto locais quanto baseadas em portal, incluindo:

Independentemente da opção escolhida, a sintaxe do modelo é a mesma durante a implantação inicial e a reimplantação. A habilitação de um sistema ou identidade gerenciada atribuída pelo usuário em uma VM nova ou existente é feita da mesma maneira. Além disso, por padrão, o Azure Resource Manager faz uma atualização incremental para implantações.

Identidade gerida atribuída pelo sistema

Nesta seção, você habilitará e desabilitará uma identidade gerenciada atribuída ao sistema usando um modelo do Azure Resource Manager.

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

Para habilitar a identidade gerenciada atribuída pelo 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.

  1. Quer inicie sessão no Azure localmente ou através do portal do Azure, utilize uma conta associada à subscrição do Azure que contém a VM.

  2. Para habilitar a identidade gerenciada atribuída ao sistema, carregue o modelo em um editor, localize o Microsoft.Compute/virtualMachines recurso de interesse dentro da resources seção e adicione a "identity" propriedade no mesmo nível da "type": "Microsoft.Compute/virtualMachines" propriedade. Utilize a seguinte sintaxe:

    "identity": {
        "type": "SystemAssigned"
    },
    
  3. Quando terminar, as seguintes seções devem ser adicionadas à resource seção do seu modelo e devem ser semelhantes às seguintes:

     "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "SystemAssigned",
                 }                        
         }
     ]
    

Atribuir uma função à identidade gerenciada atribuída ao sistema da VM

Depois de habilitar uma identidade gerenciada atribuída pelo sistema em sua VM, convém conceder-lhe uma função, como acesso de Leitor ao grupo de recursos no qual ela foi criada. Você pode encontrar informações detalhadas para ajudá-lo com esta etapa no artigo Atribuir funções do Azure usando modelos do Azure Resource Manager.

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

Para remover a identidade gerenciada atribuída ao sistema de 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.

  1. Quer inicie sessão no Azure localmente ou através do portal do Azure, utilize uma conta associada à subscrição do Azure que contém a VM.

  2. Carregue o modelo em um editor e localize o Microsoft.Compute/virtualMachines recurso de interesse dentro da resources seção. Se você tiver uma VM que tenha apenas identidade gerenciada atribuída ao sistema, poderá desativá-la alterando o tipo de identidade para None.

    Microsoft.Compute/virtualMachines API versão 2018-06-01

    Se sua VM tiver identidades gerenciadas atribuídas pelo sistema e pelo usuário, remova SystemAssigned do tipo de identidade e mantenha UserAssigned junto com os valores do userAssignedIdentities dicionário.

    Microsoft.Compute/virtualMachines API versão 2018-06-01

    Se o seu apiVersion é 2017-12-01 e sua VM tiver identidades gerenciadas atribuídas pelo sistema e pelo usuário, remova SystemAssigned do tipo de identidade e mantenha UserAssigned junto com a identityIds matriz das identidades gerenciadas atribuídas pelo usuário.

O exemplo a seguir mostra como remover uma identidade gerenciada atribuída pelo sistema de uma VM sem identidades gerenciadas atribuídas pelo usuário:

{
    "apiVersion": "2018-06-01",
    "type": "Microsoft.Compute/virtualMachines",
    "name": "[parameters('vmName')]",
    "location": "[resourceGroup().location]",
    "identity": {
        "type": "None"
    }
}

Identidade gerida atribuída pelo utilizador

Nesta seção, você atribui uma identidade gerenciada atribuída pelo usuário a uma VM do Azure usando o modelo do Azure Resource Manager.

Nota

Para criar uma identidade gerenciada atribuída pelo usuário usando um Modelo do Azure Resource Manager, consulte Criar uma identidade gerenciada atribuída pelo usuário.

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

Para atribuir uma identidade atribuída pelo usuário a uma VM, sua conta precisa da atribuição de função Operador de Identidade Gerenciada . Nenhuma outra atribuição de função de diretório do Microsoft Entra é necessária.

  1. resources No elemento , adicione a seguinte entrada para atribuir uma identidade gerenciada atribuída pelo usuário à sua VM. Certifique-se de substituir <USERASSIGNEDIDENTITY> pelo nome da identidade gerenciada atribuída ao usuário que você criou.

    Microsoft.Compute/virtualMachines API versão 2018-06-01

    Se for apiVersion 2018-06-01, as identidades gerenciadas atribuídas pelo userAssignedIdentities usuário serão armazenadas no formato de dicionário e o <USERASSIGNEDIDENTITYNAME> valor deverá ser armazenado em uma variável definida na variables seção do modelo.

     {
         "apiVersion": "2018-06-01",
         "type": "Microsoft.Compute/virtualMachines",
         "name": "[variables('vmName')]",
         "location": "[resourceGroup().location]",
         "identity": {
             "type": "userAssigned",
             "userAssignedIdentities": {
                 "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
             }
         }
     }
    

    Microsoft.Compute/virtualMachines API versão 2017-12-01

    Se for apiVersion 2017-12-01, as identidades gerenciadas atribuídas pelo identityIds usuário serão armazenadas na matriz e o <USERASSIGNEDIDENTITYNAME> valor deverá ser armazenado em uma variável definida na variables seção do modelo.

    {
        "apiVersion": "2017-12-01",
        "type": "Microsoft.Compute/virtualMachines",
        "name": "[variables('vmName')]",
        "location": "[resourceGroup().location]",
        "identity": {
            "type": "userAssigned",
            "identityIds": [
                "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
            ]
        }
    }
    
  2. Quando terminar, as seguintes seções devem ser adicionadas à resource seção do seu modelo e devem ser semelhantes às seguintes:

    Microsoft.Compute/virtualMachines API versão 2018-06-01

      "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2018-06-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "userAssignedIdentities": {
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {}
                 }
             }
         }
     ] 
    

    Microsoft.Compute/virtualMachines API versão 2017-12-01

    "resources": [
         {
             //other resource provider properties...
             "apiVersion": "2017-12-01",
             "type": "Microsoft.Compute/virtualMachines",
             "name": "[variables('vmName')]",
             "location": "[resourceGroup().location]",
             "identity": {
                 "type": "userAssigned",
                 "identityIds": [
                    "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]"
                 ]
             }
         }
    ]
    

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

Para remover uma identidade atribuída pelo usuário de 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.

  1. Quer inicie sessão no Azure localmente ou através do portal do Azure, utilize uma conta associada à subscrição do Azure que contém a VM.

  2. Carregue o modelo em um editor e localize o Microsoft.Compute/virtualMachines recurso de interesse dentro da resources seção. Se você tiver uma VM que tenha apenas identidade gerenciada atribuída pelo usuário, poderá desativá-la alterando o tipo de identidade para None.

    O exemplo a seguir mostra como remover todas as identidades gerenciadas atribuídas pelo usuário de uma VM sem identidades gerenciadas atribuídas pelo sistema:

     {
       "apiVersion": "2018-06-01",
       "type": "Microsoft.Compute/virtualMachines",
       "name": "[parameters('vmName')]",
       "location": "[resourceGroup().location]",
       "identity": {
           "type": "None"
           },
     }
    

    Microsoft.Compute/virtualMachines API versão 2018-06-01

    Para remover uma única identidade gerenciada atribuída pelo usuário de uma VM, remova-a do useraAssignedIdentities dicionário.

    Se você tiver uma identidade gerenciada atribuída ao sistema, mantenha-a type no valor abaixo do identity valor.

    Microsoft.Compute/virtualMachines API versão 2017-12-01

    Para remover uma única identidade gerenciada atribuída pelo usuário de uma VM, remova-a da identityIds matriz.

    Se você tiver uma identidade gerenciada atribuída ao sistema, mantenha-a type no valor abaixo do identity valor.

Próximos passos

  • Visão geral de identidades gerenciadas para recursos do Azure.

Neste artigo, usando CURL para fazer chamadas para o ponto de extremidade REST do Azure Resource Manager, você aprenderá a executar as seguintes identidades gerenciadas para operações de recursos do Azure em uma VM do Azure:

  • Habilitar e desabilitar a identidade gerenciada atribuída pelo sistema em uma VM do Azure
  • Adicionar e remover uma identidade gerenciada atribuída pelo usuário em uma VM do Azure

Se ainda não tem uma conta do Azure, inscreva-se numa conta gratuita antes de continuar.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Identidade gerida atribuída pelo sistema

Nesta seção, você aprenderá a habilitar e desabilitar a identidade gerenciada atribuída ao sistema em uma VM do Azure usando CURL para fazer chamadas para o ponto de extremidade REST do Azure Resource Manager.

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. Crie uma grupo de recursos para contenção e implementação da VM e os respetivos recursos relacionados, utilizando az group create. Pode ignorar este passo se já tiver o grupo de recursos que pretende utilizar em vez disso:

    az group create --name myResourceGroup --location westus
    
  2. Crie uma interface de rede para sua VM:

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Recupere um token de acesso ao portador, que você usará na próxima etapa no cabeçalho Autorização para criar sua VM com uma identidade gerenciada atribuída pelo sistema.

    az account get-access-token
    
  4. Usando o Azure Cloud Shell, crie uma VM usando CURL para chamar o ponto de extremidade REST do Azure Resource Manager. O exemplo a seguir cria uma VM chamada myVM com uma identidade gerenciada atribuída ao sistema, conforme identificado no corpo da solicitação pelo valor "identity":{"type":"SystemAssigned"}. Substitua <ACCESS TOKEN> pelo valor que você recebeu na etapa anterior quando solicitou um token de acesso ao portador e o <SUBSCRIPTION ID> valor conforme apropriado para seu ambiente.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"SystemAssigned"},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"<SECURE PASSWORD STRING>"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

      {
        "location":"westus",
        "name":"myVM",
        "identity":{
           "type":"SystemAssigned"
        },
        "properties":{
           "hardwareProfile":{
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{
              "imageReference":{
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{
                 "caching":"ReadWrite",
                 "managedDisk":{
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{
              "networkInterfaces":[
                 {
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{
                       "primary":true
                    }
                 }
              ]
           }
        }
     }  
    

Habilitar a identidade 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 um token de acesso ao portador, que você usará na próxima etapa no cabeçalho Autorização para criar sua VM com uma identidade gerenciada atribuída pelo sistema.

    az account get-access-token
    
  2. Use o seguinte comando CURL para chamar o ponto de extremidade REST do Azure Resource Manager para habilitar a identidade gerenciada atribuída pelo sistema em sua VM, conforme identificado no corpo da solicitação pelo valor {"identity":{"type":"SystemAssigned"} de uma VM chamada myVM. Substitua <ACCESS TOKEN> pelo valor que você recebeu na etapa anterior quando solicitou um token de acesso ao portador e o <SUBSCRIPTION ID> valor conforme apropriado para seu ambiente.

    Importante

    Para garantir que você não exclua nenhuma identidade gerenciada atribuída ao usuário existente que seja atribuída à VM, você precisa listar as identidades gerenciadas atribuídas pelo usuário usando este comando CURL: curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>". Se você tiver quaisquer identidades gerenciadas atribuídas pelo usuário atribuídas à VM, conforme identificado no valor na resposta, pule para a etapa 3 que mostra como manter as identidades gerenciadas atribuídas pelo usuário enquanto habilita a identity identidade gerenciada atribuída pelo sistema em sua VM.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {  
        "identity":{  
           "type":"SystemAssigned"
        }
     }
    
  3. Para habilitar a type identidade gerenciada atribuída pelo sistema em uma VM com identidades gerenciadas atribuídas pelo usuário existentes, você precisa adicionar SystemAssigned ao valor.

    Por exemplo, se sua VM tiver as identidades ID1 gerenciadas atribuídas pelo usuário e ID2 atribuídas a ela, e você quiser adicionar a identidade gerenciada atribuída pelo sistema à VM, use a seguinte chamada CURL. Substitua <ACCESS TOKEN> e <SUBSCRIPTION ID> com valores apropriados ao seu ambiente.

    A versão 2018-06-01 da API armazena identidades gerenciadas atribuídas pelo usuário no userAssignedIdentities valor em um formato de dicionário, em oposição ao identityIds valor em um formato de matriz usado na versão 2017-12-01da API.

    VERSÃO DA API 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {  
        "identity":{  
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{  
              "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{  
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{  
    
              }
           }
        }
     }
    

    VERSÃO DA API 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {  
        "identity":{  
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[  
              "/subscriptions/<<SUBSCRIPTION ID>>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

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.

  1. Recupere um token de acesso ao portador, que você usará na próxima etapa no cabeçalho Autorização para criar sua VM com uma identidade gerenciada atribuída pelo sistema.

    az account get-access-token
    
  2. Atualize a VM usando CURL para chamar o ponto de extremidade REST do Azure Resource Manager para desabilitar a identidade gerenciada atribuída pelo sistema. O exemplo a seguir desabilita a identidade gerenciada atribuída ao sistema conforme identificada no corpo da solicitação pelo valor {"identity":{"type":"None"}} de uma VM chamada myVM. Substitua <ACCESS TOKEN> pelo valor que você recebeu na etapa anterior quando solicitou um token de acesso ao portador e o <SUBSCRIPTION ID> valor conforme apropriado para seu ambiente.

    Importante

    Para garantir que você não exclua nenhuma identidade gerenciada atribuída ao usuário existente que seja atribuída à VM, você precisa listar as identidades gerenciadas atribuídas pelo usuário usando este comando CURL: curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>". Se você tiver quaisquer identidades gerenciadas atribuídas pelo usuário atribuídas à VM, conforme identificado no valor na resposta, pule para a etapa 3 que mostra como manter as identidades gerenciadas atribuídas pelo usuário enquanto desabilita a identity identidade gerenciada atribuída pelo sistema em sua VM.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {  
        "identity":{  
           "type":"None"
        }
     }
    

    Para remover a identidade gerenciada atribuída pelo sistema de uma máquina virtual que tenha identidades gerenciadas atribuídas pelo usuário, remova SystemAssigned do valor mantendo o valor e os valores do dicionário se estiver usando a UserAssigned userAssignedIdentities versão da API 2018-06-01{"identity":{"type:" "}}. Se você estiver usando a API versão 2017-12-01 ou anterior, mantenha a identityIds matriz.

Identidade gerida atribuída pelo utilizador

Nesta seção, você aprenderá a adicionar e remover a identidade gerenciada atribuída pelo usuário em uma VM do Azure usando CURL para fazer chamadas para o ponto de extremidade REST do Azure Resource Manager.

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

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. Recupere um token de acesso ao portador, que você usará na próxima etapa no cabeçalho Autorização para criar sua VM com uma identidade gerenciada atribuída pelo sistema.

    az account get-access-token
    
  2. Crie uma interface de rede para sua VM:

     az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
    
  3. Recupere um token de acesso ao portador, que você usará na próxima etapa no cabeçalho Autorização para criar sua VM com uma identidade gerenciada atribuída pelo sistema.

    az account get-access-token
    
  4. Crie uma identidade gerenciada atribuída pelo usuário usando as instruções encontradas aqui: Criar uma identidade gerenciada atribuída pelo usuário.

  5. Crie uma VM usando CURL para chamar o ponto de extremidade REST do Azure Resource Manager. O exemplo a seguir cria uma VM chamada myVM no grupo de recursos myResourceGroup com uma identidade ID1gerenciada atribuída pelo usuário, conforme identificado no corpo da solicitação pelo valor "identity":{"type":"UserAssigned"}. Substitua <ACCESS TOKEN> pelo valor que você recebeu na etapa anterior quando solicitou um token de acesso ao portador e o <SUBSCRIPTION ID> valor conforme apropriado para seu ambiente.

    VERSÃO DA API 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {  
        "location":"westus",
        "name":"myVM",
        "identity":{  
           "type":"UserAssigned",
           "identityIds":[  
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{  
           "hardwareProfile":{  
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{  
              "imageReference":{  
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{  
                 "caching":"ReadWrite",
                 "managedDisk":{  
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[  
                 {  
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {  
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{  
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{  
              "networkInterfaces":[  
                 {  
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{  
                       "primary":true
                    }
                 }
              ]
           }
        }
     }
    
    

    VERSÃO DA API 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PUT -d '{"location":"westus","name":"myVM","identity":{"type":"UserAssigned","identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]},"properties":{"hardwareProfile":{"vmSize":"Standard_D2_v2"},"storageProfile":{"imageReference":{"sku":"2016-Datacenter","publisher":"MicrosoftWindowsServer","version":"latest","offer":"WindowsServer"},"osDisk":{"caching":"ReadWrite","managedDisk":{"storageAccountType":"StandardSSD_LRS"},"name":"myVM3osdisk","createOption":"FromImage"},"dataDisks":[{"diskSizeGB":1023,"createOption":"Empty","lun":0},{"diskSizeGB":1023,"createOption":"Empty","lun":1}]},"osProfile":{"adminUsername":"azureuser","computerName":"myVM","adminPassword":"myPassword12"},"networkProfile":{"networkInterfaces":[{"id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic","properties":{"primary":true}}]}}}' -H "Content-Type: application/json" -H "Authorization: Bearer <ACCESS TOKEN>"
    
    PUT https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {
        "location":"westus",
        "name":"myVM",
        "identity":{
           "type":"UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        },
        "properties":{
           "hardwareProfile":{
              "vmSize":"Standard_D2_v2"
           },
           "storageProfile":{
              "imageReference":{
                 "sku":"2016-Datacenter",
                 "publisher":"MicrosoftWindowsServer",
                 "version":"latest",
                 "offer":"WindowsServer"
              },
              "osDisk":{
                 "caching":"ReadWrite",
                 "managedDisk":{
                    "storageAccountType":"StandardSSD_LRS"
                 },
                 "name":"myVM3osdisk",
                 "createOption":"FromImage"
              },
              "dataDisks":[
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":0
                 },
                 {
                    "diskSizeGB":1023,
                    "createOption":"Empty",
                    "lun":1
                 }
              ]
           },
           "osProfile":{
              "adminUsername":"azureuser",
              "computerName":"myVM",
              "adminPassword":"myPassword12"
           },
           "networkProfile":{
              "networkInterfaces":[
                 {
                    "id":"/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myNic",
                    "properties":{
                       "primary":true
                    }
                 }
              ]
           }
        }
     }
    

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. Recupere um token de acesso ao portador, que você usará na próxima etapa no cabeçalho Autorização para criar sua VM com uma identidade gerenciada atribuída pelo sistema.

    az account get-access-token
    
  2. Crie uma identidade gerenciada atribuída pelo usuário usando as instruções encontradas aqui, Criar uma identidade gerenciada atribuída pelo usuário.

  3. Para garantir que você não exclua identidades gerenciadas atribuídas ao usuário ou ao sistema existentes atribuídas à VM, você precisa listar os tipos de identidade atribuídos à VM usando o seguinte comando CURL. Se você tiver identidades gerenciadas atribuídas ao conjunto de dimensionamento de máquina virtual, elas serão listadas abaixo no identity valor.

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>" 
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Se você tiver alguma identidade gerenciada atribuída ao usuário ou ao sistema atribuída à VM, conforme identificado no identity valor na resposta, pule para a etapa 5 que mostra como manter a identidade gerenciada atribuída ao sistema enquanto adiciona uma identidade gerenciada atribuída pelo usuário à sua VM.

  4. Se você não tiver nenhuma identidade gerenciada atribuída pelo usuário à sua VM, use o seguinte comando CURL para chamar o ponto de extremidade REST do Azure Resource Manager para atribuir a primeira identidade gerenciada atribuída pelo usuário à VM.

    O exemplo a seguir atribui uma identidade ID1 gerenciada atribuída pelo usuário a uma VM chamada myVM no grupo de recursos myResourceGroup. Substitua <ACCESS TOKEN> pelo valor que você recebeu na etapa anterior quando solicitou um token de acesso ao portador e o <SUBSCRIPTION ID> valor conforme apropriado para seu ambiente.

    VERSÃO DA API 2018-06-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {
        "identity":{
           "type":"UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              }
           }
        }
     }
    

    VERSÃO DA API 2017-12-01

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"userAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {
        "identity":{
           "type":"userAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    
  5. Se você tiver uma identidade gerenciada atribuída ao usuário ou ao sistema atribuída à sua VM:

    VERSÃO DA API 2018-06-01

    Adicione a identidade gerenciada atribuída pelo usuário ao valor do userAssignedIdentities dicionário.

    Por exemplo, se você tiver a identidade gerenciada atribuída ao sistema e a identidade ID1 gerenciada atribuída pelo usuário atualmente atribuída à sua VM e quiser adicionar a identidade ID2 gerenciada atribuída pelo usuário a ela:

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{},"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{}}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1":{
    
              },
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":{
    
              }
           }
        }
     }
    

    VERSÃO DA API 2017-12-01

    Mantenha as identidades gerenciadas atribuídas pelo usuário que você gostaria de manter no valor da identityIds matriz enquanto adiciona a nova identidade gerenciada atribuída pelo usuário.

    Por exemplo, se você tiver a identidade gerenciada atribuída ao sistema e a identidade ID1 gerenciada atribuída pelo usuário atualmente atribuída à sua VM e quiser adicionar a identidade ID2 gerenciada atribuída pelo usuário a ela:

    curl  'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned,UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1","/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {
        "identity":{
           "type":"SystemAssigned,UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1",
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2"
           ]
        }
     }
    

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 .

  1. Recupere um token de acesso ao portador, que você usará na próxima etapa no cabeçalho Autorização para criar sua VM com uma identidade gerenciada atribuída pelo sistema.

    az account get-access-token
    
  2. Para garantir que você não exclua nenhuma identidade gerenciada atribuída pelo usuário existente que gostaria de manter atribuída à VM ou remova a identidade gerenciada atribuída ao sistema, você precisa listar as identidades gerenciadas usando o seguinte comando CURL:

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01' -H "Authorization: Bearer <ACCESS TOKEN>"
    
    GET https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>/providers/Microsoft.Compute/virtualMachines/<VM NAME>?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Se você tiver identidades gerenciadas atribuídas à VM, elas serão listadas na resposta no identity valor.

    Por exemplo, se você tiver identidades ID1 gerenciadas atribuídas pelo usuário e ID2 atribuídas à sua VM e quiser apenas manter ID1 atribuída e manter a identidade atribuída ao sistema:

    VERSÃO DA API 2018-06-01

    Adicione null à identidade gerenciada atribuída pelo usuário que você gostaria de remover:

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{"/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null}}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "userAssignedIdentities":{
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null
           }
        }
     }
    

    VERSÃO DA API 2017-12-01

    Retenha apenas a(s) identidade(s) gerenciada(s) atribuída(s) ao usuário que você gostaria de manter na identityIds matriz:

    curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01' -X PATCH -d '{"identity":{"type":"SystemAssigned, UserAssigned", "identityIds":["/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"]}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
    
    PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2017-12-01 HTTP/1.1
    

    Cabeçalhos de solicitação

    Cabeçalho do pedido Description
    Tipo de conteúdo Obrigatório. Definido como application/json.
    Autorização Obrigatório. Defina como um token de acesso válido Bearer .

    Corpo do pedido

     {
        "identity":{
           "type":"SystemAssigned, UserAssigned",
           "identityIds":[
              "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1"
           ]
        }
     }
    

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 a identidade gerenciada atribuída pelo sistema usando o seguinte comando:

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"SystemAssigned"}}' -H "Content-Type: application/json" -H "Authorization:Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1

Cabeçalhos de solicitação

Cabeçalho do pedido Description
Tipo de conteúdo Obrigatório. Definido como application/json.
Autorização Obrigatório. Defina como um token de acesso válido Bearer .

Corpo do pedido

{
   "identity":{
      "type":"SystemAssigned"
   }
}

Se sua VM tiver apenas identidades gerenciadas atribuídas pelo usuário e você quiser removê-las todas, use o seguinte comando:

curl 'https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01' -X PATCH -d '{"identity":{"type":"None"}}' -H "Content-Type: application/json" -H Authorization:"Bearer <ACCESS TOKEN>"
PATCH https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM?api-version=2018-06-01 HTTP/1.1

Cabeçalhos de solicitação

Cabeçalho do pedido Description
Tipo de conteúdo Obrigatório. Definido como application/json.
Autorização Obrigatório. Defina como um token de acesso válido Bearer .

Corpo do pedido

{
   "identity":{
      "type":"None"
   }
}

Próximos passos

Para obter informações sobre como criar, listar ou excluir identidades gerenciadas atribuídas pelo usuário usando REST, consulte:

Neste artigo, você aprenderá a habilitar e remover identidades gerenciadas para recursos do Azure para uma VM do Azure, usando um SDK do Azure.

Pré-requisitos

SDKs do Azure com identidades gerenciadas para suporte a recursos do Azure

O Azure dá suporte a várias plataformas de programação por meio de uma série de SDKs do Azure. Vários deles foram atualizados para dar suporte a identidades gerenciadas para recursos do Azure e fornecer exemplos correspondentes para demonstrar o uso. Esta lista é atualizada à medida que outro suporte é adicionado:

SDK Exemplo
.NET Gerenciar recursos de uma VM habilitada com identidades gerenciadas para recursos do Azure habilitados
Java Gerenciar armazenamento de uma VM habilitada com identidades gerenciadas para recursos do Azure
Node.js Criar uma VM com a identidade gerenciada atribuída pelo sistema habilitada
Python Criar uma VM com a identidade gerenciada atribuída pelo sistema habilitada
Ruby Criar VM do Azure com uma identidade atribuída pelo sistema habilitada

Próximos passos

  • Consulte artigos relacionados em Configurar identidade para uma VM do Azure para saber como você também pode usar o portal do Azure, PowerShell, CLI e modelos de recursos.