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.
Consulte os seguintes Guias de início rápido 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
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.
Entre no portal do Azure usando uma conta associada à assinatura do Azure que contém a VM.
Navegue até a Máquina Virtual desejada e selecione Identidade.
Em Sistema atribuído, Estado, selecione Ativado e, em seguida, clique em Guardar:
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:
Entre no portal do Azure usando uma conta associada à assinatura do Azure que contém a VM.
Navegue até a Máquina Virtual desejada e selecione Identidade.
Em Sistema atribuído, Estado, selecione Desativado e, em seguida, clique em Guardar:
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:
- 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 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.
Entre no portal do Azure usando uma conta associada à assinatura do Azure que contém a VM.
Navegue até a VM desejada e clique em Identidade, Usuário atribuído e, em seguida, em +Adicionar.
Clique na identidade atribuída pelo usuário que você deseja adicionar à VM e clique em Adicionar.
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.
Entre no portal do Azure usando uma conta associada à assinatura do Azure que contém a VM.
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).
Próximos passos
- Usando o portal do Azure, conceda à identidade gerenciada de uma VM do Azure acesso a outro recurso do Azure.
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
- Se você não estiver familiarizado com identidades gerenciadas para recursos do Azure, consulte O que são identidades gerenciadas para recursos do Azure?. Para saber mais sobre os tipos de identidade gerenciada atribuídos pelo sistema e pelo usuário, consulte Tipos de identidade gerenciada.
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.
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
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.
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
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.
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>
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" }
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>
, ,<USER NAME>
<PASSWORD>
,<USER ASSIGNED IDENTITY NAME>
<ROLE>
, 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.
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" }
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 recursoname
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
- Visão geral das identidades gerenciadas para recursos do Azure
- Para obter os inícios rápidos completos de criação de VM do Azure, consulte:
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-AzAccount
o .
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.
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.
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.
Recupere e anote o
ObjectID
(conforme especificado noId
campo dos valores retornados) da entidade de serviço da VM:Get-AzADServicePrincipal -displayname "myVM"
Recupere e anote o
ObjectID
(conforme especificado noId
campo dos valores retornados) do grupo:Get-AzADGroup -searchstring "myGroup"
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:
Recupere as propriedades da VM usando o
Get-AzVM
cmdlet e defina o-IdentityType
parâmetro 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 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.
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.
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>
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 é oId
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
Visão geral das identidades gerenciadas para recursos do Azure
Para obter os inícios rápidos completos de criação de VM do Azure, consulte:
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:
- Usando um modelo personalizado do Azure Marketplace, que permite criar um modelo do zero ou baseá-lo em um modelo comum ou de início rápido existente.
- Derivando de um grupo de recursos existente, exportando um modelo da implantação original ou do estado atual da implantação.
- Usando um editor JSON local (como VS Code) e, em seguida, carregando e implantando usando PowerShell ou CLI.
- Usando o projeto do Grupo de Recursos do Azure do Visual Studio para criar e implantar um modelo.
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.
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.
Para habilitar a identidade gerenciada atribuída ao sistema, carregue o modelo em um editor, localize o
Microsoft.Compute/virtualMachines
recurso de interesse dentro daresources
seção e adicione a"identity"
propriedade no mesmo nível da"type": "Microsoft.Compute/virtualMachines"
propriedade. Utilize a seguinte sintaxe:"identity": { "type": "SystemAssigned" },
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.
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.
Carregue o modelo em um editor e localize o
Microsoft.Compute/virtualMachines
recurso de interesse dentro daresources
seção. Se você tiver uma VM que tenha apenas identidade gerenciada atribuída ao sistema, poderá desativá-la alterando o tipo de identidade paraNone
.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 mantenhaUserAssigned
junto com os valores douserAssignedIdentities
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, removaSystemAssigned
do tipo de identidade e mantenhaUserAssigned
junto com aidentityIds
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.
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 pelouserAssignedIdentities
usuário serão armazenadas no formato de dicionário e o<USERASSIGNEDIDENTITYNAME>
valor deverá ser armazenado em uma variável definida navariables
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 peloidentityIds
usuário serão armazenadas na matriz e o<USERASSIGNEDIDENTITYNAME>
valor deverá ser armazenado em uma variável definida navariables
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>'))]" ] } }
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.
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.
Carregue o modelo em um editor e localize o
Microsoft.Compute/virtualMachines
recurso de interesse dentro daresources
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 paraNone
.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 doidentity
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 doidentity
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
- Se você não estiver familiarizado com identidades gerenciadas para recursos do Azure, consulte O que são identidades gerenciadas para recursos do Azure?. Para saber mais sobre os tipos de identidade gerenciada atribuídos pelo sistema e pelo usuário, consulte Tipos de identidade gerenciada.
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.
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
Crie uma interface de rede para sua VM:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
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
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.
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
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 aidentity
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" } }
Para habilitar a
SystemAssigned
identidade gerenciada atribuída pelo sistema em uma VM com identidades gerenciadas atribuídas pelo usuário existentes, você precisa adicionartype
ao valor.Por exemplo, se sua VM tiver as identidades
ID1
gerenciadas atribuídas pelo usuário 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>
com valores apropriados ao seu ambiente.A versão
2018-06-01
da API armazena identidades gerenciadas atribuídas pelo usuário nouserAssignedIdentities
valor em um formato de dicionário, em oposição aoidentityIds
valor em um formato de matriz usado na versão2017-12-01
da 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.
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
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 aidentity
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 usandouserAssignedIdentities
. Se você estiver usando a API versão 2017-12-01 ou anterior, mantenha aidentityIds
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.
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
Crie uma interface de rede para sua VM:
az network nic create -g myResourceGroup --vnet-name myVnet --subnet mySubnet -n myNic
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
Crie uma identidade gerenciada atribuída pelo usuário usando as instruções encontradas aqui: Criar uma identidade gerenciada atribuída pelo usuário.
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
ID1
gerenciada 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.
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
Crie uma identidade gerenciada atribuída pelo usuário usando as instruções encontradas aqui, Criar uma identidade gerenciada atribuída pelo usuário.
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.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" ] } }
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 identidadeID2
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 identidadeID2
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 .
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
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 eID2
atribuídas à sua VM e quiser apenas manterID1
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
- Se não estiver familiarizado com a funcionalidade das identidades geridas para os recursos do Azure, veja esta descrição geral. Se não tiver uma conta do Azure, inscreva-se numa 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 à medida que outro suporte é adicionado:
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.