Configurar identidades gerenciadas para recursos do Azure em uma VM do Azure usando modelos
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 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
.