Configurar identidades gerenciadas para recursos do Azure em uma VM do Azure usando PowerShell
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.
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> Update-AzVM -ResourceGroupName <RESOURCE GROUP> -VM $vm -IdentityType UserAssigned -IdentityID "/subscriptions/<SUBSCRIPTION ID>/resourcegroups/<RESROURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>"
Remover uma identidade gerenciada atribuída pelo usuário de uma VM do Azure
Para remover uma identidade atribuída 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: