Configurar identidades gerenciadas para recursos do Azure em um conjunto de dimensionamento de máquinas virtuais do Azure usando um modelo
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, você aprenderá como executar as seguintes identidades gerenciadas para operações de recursos do Azure em um conjunto de dimensionamento de máquinas virtuais do Azure, usando o modelo de implantação do Azure Resource Manager:
- Habilitar e desabilitar a identidade gerenciada atribuída ao sistema em um conjunto de dimensionamento de máquinas virtuais do Azure
- Adicionar e remover uma identidade gerenciada atribuída ao usuário em um conjunto de dimensionamento de máquinas virtuais 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. 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 realizar as operações de gerenciamento descritas neste artigo, sua conta precisará das seguintes atribuições de controle de acesso baseado em função do Azure:
Observação
Não são necessárias atribuições de função do diretório adicionais do Microsoft Entra.
- Colaborador da Máquina Virtual para criar um conjunto de dimensionamento de máquinas virtuais e habilitar e remover identidade gerenciada atribuída ao usuário e/ou ao sistema de um conjunto de dimensionamento de máquinas virtuais.
- Função de Contratada de Identidade Gerenciada para criar uma identidade gerenciada atribuída pelo usuário.
- Papel de Operador de Identidade Gerenciado para atribuir e remover uma identidade gerenciada atribuída pelo usuário de e para um conjunto de dimensionamento de máquina virtual.
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. A habilitação de identidades gerenciadas para recursos do Azure 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á a identidade gerenciada atribuída ao sistema usando um modelo do Azure Resource Manager.
Habilitar a identidade gerenciada atribuída pelo sistema durante a criação de um conjunto de dimensionamento de máquinas virtuais ou em um conjunto de dimensionamento de máquinas virtuais existente
Se você entrar no Azure localmente ou por meio do Portal do Azure, use uma conta que esteja associada à assinatura do Azure que contém o conjunto de dimensionamento de máquinas virtuais.
Para habilitar a identidade gerenciada atribuída ao sistema, carregue o modelo em um editor, localize o recurso
Microsoft.Compute/virtualMachinesScaleSets
de interesse dentro da seção recursos e adicione a propriedadeidentity
no mesmo nível que a propriedade"type": "Microsoft.Compute/virtualMachinesScaleSets"
. Use a seguinte sintaxe:"identity": { "type": "SystemAssigned" }
Quando tiver concluído, as seções a seguir deverão ser adicionadas à seção recurso do modelo e serem semelhantes ao exemplo mostrado abaixo:
"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "SystemAssigned", }, "properties": { //other resource provider properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
Desabilitar uma identidade gerenciada atribuída ao sistema de um conjunto de dimensionamento de máquinas virtuais do Azure
Se você tiver um conjunto de dimensionamento de máquinas virtuais que não precise mais de uma identidade gerenciada atribuída ao sistema:
Se você entrar no Azure localmente ou por meio do Portal do Azure, use uma conta que esteja associada à assinatura do Azure que contém o conjunto de dimensionamento de máquinas virtuais.
Carregue o modelo em um editor e localize o recurso
Microsoft.Compute/virtualMachineScaleSets
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/virtualMachineScaleSets API versão 01-06-2018
Se apiVersion for
2018-06-01
e a VM tiver ambas as identidades gerenciadas atribuídas ao usuário e ao sistema, removaSystemAssigned
do tipo de identidade e mantenhaUserAssigned
com os valores de dicionário userAssignedIdentities.Microsoft.Compute/virtualMachineScaleSets API versão 01-06-2018
Se apiVersion for
2017-12-01
e o conjunto de dimensionamento de máquinas virtuais tiver ambas as identidades gerenciadas atribuídas ao usuário e ao sistema, removaSystemAssigned
do tipo de identidade e mantenhaUserAssigned
juntamente 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 um conjunto de dimensionamento de máquinas virtuais sem nenhuma identidade gerenciada atribuída ao usuário:
{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(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 um conjunto de dimensionamento de máquinas virtuais 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 pelo usuário a um conjunto de dimensionamento de máquinas virtuais
No elemento
resources
, adicione a seguinte entrada para atribuir uma identidade gerenciada atribuída ao usuário ao conjunto de dimensionamento de máquinas virtuais. Certifique-se de substituir<USERASSIGNEDIDENTITY>
pelo nome da identidade gerenciada atribuída ao usuário que você criou.Microsoft.Compute/virtualMachineScaleSets API versão 01-06-2018
Se a apiVersion for
2018-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.{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "userAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } } }
Microsoft.Compute/virtualMachineScaleSets API versão 01-12-2017
Se
apiVersion
for2017-12-01
ou anterior, as identidades gerenciadas atribuídas ao usuário serão armazenadas na matrizidentityIds
e o valor<USERASSIGNEDIDENTITYNAME>
deverá ser armazenado em uma seção de variáveis definida na seção do modelo.{ "name": "[variables('vmssName')]", "apiVersion": "2017-03-30", "location": "[parameters(Location')]", "identity": { "type": "userAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITY>'))]" ] } }
Quando terminar, seu modelo deverá ser semelhante ao seguinte:
Microsoft.Compute/virtualMachineScaleSets API versão 01-06-2018
"resources": [ { //other resource provider properties... "apiVersion": "2018-06-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "UserAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]": {} } }, "properties": { //other virtual machine properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
Microsoft.Compute/virtualMachines API versão 2017-12-01
"resources": [ { //other resource provider properties... "apiVersion": "2017-12-01", "type": "Microsoft.Compute/virtualMachineScaleSets", "name": "[variables('vmssName')]", "location": "[resourceGroup().location]", "identity": { "type": "UserAssigned", "identityIds": [ "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities/',variables('<USERASSIGNEDIDENTITYNAME>'))]" ] }, "properties": { //other virtual machine properties... "virtualMachineProfile": { //other virtual machine profile properties... } } } ]
Remover a identidade gerenciada atribuída ao usuário de um conjunto de dimensionamento de máquinas virtuais do Azure
Se você tiver um conjunto de dimensionamento de máquinas virtuais que não precise mais de uma identidade gerenciada atribuída ao usuário:
Se você entrar no Azure localmente ou por meio do Portal do Azure, use uma conta que esteja associada à assinatura do Azure que contém o conjunto de dimensionamento de máquinas virtuais.
Carregue o modelo em um editor e localize o recurso
Microsoft.Compute/virtualMachineScaleSets
de interesse na seçãoresources
. Caso tenha um conjunto de dimensionamento de máquinas virtuais que tenha apenas a identidade gerenciada atribuída ao usuário, desabilite-a 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:
{ "name": "[variables('vmssName')]", "apiVersion": "2018-06-01", "location": "[parameters(Location')]", "identity": { "type": "None" } }
Microsoft.Compute/virtualMachineScaleSets API versão 01-06-2018
Para remover uma única identidade gerenciada atribuída pelo usuário de um conjunto de dimensionamento de máquinas virtuais, remova-a do dicionário
userAssignedIdentities
.Caso você tenha uma identidade atribuída ao sistema, mantenha-a com o valor
type
no valoridentity
.Microsoft.Compute/virtualMachineScaleSets API versão 01-12-2017
Para remover uma única identidade gerenciada atribuída ao usuário de um conjunto de dimensionamento de máquinas virtuais, remova-a da matriz
identityIds
.Caso você tenha uma identidade gerenciada atribuída ao sistema, mantenha a identidade com o valor
type
no valoridentity
.