Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este guia explica como criar máquinas virtuais (VM) do Azure Operator Nexus com identidades gerenciadas e como autenticar usando essas identidades. A autenticação usando identidades gerenciadas permite a capacidade de obter tokens de acesso sem a necessidade de gerenciar credenciais explicitamente.
Pré-requisitos no pacote de gerenciamento, tempo de execução e versões de API do Azure Operator Nexus
- Certifique-se de que seu Operator Nexus Cluster esteja executando a versão do pacote
2510.1de gerenciamento e a versão4.7.0de tempo de execução ou posterior. O suporte ao recurso está disponível na versão2025-07-01-previewda API, mas recomenda-se a versão GA2025-09-01ou posterior. - A CLI principal do Azure deve ser instalada com a versão
2.75ou posterior. Você pode encontrar as versões suportadas no histórico de versões da CLI do Az core. - Certifique-se de que a
networkcloudextensão az CLI está instalada com uma versão que suporte a versão da API necessária. Você pode encontrar as versões suportadas no histórico de lançamento danetworkcloudextensão no GitHub. A versão mínima necessária começa na versão de pré-visualização4.0.0b1, mas recomendam-se4.0.0ou posterior. - Este guia pressupõe que você tenha um Cluster Nexus do Operador em funcionamento e as permissões necessárias para criar e gerenciar máquinas virtuais e identidades gerenciadas em sua assinatura do Azure.
Escolha uma opção de identidade gerenciada
Você pode usar uma identidade gerenciada atribuída pelo sistema ou pelo usuário para associar à máquina virtual (VM). Escolha a opção que melhor se adapta às suas necessidades.
Para obter mais informações sobre como criar e gerenciar identidades gerenciadas e atribuições de função, consulte a documentação relevante:
- Gerenciar identidades gerenciadas atribuídas pelo usuário usando o portal do Azure
- Configurar identidades gerenciadas para recursos do Azure em uma VM
Usando uma identidade gerenciada atribuída ao sistema
A identidade gerenciada atribuída ao sistema é criada automaticamente quando a VM é criada. O ciclo de vida da identidade gerenciada atribuída ao sistema está vinculado à VM. No entanto, é necessário atribuir funções à identidade gerenciada atribuída ao sistema depois que a VM é criada. Você pode conceder as funções necessárias à identidade gerenciada atribuída ao sistema depois que a VM for criada manualmente ou usando a CLI do Azure. As atribuições de função podem ser automatizadas incorporando os comandos az CLI no script userData cloud-init; Lembre-se de que o cloud-init é executado apenas uma vez na primeira inicialização.
Usando uma identidade gerenciada atribuída pelo usuário
Se você planeja usar uma identidade gerenciada atribuída pelo usuário, crie-a antes de criar a máquina virtual. Como a identidade gerenciada atribuída pelo usuário é independente da VM, você pode atribuir as funções necessárias com antecedência. Atribuir as funções com antecedência simplifica o processo, pois a VM pode usar a identidade durante a execução do script de inicialização na nuvem de dados do usuário.
Atribuir funções à identidade gerenciada
Você deve atribuir as funções necessárias à identidade gerenciada para atender às suas necessidades. As atribuições de função podem ser feitas no nível de assinatura ou grupo de recursos, dependendo de suas necessidades.
Para obter mais informações sobre atribuições de função ou criação de funções personalizadas para permissões específicas, consulte:
- Atribuir funções do Azure usando a CLI do Azure
- Atribuir funções do Azure usando o portal do Azure
- Atribuir funções do Azure a uma identidade gerenciada
- Criar ou atualizar funções personalizadas do Azure usando um modelo ARM
Criar uma VM com a identidade gerenciada
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Utilize o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o Azure CLI num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão do Azure CLI na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Instale a versão mais recente das extensões necessárias da CLI do Azure.
Se você tiver várias assinaturas do Azure, selecione a ID de assinatura apropriada na qual os recursos devem ser cobrados usando o
az accountcomando.Antes de prosseguir com a criação da máquina virtual, verifique se a imagem do contêiner a ser usada é criada de acordo com as instruções.
Crie um grupo de recursos usando o comando
az group create. Um grupo de recursos do Azure é um grupo lógico no qual os recursos do Azure são implantados e gerenciados. Ao criar um grupo de recursos, você será solicitado a especificar um local. Esse local é o local de armazenamento dos metadados do grupo de recursos e onde os recursos são executados no Azure se você não especificar outra região durante a criação do recurso. O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.az group create --name myResourceGroup --location eastusO exemplo de saída a seguir é semelhante à criação bem-sucedida do grupo de recursos:
{ "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup", "location": "eastus", "managedBy": null, "name": "myResourceGroup", "properties": { "provisioningState": "Succeeded" }, "tags": null }Para implementar um ficheiro Bicep ou modelo ARM, precisa de permissão de escrita nos recursos que está a implementar e permissão para todas as operações no tipo de recurso Microsoft.Resources/deployments. Por exemplo, para implantar um cluster, você precisa das permissões Microsoft.NetworkCloud/virtualMachines/write e Microsoft.Resources/deployments/*. Para obter uma lista de funções e permissões, veja Funções incorporadas do Azure.
Você precisa da identificação do recurso
custom locationdo cluster do Azure Operator Nexus.Você precisa criar várias redes de acordo com seus requisitos específicos de carga de trabalho, e é essencial ter os endereços IP apropriados disponíveis para suas cargas de trabalho. Para garantir uma implementação sem problemas, é aconselhável consultar as equipas de apoio relevantes para obter assistência.
- Verifique se você tem permissões para criar identidades gerenciadas e gerenciar as atribuições de função em sua assinatura do Azure.
- Certifique-se de criar a VM com uma identidade gerenciada atribuída pelo sistema ou pelo usuário.
Conclua os Pré-requisitos para implantar cargas de trabalho de locatário para implantar uma máquina virtual Nexus.
- Antes de criar a máquina virtual, você precisa criar os recursos de rede necessários.
- Domínio de isolamento L3 - Para isolamento e roteamento de rede
- Rede L3 - Para conectividade VM
- Cloud Services Network (CSN) - Para conectividade externa e serviços de proxy
Analise como criar máquinas virtuais usando um dos seguintes métodos de implantação:
- Azure CLI
- Azure PowerShell
- Modelo ARM
- Bíceps
Associar identidades gerenciadas no momento da criação da VM
Ao criar uma VM do Operator Nexus com identidades gerenciadas, você deve atribuir uma identidade gerenciada atribuída pelo sistema ou pelo usuário durante a criação da VM. A criação da VM com uma identidade gerenciada associada habilita os recursos para o método de autenticação. Embora o recurso de VM possa ser atualizado para adicionar ou alterar a identidade gerenciada após a criação, a VM deve ser recriada para habilitar o suporte à identidade gerenciada. Se você planeja usar outros métodos de autenticação, como usar uma entidade de serviço, pode criar a VM sem uma identidade gerenciada.
Importante
Se você não especificar uma identidade gerenciada ao criar a VM, não poderá habilitar o suporte à identidade gerenciada atualizando a VM após o provisionamento.
Variáveis de ambiente
Antes de prosseguir com a implantação, defina as seguintes variáveis de ambiente para definir a configuração para sua máquina virtual (VM).
| Variable | Description |
|---|---|
ACR_PASSWORD |
Senha do Registro de Contêiner do Azure. |
ACR_URL |
URL do Registro de Contêiner do Azure. |
ACR_USERNAME |
Nome de usuário do Registro de Contêiner do Azure. |
ADMIN_USERNAME |
Nome de usuário do administrador para a VM. |
CLUSTER_CUSTOM_LOCATION |
Local personalizado da instância do Nexus. |
CLUSTER_NAME |
O nome do seu cluster Nexus. |
CPU_CORES |
(Opcional) Número de núcleos de CPU para a VM. |
CSN_ARM_ID |
ID de recurso ARM da Rede de Serviços de Nuvem (CSN). |
L3_NETWORK_ARM_ID |
ID de recurso ARM da rede L3 a ser criada. |
LOCATION |
Região do Azure para os recursos. |
MEMORY_SIZE |
(Opcional) Tamanho da memória em GiB para a VM. |
NETWORK_INTERFACE_NAME |
Nome da interface de rede. |
RESOURCE_GROUP |
O nome do grupo de recursos do Azure. |
SSH_PUBLIC_KEY |
Chave pública SSH para acesso VM. |
SUBSCRIPTION_ID |
O seu ID de subscrição do Azure. |
TENANT_ID |
O seu ID de tenant do Azure. |
UAMI_ID |
(Opcional) O ID de recurso de identidade gerenciada atribuída pelo usuário (UAMI). Não é necessário ao usar a identidade gerenciada atribuída pelo sistema. |
UAMI_NAME |
(Opcional) Nome da identidade gerenciada atribuída pelo usuário. Não é necessário ao usar a identidade gerenciada atribuída pelo sistema. |
VM_DISK_SIZE |
(Opcional) Tamanho do disco do SO em GiB. |
VM_IMAGE |
Imagem de contêiner para a VM. |
VM_NAME |
Nome da máquina virtual. |
Para definir essas variáveis, use os seguintes comandos e substitua os valores de exemplo pelos valores reais:
# Required variables
RESOURCE_GROUP="my-resource-group"
CLUSTER_NAME="my-cluster-name"
TENANT_ID="00000000-0000-0000-0000-000000000000"
SUBSCRIPTION_ID="00000000-0000-0000-0000-000000000000"
LOCATION="$(az group show --name $RESOURCE_GROUP --query location --subscription $SUBSCRIPTION -o tsv)"
CLUSTER_CUSTOM_LOCATION=$(az networkcloud cluster show -g "$RESOURCE_GROUP" -n "$CLUSTER_NAME" --query "clusterExtendedLocation.name" -o tsv)
# VM specific variables (replace with your preferred values)
VM_NAME="myNexusVirtualMachine"
# (Optional) User-Assigned Managed Identity (UAMI) parameters
UAMI_NAME="myUamiName"
UAMI_ID="</subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<uami-name>"
# VM Image parameters
VM_IMAGE="<VM image, example: myacr.azurecr.io/ubuntu:20.04>"
ACR_URL="<Azure Container Registry URL, example: myacr.azurecr.io>"
ACR_USERNAME="<Azure Container Registry username>"
ACR_PASSWORD="<Azure Container Registry password>"
# (Optional) variables (will use defaults if not set), values here are examples you can modify as needed
CPU_CORES="4"
MEMORY_SIZE="8"
VM_DISK_SIZE="64"
# VM credentials
ADMIN_USERNAME="azureuser"
SSH_PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)"
# Network parameters
CSN_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/cloudServicesNetworks/<csn-name>"
L3_NETWORK_ARM_ID="/subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.NetworkCloud/l3Networks/<l3Network-name>"
NETWORK_INTERFACE_NAME="mgmt0"
Automatize usando um script de dados de utilizador do cloud-init
É possível passar um script cloud-init para a VM durante a criação usando o --user-data-content parâmetro (ou o alias --udc).
O script do cloud-init deve ser codificado em base64 antes de passá-lo para o parâmetro --user-data-content "$ENCODED_USER_DATA" do comando az networkcloud virtualmachine create.
O script cloud-init é executado durante a primeira inicialização da VM e pode ser usado para executar várias tarefas de configuração.
Certifique-se de concluir a configuração necessária para a opção de identidade gerenciada escolhida antes de criar a VM, como atribuir funções ou permissões.
Depois que a VM é criada e inicializada, você pode verificar os logs de inicialização na nuvem para verificar se o script foi concluído com êxito.
O arquivo de logs cloud-init é encontrado em /var/log/cloud-init-output.log.
É necessário SSH na VM para acessar os logs.
Observação
O parâmetro anterior --user-data foi preterido e será removido em uma versão futura.
Verifique as atualizações mais recentes no histórico de versões da extensãonetworkcloud.
Sugestão
O script cloud-init é executado somente durante a primeira inicialização da VM. Você também pode autenticar com identidades gerenciadas manualmente de dentro da VM após a criação e a inicialização.
Configurações de proxy necessárias para habilitar a conectividade de saída
Você deve definir as configurações de proxy no script cloud-init ou manualmente dentro da máquina virtual (VM).
O proxy CSN (Cloud Service Network) é usado pela VM para tráfego de saída, que deve ser sempre http://169.254.0.11:3128.
export HTTPS_PROXY=http://169.254.0.11:3128
export https_proxy=http://169.254.0.11:3128
export HTTP_PROXY=http://169.254.0.11:3128
export http_proxy=http://169.254.0.11:3128
Da mesma forma, você também deve configurar a NO_PROXY variável de ambiente para excluir o endereço 169.254.169.254IP.
O Endpoint do Instance Metadata Service (IMDS) é utilizado pela VM para comunicar-se com o serviço de tokens da plataforma para a recuperação de tokens de identidade gerida.
A NO_PROXY variável pode ter vários valores separados por vírgula, mas, no mínimo, deve incluir o endereço IP do IMDS.
Adicione outros endereços que não deves encaminhar através do proxy CSN à variável NO_PROXY conforme necessário para o teu ambiente.
export NO_PROXY=localhost,127.0.0.1,::1,169.254.169.254
export no_proxy=localhost,127.0.0.1,::1,169.254.169.254
Autenticação usando a CLI do Azure e identidades gerenciadas
Não importa a abordagem preferida de usar um script cloud-init ou execução manual, o processo de autenticação usando identidades gerenciadas é semelhante. A principal diferença é que, ao usar uma identidade gerenciada atribuída pelo usuário, é necessário especificar o ID de recurso da identidade.
Autenticar com uma Identidade Gerida Atribuída pelo Sistema
az login --identity --allow-no-subscriptions
Autenticar com uma Identidade Gerida Atribuída pelo Utilizador
export UAMI_ID=$(az identity show --name "$UAMI_NAME" --resource-group "$RESOURCE_GROUP" --query "id" -o tsv)
az login --identity --allow-no-subscriptions --msi-resource-id "${UAMI_ID}"
Obter um token de acesso usando a identidade gerenciada
Depois de autenticar com êxito usando a identidade gerenciada, você pode recuperar um token de acesso para um recurso específico do Azure. Esse token pode ser usado para acessar os serviços do Azure com segurança.
ACCESS_TOKEN=$(az account get-access-token --resource https://management.azure.com/ --query accessToken -o tsv)
Artigos relacionados
Pode ser útil rever o guia de solução de problemas para problemas comuns e armadilhas.
Ainda tem problemas?
Se as etapas descritas não fornecerem um caminho para resolver o problema ou se você ainda tiver dúvidas, entre em contato com o suporte. Por favor, forneça o máximo de detalhes possível sobre o problema que você está enfrentando, incluindo quaisquer mensagens de erro ou logs que possam ser relevantes. Isso ajudará a equipe de suporte a ajudá-lo de forma mais eficaz.
Você pode abrir uma solicitação de suporte por meio do portal do Azure.
Para obter mais informações sobre planos de suporte, consulte Planos de suporte do Azure.