Configurar identidades gerenciadas em VMs (máquinas virtuais) do Azure
Identidades gerenciadas para recursos do Azure é um recurso do Microsoft Entra ID. Cada um dos serviços do Azure que dão suporte a identidades gerenciadas para recursos do Azure está sujeito à própria linha do tempo. Não deixe de examinar o status de disponibilidade das identidades gerenciadas do seu recurso e os problemas conhecidos antes de começar.
As identidades gerenciadas dos recursos do Azure fornecem aos serviços do Azure uma identidade gerenciada automaticamente na ID do Microsoft Entra. Use essa identidade para autenticar qualquer serviço que dê suporte à autenticação do Microsoft Entra, sem a necessidade de ter as credenciais no código.
Para obter informações sobre a definição e os detalhes do Azure Policy, consulte Usar o Azure Policy para atribuir identidades gerenciadas (versão prévia).
Neste artigo, você aprende como habilitar e desabilitar identidades gerenciadas atribuídas ao usuário e ao sistema para uma VM (Máquina Virtual) 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 você ainda não tiver uma conta do Azure, inscreva-se em uma conta gratuita antes de continuar.
Identidade gerenciada atribuída pelo sistema
Nesta seção, você aprende como habilitar e desabilitar a identidade gerenciada atribuída ao sistema para VM usando o portal do Azure.
Habilitar identidade gerenciada atribuída ao 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 de função Colaboração da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
- Na guia Gerenciamento da seção Identidade, mude Identidade do serviço gerenciado para Em.
Consulte os seguintes Inícios Rápidos para criar uma VM:
- Criar uma máquina virtual do Windows com o Portal do Azure
- Criar uma máquina virtual Linux com o Portal do Azure
Habilitar a identidade gerenciada atribuída ao sistema em uma VM existente
Dica
As etapas neste artigo podem variar ligeiramente com base no portal do qual você começa.
Para habilitar a identidade gerenciada atribuída ao sistema em uma VM que foi originalmente provisionada sem ela, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Entre no portal do Azure usando uma conta associada à assinatura do Azure que contenha a VM.
Navegue até a Máquina Virtual desejada e selecione Identidade.
Em Sistema atribuído, Status, selecione Ativado e, em seguida, clique em Salvar:
Remover identidade gerenciada atribuída ao sistema de uma VM
Para remover a identidade gerenciada atribuída pelo sistema de uma VM, sua conta precisa da atribuição de função Atribuída do Virtual Machine. Nenhuma outra atribuição de função do 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:
Entre no portal do Azure usando uma conta associada à assinatura do Azure que contenha a VM.
Navegue até a Máquina Virtual desejada e selecione Identidade.
Em Sistema atribuído, Status, selecione Desativado e, em seguida, clique em Salvar:
Identidade gerenciada atribuída pelo usuário
Nesta seção, você aprende como adicionar e remover uma identidade gerenciada atribuída ao usuário de uma VM usando o portal do Azure.
Atribuir uma identidade atribuída ao 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 Contribuidor de Máquina Virtual e Operador de Identidade Gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Atualmente, o portal do Azure não dá suporte à atribuição de uma identidade gerenciada atribuída ao 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, vá para a próxima seção para obter detalhes sobre como atribuir uma identidade gerenciada atribuída ao usuário à VM:
- Criar uma máquina virtual do Windows com o Portal do Azure
- Criar uma máquina virtual Linux com o Portal do Azure
Atribuir uma identidade gerenciada atribuída ao 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 Contribuidor de Máquina Virtual e Operador de Identidade Gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Entre no portal do Azure usando uma conta associada à assinatura do Azure que contenha a VM.
Navegue até a VM desejada e clique em Identidade, Usuário atribuído e, em seguida, Adicionar.
Clique na identidade atribuída ao usuário que você quer adicionar à VM e, em seguida, clique em Adicionar.
Remover uma identidade gerenciada atribuída ao 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 Atribuído do Virtual Machine. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Entre no portal do Azure usando uma conta associada à assinatura do Azure que contenha a VM.
Navegue até a VM desejada e selecione Identidade, Atribuída pelo usuário, o nome da identidade gerenciada atribuída pelo usuário que deseja excluir e clique em Remover (clique em Sim no painel de confirmação).
Próximas etapas
- Usando o portal do Azure, conceda acesso de identidade gerenciada de uma VM do Azure a outro recurso do Azure.
Neste artigo, usando a CLI do Azure, você aprenderá como 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 você ainda não tiver uma conta do Azure, inscreva-se em uma conta gratuita antes de continuar.
Pré-requisitos
- Se você não estiver familiarizado com as identidades gerenciadas dos recursos do Azure, confira O que são as identidades gerenciadas dos recursos do Azure?. Para saber mais sobre tipos de identidade gerenciada atribuída pelo sistema e pelo usuário, confira Tipos de identidade gerenciada.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Identidade gerenciada atribuída pelo sistema
Nesta seção, você aprenderá como habilitar e desabilitar a identidade gerenciada atribuída ao sistema em uma VM do Azure usando a CLI do Azure.
Ativar identidade gerenciada atribuída pelo 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, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Criar um grupo de recursos para contenção e implantação de VM e seus recursos relacionados usando az group create. Ignore esta etapa, se você já tiver o grupo de recursos que deseja usar:
az group create --name myResourceGroup --location westus
Crie uma VM usando az vm create. O exemplo a seguir cria uma VM nomeada myVM com uma identidade gerenciada atribuída ao sistema, conforme solicitado pelo parâmetro
--assign-identity
, com o--role
e o--scope
especificados. Os parâmetros--admin-username
e--admin-password
especificam o nome de usuário e a senha do usuário administrativo para a entrada na máquina virtual. Atualize esses valores como adequado ao 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 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 Colaboração da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Se você estiver usando a CLI do Azure em um console local, primeiro entre no Azure usando o logon az. Use uma conta que esteja associada com uma assinatura do Azure que contenha uma VM.
az login
Use az vm identity assign com
identity assign
para habilitar a identidade atribuída ao sistema para uma VM existente:az vm identity assign -g myResourceGroup -n myVm
Desabilitar uma identidade atribuída ao sistema de uma VM do Azure
Para desabilitar a identidade gerenciada atribuída ao sistema em uma VM, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Se você tiver uma Máquina Virtual que não precisa mais da identidade atribuída ao sistema, mas ainda precisar de identidades atribuídas ao usuário, use o comando a seguir:
az vm update -n myVM -g myResourceGroup --set identity.type='UserAssigned'
Se você tiver uma máquina virtual que não precisa mais da identidade atribuída ao sistema e não tiver identidades atribuídas ao usuário, use o comando a seguir:
Observação
O valor none
diferencia maiúsculas de minúsculas. Deve estar em letras minúsculas.
az vm update -n myVM -g myResourceGroup --set identity.type="none"
Identidade gerenciada atribuída pelo usuário
Nesta seção, você aprenderá como adicionar e remover uma identidade gerenciada atribuída ao usuário de uma VM do Azure usando a CLI do Azure. Se você criar sua identidade gerenciada atribuída ao usuário em um RG diferente da VM. Você precisará usar a URL da sua identidade gerenciada para atribuí-la à 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 Contribuinte virtual e Operador de identidade gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Se você já tiver um grupo de recursos e quiser usá-lo, ignore esta etapa. Crie um grupo de recursos para independência e implantação da identidade gerenciada atribuída ao usuário, usando az group create . Substitua os valores de parâmetro
<RESOURCE GROUP>
e<LOCATION>
pelos seus próprios valores. :az group create --name <RESOURCE GROUP> --location <LOCATION>
Crie uma identidade gerenciada atribuída ao usuário usando az identity create. O parâmetro
-g
especifica o grupo de recursos em que a identidade gerenciada atribuída pelo usuário é criada e o parâmetro-n
especifica o nome.Importante
Ao criar 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, hifens (-) e sublinhados (_). Para que a atribuição a uma máquina virtual ou um conjunto de dimensionamento de máquinas virtuais funcione corretamente, o nome é limitado a 24 caracteres. Para mais informações, consulte Perguntas frequentes e problemas conhecidos
az identity create -g myResourceGroup -n myUserAssignedIdentity
A resposta contém detalhes para a identidade gerenciada atribuída ao usuário criada, semelhante à seguinte. O valor da ID do recurso atribuído à identidade gerenciada atribuída ao usuário será 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=00001111-aaaa-2222-bbbb-3333cccc4444", "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" }
Crie uma VM usando az vm create. O exemplo a seguir cria uma VM associada à nova identidade atribuída ao usuário, conforme especificado pelo parâmetro
--assign-identity
, com o--role
e o--scope
especificados. Substitua os valores de parâmetro<RESOURCE GROUP>
,<VM NAME>
,<USER NAME>
,<PASSWORD>
,<USER ASSIGNED IDENTITY NAME>
,<ROLE>
e<SUBSCRIPTION>
pelos seus 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 usuário atribuído a uma VM existente do Azure
Para atribuir uma identidade atribuída pelo usuário a uma VM, sua conta precisa das atribuições de função Contribuidor de Máquina Virtual e Operador de Identidade Gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Crie uma identidade atribuída pelo usuário usando az identity create. O parâmetro
-g
especifica o grupo de recursos em que a identidade atribuída ao usuário é criada e o parâmetro-n
especifica o nome. Substitua os valores de parâmetro<RESOURCE GROUP>
e<USER ASSIGNED IDENTITY NAME>
pelos seus próprios valores:Importante
A criação de identidades geridas atribuídas pelo utilizador com caracteres especiais (ou seja, sublinhado) no nome não é suportada atualmente. Use caracteres alfanuméricos. Procure novamente por 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 ao 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=00001111-aaaa-2222-bbbb-3333cccc4444", "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" }
Atribua a identidade atribuída ao usuário à VM usando az vm identity assign. Substitua os valores de parâmetro
<RESOURCE GROUP>
e<VM NAME>
pelos seus próprios valores. O<USER ASSIGNED IDENTITY NAME>
é a propriedadename
do recurso de identidade gerenciada atribuída ao usuário, conforme criado na etapa anterior. Se você criar sua identidade gerenciada atribuída ao usuário em um RG diferente da VM. Você precisará usar a URL da sua identidade gerenciada.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 ao usuário a uma VM, a conta precisará da atribuição de função Colaborador da Máquina Virtual.
Se essa for a única identidade gerenciada atribuída ao usuário atribuída à máquina virtual, UserAssigned
será removido do valor do tipo de identidade. Substitua os valores de parâmetro <RESOURCE GROUP>
e <VM NAME>
pelos seus próprios valores. O <USER ASSIGNED IDENTITY>
será a propriedade name
da identidade atribuída ao usuário, que pode ser localizada 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 a VM não tiver uma identidade gerenciada atribuída ao sistema e você quiser remover todas as identidades atribuídas ao usuário, use o comando a seguir:
Observação
O valor none
diferencia maiúsculas de minúsculas. Deve estar em letras minúsculas.
az vm update -n myVM -g myResourceGroup --set identity.type="none" identity.userAssignedIdentities=null
Se a VM tiver identidades atribuídas ao sistema e atribuídas ao usuário, você poderá remover todas as identidades atribuídas ao usuário, alternando para usar somente atribuídas ao sistema. Use o seguinte comando:
az vm update -n myVM -g myResourceGroup --set identity.type='SystemAssigned' identity.userAssignedIdentities=null
Próximas etapas
- Identidades gerenciadas para visão geral de recursos do Azure
- Para os guias de início rápido completos sobre VM do Azure, consulte:
Neste artigo, usando o PowerShell, você aprenderá como executar as seguintes identidades gerenciadas para operações de recursos do Azure em uma VM do Azure.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira 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. Revise a diferença entre uma identidade gerenciada atribuída ao sistema e atribuída ao usuário.
- Se você ainda não tiver uma conta do Azure, inscreva-se em uma 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 os scripts localmente instalando a versão mais recente do Azure PowerShell e, em seguida, entre no Azure usando
Connect-AzAccount
.
Identidade gerenciada atribuída pelo sistema
Nesta seção, veremos como ativar e desativar a identidade gerenciada atribuída pelo sistema usando o Azure PowerShell.
Ativar identidade gerenciada atribuída pelo 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, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Consulte um dos guias de início rápido de VM do Azure a seguir, concluindo apenas as seções necessárias ("Entrar no Azure", "Criar o grupo de recursos", "Criar grupo de rede", "Criar a máquina virtual").
Quando você chegar à seção "Criar a VM", faça uma pequena modificação na sintaxe do cmdlet New-AzVMConfig. Certifique-se de adicionar um parâmetro
-IdentityType SystemAssigned
para provisionar a VM com a identidade atribuída ao sistema habilitada, por exemplo:$vmConfig = New-AzVMConfig -VMName myVM -IdentityType SystemAssigned ...
Habilitar 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, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Recupere as propriedades da VM usando o cmdlet
Get-AzVM
. Em seguida, para habilitar uma identidade gerenciada atribuída ao sistema, use a opção-IdentityType
no cmdlet Update-AzVM:$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM Update-AzVM -ResourceGroupName myResourceGroup -VM $vm -IdentityType SystemAssigned
Adicionar uma identidade atribuída pelo sistema de uma VM a um grupo
Depois de habilitar a identidade atribuída pelo sistema em uma VM, você pode adicioná-la a um grupo. O procedimento a seguir adiciona uma identidade atribuída pelo sistema de uma VM a um grupo.
Recupere e tome nota do
ObjectID
(conforme especificado no campoId
dos valores retornados) da entidade de serviço da VM:Get-AzADServicePrincipal -displayname "myVM"
Recupere e tome nota do
ObjectID
(conforme especificado no campoId
dos valores retornados) do grupo:Get-AzADGroup -searchstring "myGroup"
Adicionar a entidade de serviço da VM ao grupo:
New-MgGroupMember -GroupId "<Id of group>" -DirectoryObjectId "<Id of VM service principal>"
Desativar identidade gerenciada atribuída pelo sistema de uma VM do Azure
Para desabilitar a identidade gerenciada atribuída ao sistema em uma VM, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Se você tiver uma máquina virtual que não precise mais da identidade gerenciada atribuída ao sistema, mas ainda precisar de identidades gerenciadas atribuídas ao usuário, use o seguinte cmdlet:
Recupere as propriedades da VM usando o cmdlet
Get-AzVM
e defina o parâmetro-IdentityType
comoUserAssigned
:$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 precise mais da identidade gerenciada atribuída ao sistema e não tiver identidades gerenciadas atribuídas ao usuário, use os comandos a seguir:
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None
Identidade gerenciada atribuída pelo usuário
Nesta seção, você aprenderá como adicionar e remover uma identidade atribuída ao usuário de uma VM usando Azure PowerShell.
Atribuir uma identidade gerenciada atribuída ao 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 Contribuidor de Máquina Virtual e Operador de Identidade Gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Consulte um dos guias de início rápido de VM do Azure a seguir, concluindo apenas as seções necessárias ("Entrar no Azure", "Criar o grupo de recursos", "Criar grupo de rede", "Criar a máquina virtual").
Quando você chegar à seção "Criar a VM", faça uma pequena modificação na
New-AzVMConfig
sintaxe do cmdlet. Adicione os parâmetros-IdentityType UserAssigned
e-IdentityID
para provisionar a VM com uma identidade atribuída ao usuário. Substitua<VM NAME>
,<SUBSCRIPTION ID>
,<RESROURCE GROUP>
, e<USER ASSIGNED IDENTITY NAME>
pelos 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 usuário atribuído a uma VM existente do Azure
Para atribuir uma identidade atribuída pelo usuário a uma VM, sua conta precisa das atribuições de função Contribuidor de Máquina Virtual e Operador de Identidade Gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Crie uma identidade gerenciada atribuída ao usuário, usando o cmdlet New-AzUserAssignedIdentity. Observe o
Id
na saída porque você precisará dessas informações na próxima etapa.Importante
A criação de identidades gerenciadas atribuídas pelo usuário dá suporte apenas a caracteres alfanuméricos, sublinhado e hífen (0-9, a-z, A-Z, _ ou -). Além disso, o nome deve ter um limite 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>
Recupere as propriedades da VM usando o cmdlet
Get-AzVM
. Em seguida, para atribuir uma identidade gerenciada atribuída ao usuário à VM do Azure, use a opção-IdentityType
e-IdentityID
no cmdlet Update-AzVM. O valor para o-IdentityId
parâmetro é oId
você anotou na etapa anterior. Substitua, , , e pelos seus próprios valores.Aviso
Para manter qualquer identidades gerenciadas anteriormente atribuído ao usuário atribuídas à VM, consulte o
Identity
propriedade do objeto da VM (por exemplo,$vm.Identity
). Se qualquer usuário atribuído identidades gerenciadas são retornadas, incluí-los no comando a seguir, juntamente com o novo usuário atribuído a identidade gerenciada que você deseja 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 ao usuário a uma VM, a conta precisará da atribuição de função Colaborador da Máquina Virtual.
Se a VM tiver várias identidades gerenciadas atribuídas ao usuário, será possível remover todas, exceto a última, usando os seguintes comandos. Substitua os valores de parâmetro <RESOURCE GROUP>
e <VM NAME>
pelos seus próprios valores. O <USER ASSIGNED IDENTITY NAME>
é a propriedade do nome da identidade gerenciada atribuída ao usuário, que deve permanecer na VM. Essas informações são detectáveis usando uma consulta para pesquisar a propriedade Identity
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 a VM não tiver uma identidade gerenciada atribuída pelo sistema e você quiser remover todas as identidades gerenciadas atribuídas pelo usuário, use o seguinte comando:
$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VM $vm -IdentityType None
Se a VM tiver ambas as identidades gerenciadas atribuídas ao sistema e atribuídas ao usuário, será possível remover todas as identidades gerenciadas atribuídas ao usuário, alternando para usar apenas as identidades gerenciadas atribuídas ao sistema.
$vm = Get-AzVm -ResourceGroupName myResourceGroup -Name myVm
Update-AzVm -ResourceGroupName myResourceGroup -VirtualMachine $vm -IdentityType "SystemAssigned"
Próximas etapas
Identidades gerenciadas para visão geral de recursos do Azure
Para os guias de início rápido completos sobre VM do Azure, consulte:
Neste artigo, usando o modelo de implantação do Azure Resource Manager, você aprende como 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. Revise a diferença entre uma identidade gerenciada atribuída ao sistema e atribuída ao usuário.
- Se você ainda não tiver uma conta do Azure, inscreva-se em uma conta gratuita antes de continuar.
Modelos do Azure Resource Manager
Assim como com o portal do Azure e o script, os modelos do Azure Resource Manager permitem implantar recursos novos ou modificados definidos por um grupo de recursos do Azure. Há várias opções disponíveis para a edição e a implantação do modelo, tanto locais quanto baseadas em portal, incluindo:
- Usar um modelo personalizado do Azure Marketplace, que permite a criação de um modelo do zero ou usar como base um modelo comum existente ou um modelo de início rápido.
- Derivar de um grupo de recursos existente, exportando um modelo da implantação original ou do estado atual da implantação.
- Usar um editor JSON local (por exemplo, VS Code), depois carregar e implantar usando o PowerShell ou a CLI.
- Usar o projeto do Grupo de Recursos do Azure do Visual Studio para criar e implantar um modelo.
Independentemente da opção escolhido, a sintaxe do modelo será a mesma durante a implantação inicial e a reimplantação. Habilitar uma identidade gerenciada atribuída ao usuário ou ao sistema 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 gerenciada 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 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 Colaboração da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Se você entrar no Azure localmente ou por meio do portal do Azure, use uma conta que esteja associada com a assinatura do Azure que contenha a máquina virtual.
Para habilitar a identidade gerenciada atribuída ao sistema, carregue o modelo em um editor, localize o recurso
Microsoft.Compute/virtualMachines
de interesse dentro da seçãoresources
e adicione a propriedade"identity"
no mesmo nível que a propriedade"type": "Microsoft.Compute/virtualMachines"
. Use a seguinte sintaxe:"identity": { "type": "SystemAssigned" },
Quando você terminar, as seguintes seções deverão ser adicionadas à seção
resource
do modelo e ela será semelhante à seguinte:"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
Após habilitar uma identidade atribuída ao sistema na VM, é recomendável conceder uma função a ela, como o acesso de Leitor ao grupo de recursos no qual foi criado. Para ajudar você com esta, encontre informações detalhadas 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 pelo sistema de uma VM, sua conta precisa da atribuição de função Atribuída do Virtual Machine. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Se você entrar no Azure localmente ou por meio do portal do Azure, use uma conta que esteja associada com a assinatura do Azure que contenha a máquina virtual.
Carregue o modelo em um editor e localize o recurso
Microsoft.Compute/virtualMachines
de interesse na seçãoresources
. Se você tiver uma VM que tenha apenas a identidade gerenciada atribuída ao sistema, poderá desabilitá-la alterando o tipo de identidade paraNone
.Microsoft.Compute/virtualMachines API versão 2018-06-01
Se a VM tiver identidades gerenciadas atribuídas ao usuário e ao sistema, remova
SystemAssigned
do tipo de identidade e mantenhaUserAssigned
junto com os valores de dicionáriouserAssignedIdentities
.Microsoft.Compute/virtualMachines API versão 2018-06-01
Se
apiVersion
for2017-12-01
e a VM tiver identidades gerenciadas ao sistema e ao usuário, removaSystemAssigned
do tipo de identidade e mantenhaUserAssigned
junto com a matrizidentityIds
das identidades gerenciadas atribuídas ao usuário.
O seguinte exemplo mostra como remover uma identidade gerenciada atribuída ao sistema de uma VM sem identidades gerenciadas atribuídas ao usuário:
{
"apiVersion": "2018-06-01",
"type": "Microsoft.Compute/virtualMachines",
"name": "[parameters('vmName')]",
"location": "[resourceGroup().location]",
"identity": {
"type": "None"
}
}
Identidade gerenciada atribuída pelo usuário
Nesta seção, você atribui uma identidade gerenciada atribuída ao usuário a uma VM do Azure usando o modelo do Azure Resource Manager.
Observação
Para criar uma identidade gerenciada atribuída ao usuário usando um modelo do Azure Resource Manager, consulte Criar uma identidade gerenciada atribuída ao usuário.
Atribuir uma identidade gerenciada atribuída ao usuário a uma VM do Azure
Para atribuir uma identidade atribuída pelo usuário a uma VM, a sua conta precisa da atribuição de função Operador de Identidade Gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
No elemento
resources
, adicione a seguinte entrada para atribuir uma identidade gerenciada atribuída ao usuário à 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
apiVersion
for2018-06-01
, as identidades gerenciadas atribuídas ao usuário serão armazenadas no formato de dicionáriouserAssignedIdentities
e o valor<USERASSIGNEDIDENTITYNAME>
deverá ser armazenado em uma variável definida na seçãovariables
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
apiVersion
for2017-12-01
, as identidades gerenciadas atribuídas ao usuário serão armazenadas na matrizidentityIds
e o valor<USERASSIGNEDIDENTITYNAME>
deverá ser armazenado em uma variável definida na seçãovariables
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>'))]" ] } }
Quando você terminar, as seguintes seções deverão ser adicionadas à seção
resource
do modelo e ela será semelhante à seguinte: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 Atribuído do Virtual Machine. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Se você entrar no Azure localmente ou por meio do portal do Azure, use uma conta que esteja associada com a assinatura do Azure que contenha a máquina virtual.
Carregue o modelo em um editor e localize o recurso
Microsoft.Compute/virtualMachines
de interesse na seçãoresources
. Se você tiver uma VM que tenha apenas a identidade gerenciada atribuída ao usuário, será possível desabilitá-la alterando o tipo de identidade paraNone
.O seguinte exemplo mostra como remover todas as identidades gerenciadas atribuídas ao usuário de uma VM sem nenhuma identidade gerenciada atribuída ao 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 identidade gerenciada atribuída ao usuário único de uma VM, remova-a do dicionário
useraAssignedIdentities
.Caso você tenha uma identidade gerenciada atribuída ao sistema, mantenha a identidade com o valor
type
no valoridentity
.Microsoft.Compute/virtualMachines API versão 2017-12-01
Para remover uma identidade gerenciada atribuída ao usuário único de uma VM, remova-a da matriz
identityIds
.Caso você tenha uma identidade gerenciada atribuída ao sistema, mantenha a identidade com o valor
type
no valoridentity
.
Próximas etapas
Neste artigo, usando CURL para fazer chamadas para o ponto de extremidade REST do Azure Resource Manager, você aprenderá como 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 você ainda não tiver uma conta do Azure, inscreva-se em uma conta gratuita antes de continuar.
Pré-requisitos
- Se você não estiver familiarizado com as identidades gerenciadas dos recursos do Azure, confira O que são as identidades gerenciadas dos recursos do Azure?. Para saber mais sobre tipos de identidade gerenciada atribuída pelo sistema e pelo usuário, confira Tipos de identidade gerenciada.
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Identidade gerenciada atribuída pelo sistema
Nesta seção, você aprenderá como habilitar e desabilitar a identidade gerenciada atribuída pelo sistema em uma VM do Azure usando CURL para fazer chamadas para o ponto de extremidade REST do Azure Resource Manager.
Ativar identidade gerenciada atribuída pelo 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, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Criar um grupo de recursos para contenção e implantação de VM e seus recursos relacionados usando az group create. Ignore esta etapa, se você já tiver o grupo de recursos que deseja usar:
az group create --name myResourceGroup --location westus
Crie um adaptador de rede para a VM:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Recupere um token de acesso do 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
Com o Azure Cloud Shell, crie uma VM usando o CURL para chamar o ponto de extremidade REST do Azure Resource Manager. O exemplo a seguir cria uma VM denominada myVM com uma identidade gerenciada designada pelo sistema, conforme identificada no corpo da solicitação pelo valor
"identity":{"type":"SystemAssigned"}
. Substitua<ACCESS TOKEN>
pelo valor recebido na etapa anterior quando você solicitou um token de acesso de portador e o valor de<SUBSCRIPTION ID>
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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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 } } ] } } }
Ativar identidade atribuída pelo 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, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Recupere um token de acesso do 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
Use o seguinte comando CURL para chamar o terminal REST do Azure Resource Manager para ativar a identidade gerenciada atribuída pelo sistema em sua VM, conforme identificado no corpo da solicitação pelo valor
{"identity":{"type":"SystemAssigned"}
para uma VM denominada myVM. Substitua<ACCESS TOKEN>
pelo valor recebido na etapa anterior quando você solicitou um token de acesso de portador e o valor de<SUBSCRIPTION ID>
apropriado para seu ambiente.Importante
Para garantir que você não exclua nenhuma identidade gerenciada atribuída pelo usuário que esteja atribuída à VM, é necessário 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 identidades gerenciadas atribuídas pelo usuário e atribuídas à VM, conforme identificado no valoridentity
na resposta, pule para a etapa 3, que mostra como manter as identidades gerenciadas atribuídas pelo usuário ao ativar a identidade gerenciada atribuída pelo sistema na 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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "identity":{ "type":"SystemAssigned" } }
Para habilitar a identidade gerenciada atribuída pelo sistema em uma VM com identidades gerenciadas atribuídas pelo usuário existentes, você precisa adicionar
SystemAssigned
aotype
valor.Por exemplo, se sua VM tiver as identidades gerenciadas atribuídas pelo usuário
ID1
eID2
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>
pelos valores apropriados para seu ambiente.A versão da API
2018-06-01
armazena identidades gerenciadas designadas pelo usuário no valoruserAssignedIdentities
em um formato de dicionário, em oposição ao valoridentityIds
em um formato de matriz usado na versão da API2017-12-01
.API DE 2018 VERSÃO-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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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" ] } }
Desativar identidade gerenciada atribuída pelo sistema de uma VM do Azure
Para desabilitar a identidade gerenciada atribuída ao sistema em uma VM, a conta precisará da atribuição de função Colaborador da Máquina Virtual. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Recupere um token de acesso do 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
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 desativa a identidade gerenciada designada pelo sistema conforme identificada no corpo da solicitação pelo valor
{"identity":{"type":"None"}}
de uma VM denominada myVM. Substitua<ACCESS TOKEN>
pelo valor recebido na etapa anterior quando você solicitou um token de acesso de portador e o valor de<SUBSCRIPTION ID>
apropriado para seu ambiente.Importante
Para garantir que você não exclua nenhuma identidade gerenciada atribuída pelo usuário que esteja atribuída à VM, é necessário 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 identidades gerenciadas atribuídas pelo usuário e atribuídas à VM, conforme identificado no valoridentity
na resposta, vá para a etapa 3, que mostra como manter as identidades gerenciadas atribuídas pelo usuário e desabilitar a identidade gerenciada atribuída pelo sistema na 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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "identity":{ "type":"None" } }
Para remover a identidade gerenciada atribuída pelo sistema de uma máquina virtual que tenha identidades gerenciadas designadas pelo usuário, remova
SystemAssigned
do valor{"identity":{"type:" "}}
e mantenha o valorUserAssigned
e os valores do dicionáriouserAssignedIdentities
se você estiver usando Versão da API 2018-06-01. Se você estiver usando a versão da API 2017-12-01 ou anterior, mantenha o arrayidentityIds
.
Identidade gerenciada atribuída pelo usuário
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 Contribuidor de Máquina Virtual e Operador de Identidade Gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Recupere um token de acesso do 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
Crie um adaptador de rede para a VM:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
Recupere um token de acesso do 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
Crie uma identidade gerenciada atribuída pelo usuário usando as instruções encontradas aqui: Crie uma identidade gerenciada atribuída pelo usuário.
Crie uma VM usando o CURL para chamar o ponto de extremidade REST do Azure Resource Manager. O exemplo a seguir cria uma VM denominada myVM no grupo de recursos myResourceGroup com uma identidade gerenciada designada pelo usuário
ID1
, conforme identificado no corpo da solicitação pelo valor"identity":{"type":"UserAssigned"}
. Substitua<ACCESS TOKEN>
pelo valor recebido na etapa anterior quando você solicitou um token de acesso de portador e o valor de<SUBSCRIPTION ID>
apropriado para seu ambiente.API DE 2018 VERSÃO-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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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 usuário atribuído a uma VM existente do Azure
Para atribuir uma identidade atribuída pelo usuário a uma VM, sua conta precisa das atribuições de função Contribuidor de Máquina Virtual e Operador de Identidade Gerenciada. Nenhuma outra atribuição de função do diretório do Microsoft Entra é necessária.
Recupere um token de acesso do 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
Crie uma identidade gerenciada atribuída pelo usuário usando as instruções encontradas aqui, Crie uma identidade gerenciada atribuída pelo usuário.
Para garantir que você não exclua as identidades gerenciadas atribuídas pelo usuário ou pelo sistema atribuídas à VM, é necessário listar os tipos de identidade atribuídos à VM usando o seguinte comando CURL. Se houver identidades gerenciadas atribuídas ao conjunto de dimensionamento de máquinas virtuais, elas serão listadas no valor
identity
.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 da solicitação Descrição Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Se você tiver qualquer usuário ou identidades gerenciadas atribuídas pelo sistema atribuídas à VM, conforme identificado no valor
identity
na resposta, vá para a etapa 5 que mostra como manter a identidade gerenciada atribuída pelo sistema ao adicionar um gerenciado atribuído pelo usuário identidade na sua VM.Se você não tiver nenhuma identidade gerenciada atribuída pelo usuário atribuída à 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 gerenciada designada pelo usuário,
ID1
, a uma VM denominada myVM no grupo de recursos myResourceGroup. Substitua<ACCESS TOKEN>
pelo valor recebido na etapa anterior quando você solicitou um token de acesso de portador e o valor de<SUBSCRIPTION ID>
apropriado para seu ambiente.API DE 2018 VERSÃO-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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "identity":{ "type":"userAssigned", "identityIds":[ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID1" ] } }
Se você tiver uma identidade gerenciada designada pelo usuário ou designada pelo sistema atribuída à sua VM:
API DE 2018 VERSÃO-06-01
Adicionar a identidade atribuída pelo usuário gerenciada para o
userAssignedIdentities
valor do dicionário.Por exemplo, se você tiver uma identidade gerenciada atribuída pelo sistema e a identidade gerenciada atribuída pelo usuário
ID1
atualmente atribuída à sua VM e quiser adicionar a identidade gerenciada atribuída pelo usuárioID2
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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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
Reter as identidades gerenciadas atribuídas pelo usuário que você gostaria de manter no valor da matriz
identityIds
ao adicionar a nova identidade gerenciada atribuída pelo usuário.Por exemplo, se você tiver uma identidade gerenciada atribuída pelo sistema e a identidade gerenciada atribuída pelo usuário
ID1
atualmente atribuída à sua VM e quiser adicionar a identidade gerenciada atribuída pelo usuárioID2
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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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 ao usuário a uma VM, a conta precisará da atribuição de função Colaborador da Máquina Virtual.
Recupere um token de acesso do 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
Para garantir que você não exclua nenhuma identidade gerenciada atribuída pelo usuário que gostaria de manter atribuída à VM ou remover a identidade gerenciada atribuída pelo sistema, é necessário 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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Se houver identidades gerenciadas atribuídas à VM, elas serão listadas na resposta no valor
identity
.Por exemplo, se você tiver identidades gerenciadas atribuídas pelo usuário
ID1
eID2
atribuídas à sua VM, e só quiser manterID1
atribuída e manter a identidade atribuída pelo sistema:API DE 2018 VERSÃO-06-01
Adicionar
null
para o usuário atribuído gerenciado identidade que você deseja 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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "identity":{ "type":"SystemAssigned, UserAssigned", "userAssignedIdentities":{ "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ID2":null } } }
VERSÃO DA API 2017-12-01
Reter apenas as identidades gerenciadas atribuídas pelo usuário que você gostaria de manter na matriz
identityIds
: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 da solicitação Descrição Content-Type Obrigatórios. Defina como application/json
.Autorização Obrigatórios. Defina como um Bearer
token de acesso válido.Corpo da solicitação
{ "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 atribuídas pelo usuário, você poderá remover todas as identidades gerenciadas atribuídas pelo usuário alternando para usar somente 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 da solicitação | Descrição |
---|---|
Content-Type | Obrigatórios. Defina como application/json . |
Autorização | Obrigatórios. Defina como um Bearer token de acesso válido. |
Corpo da solicitação
{
"identity":{
"type":"SystemAssigned"
}
}
Se sua VM tiver somente identidades gerenciadas atribuídas pelo usuário e você quiser removê-las, 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 da solicitação | Descrição |
---|---|
Content-Type | Obrigatórios. Defina como application/json . |
Autorização | Obrigatórios. Defina como um Bearer token de acesso válido. |
Corpo da solicitação
{
"identity":{
"type":"None"
}
}
Próximas etapas
Para obter informações sobre como criar, listar ou excluir identidades gerenciadas atribuídas pelo usuário usando o REST, consulte:
Neste artigo, você aprende como habilitar e remover identidades gerenciadas para recursos do Azure para uma VM do Azure usando um SDK do Azure.
Pré-requisitos
- Se você não estiver familiarizado com as identidades gerenciadas para funcionalidades de recursos do Azure, veja esta visão geral. Caso você ainda não tenha uma conta do Azure, inscreva-se em uma conta gratuita antes de continuar.
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 conforme outro suporte é adicionado:
Próximas etapas
- Consulte os artigos relacionados em Configurar identidade para uma VM do Azure, para saber como também é possível usar o portal do Azure, o PowerShell, a CLI e os modelos de recursos.