Configurar identidades gerenciadas para recursos do Azure em uma VM do Azure usando a CLI do Azure

As identidades gerenciadas para recursos do Azure são 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. Você pode usar essa identidade para autenticar em qualquer serviço que ofereça suporte à autenticação do Microsoft Entra, sem ter credenciais em seu código.

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

  • 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.

  1. 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
    
  2. Crie uma VM com az vm create. O exemplo a seguir cria uma VM chamada myVM com uma identidade gerenciada atribuída ao --assign-identity sistema, conforme solicitado pelo 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 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.

  1. 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
    
  2. 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 pelo 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.

  1. 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>
    
  2. 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, apenas caracteres alfanuméricos (0-9, a-z e A-Z) e o hífen (-) são suportados. 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": "73444643-8088-4d70-9532-c3a0fdc190fz",
        "clientSecretUrl": "https://control-westcentralus.identity.azure.net/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<myUserAssignedIdentity>/credentials?tid=5678&oid=9012&aid=73444643-8088-4d70-9532-c3a0fdc190fz",
        "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
        "location": "westcentralus",
        "name": "<USER ASSIGNED IDENTITY NAME>",
        "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
        "resourceGroup": "<RESOURCE GROUP>",
        "tags": {},
        "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
        "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  3. 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 , , , <PASSWORD>, , <USER ASSIGNED IDENTITY NAME><ROLE><VM NAME><USER NAME>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.

  1. 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

    A criação de identidades gerenciadas atribuídas pelo usuário com caracteres especiais (ou seja, sublinhado) no nome não é suportada no momento. 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": "73444643-8088-4d70-9532-c3a0fdc190fz",
      "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=73444643-8088-4d70-9532-c3a0fdc190fz",
      "id": "/subscriptions/<SUBSCRIPTON ID>/resourcegroups/<RESOURCE GROUP>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<USER ASSIGNED IDENTITY NAME>",
      "location": "westcentralus",
      "name": "<USER ASSIGNED IDENTITY NAME>",
      "principalId": "e5fdfdc1-ed84-4d48-8551-fe9fb9dedfll",
      "resourceGroup": "<RESOURCE GROUP>",
      "tags": {},
      "tenantId": "733a8f0e-ec41-4e69-8ad8-971fc4b533bl",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"    
    }
    
  2. 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 recurso name 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 ao sistema e ao 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