Acesso à VM de emergência (EVA)

O EVA (serviço de acesso de VM de emergência) permite que um usuário solicite ajuda do operador em cenários em que esse usuário está bloqueado da máquina virtual e a operação de reimplantação não ajuda a recuperar o acesso por meio da rede.

Observação

O EVA foi lançado com disponibilidade geral a partir do Azure Stack Hub 2301.

Esse recurso deve ser habilitado por assinatura e o operador precisa habilitar o acesso à Área de Trabalho Remota para que o usuário cloudadmin acesse as VMs do console de recuperação de emergência (ERCS).

A primeira etapa para o usuário é solicitar acesso ao console da VM por meio do PowerShell. A solicitação fornece consentimento e permite que o operador com informações adicionais se conecte à máquina virtual por meio de seu console. O acesso ao console não depende da conectividade de rede e usa um canal de dados do hipervisor.

O operador só poderá se autenticar no sistema operacional em execução dentro da VM se as credenciais forem conhecidas. Nesse ponto, o operador também pode compartilhar telas com o usuário e resolve o problema juntos para restaurar a conectividade de rede.

Importante

Para VMs que executam o Windows Server, o recurso EVA é limitado a computadores em execução com uma GUI (interface gráfica do usuário). Para o Windows Server, o sistema operacional principal não dá suporte à funcionalidade de teclado virtual. Como não é possível enviar a combinação de teclas Ctrl+Alt+Del como entrada, você não pode entrar em um servidor principal, mesmo que possa se conectar ao console. Se você precisar resolver um problema com o sistema operacional principal do Windows, entre em contato com o suporte da Microsoft para fornecer acesso ao console de um PEP desbloqueado.

O operador habilita uma assinatura de usuário para EVA

Nesse cenário, o operador pode decidir qual assinatura deve ser capaz de usar o recurso de acesso de VM de emergência.

Primeiro, execute o script do PowerShell a seguir. Para executar esse script, você deve ter o PowerShell do Azure Stack Hub instalado. Siga as diretrizes sobre como instalar o PowerShell do Azure Stack Hub. Substitua os espaços reservados da variável pelos valores corretos:

# Replace strings with your values before running the script
$FQDN = "External FQDN"
$RegionName = "Azure Stack Region Name"
# The value for "TenantID" should always be the tenant ID of home directory as it's only used for connecting to the admin resource manager endpoint.
$TenantID = "TenantID"
$TenantSubscriptionId = "Tenant Subscription ID"

$tenantSubscriptionSettings = @{
    TenantSubscriptionId = [string]$tenantSubscriptionId
}

# Add environment & authenticate
Add-AzureRmEnvironment -Name AzureStackAdmin -ARMEndpoint https://adminmanagement.$RegionName.$FQDN
Login-AzureRmAccount -Environment AzureStackAdmin -TenantId $TenantID

Invoke-AzureRmResourceAction `
    -ResourceName "$($RegionName)/Microsoft.Compute.EmergencyVMAccess" `
    -ResourceType "Microsoft.Compute.Admin/locations/features" `
    -Action "enableTenantSubscriptionFeature" `
    -Parameters $tenantSubscriptionSettings `
    -ApiVersion "2020-11-01" `
    -ErrorAction Stop `
    -Force

Usuário para solicitar acesso ao console da VM

Como usuário, você dá consentimento ao operador para criar acesso de console para uma VM específica.

  1. Como usuário, abra o PowerShell, entre em sua assinatura e conecte-se ao Azure Stack Hub, conforme descrito aqui.

  2. Execute o seguinte script. Você deve substituir a ID da assinatura, o grupo de recursos e o nome da VM para construir o VMResourceID:

    $SubscriptionID = "your Azure subscription ID" 
    $ResourceGroup = "your resource group name" 
    $VMName = "your VM name" 
    $vmResourceId = "/subscriptions/$SubscriptionID/resourceGroups/$ResourceGroup/providers/Microsoft.Compute/virtualMachines/$VMName" 
    
    $enableVMAccessResponse = Invoke-AzureRMResourceAction `
        -ResourceId $vmResourceId `
        -Action "enableVmAccess" `
        -ApiVersion "2020-06-01" `
        -ErrorAction Stop `
        -Force
    
    Write-Host "Please provide the following output to operator`n" -ForegroundColor Yellow
    Write-Host "ERCS Name:`t$(($enableVMAccessResponse).ERCSName)" -ForegroundColor Cyan
    Write-Host "ConnectTo-TenantVm -ResourceID $($vmResourceId)" -ForegroundColor Green
    Write-Host "Delete-TenantVMSession -ResourceID $($vmResourceId)" -ForegroundColor Green
    

  1. O script retorna o ERCS (nome do console de recuperação de emergência), que o locatário fornece ao operador, juntamente com a VMResourceID.

O operador habilita o acesso de área de trabalho remota a VMs do ERCS

A próxima etapa para o operador do Azure Stack Hub é habilitar o acesso da Área de Trabalho Remota às VMs do Console de Recuperação de Emergência (ERCS), que hospedam os pontos de extremidade privilegiados.

Execute os comandos a seguir no PEP (ponto de extremidade privilegiado) na estação de trabalho do operador que você usa para se conectar ao ERCS. O comando adiciona o IP da estação de trabalho à lista de segurança de rede. Siga as diretrizes sobre como se conectar ao PEP. O operador pode ser um membro do grupo de usuários cloudadmin ou do próprio cloudadmin :

Grant-RdpAccessToErcsVM

Para desabilitar o acesso da área de trabalho remota às VMs do Console de Recuperação de Emergência (ERCS), execute o seguinte comando no PEP (ponto de extremidade privilegiado):

Revoke-RdpAccessToErcsVM

Observação

Qualquer uma das VMs do ERCS receberá a solicitação de acesso do usuário locatário. Como operador, você pode criar uma sessão PEP somente para a VM ERCS recebida do locatário (a saída de $enableVMAccessResponse).

  1. O operador usa o nome ERCS e se conecta a ele usando o RDP (Cliente de Área de Trabalho Remota); por exemplo, da OAW (estação de trabalho de acesso do operador).

    Observação

    O operador é autenticado usando a mesma conta de administrador de nuvem que executou Grant-RdpAccessToErcsVM.

  2. Depois de conectado à VM do ERCS via RDP, inicie o PowerShell.

  3. Conecte-se ao console da máquina virtual do locatário usando o seguinte comando:

    ConnectTo-TenantVm -ResourceID
    
  4. O operador agora se conecta à tela do console da máquina virtual de locatário à qual precisa se autenticar usando as credenciais de cloudadmin novamente. O operador não tem credenciais para entrar no sistema operacional convidado.

    Observação

    Na tela de entrada, pressionar as teclas Windows + U inicia o teclado virtual, o que permite o envio de CTRL + ALT + Delete. Você deve estar no modo RDP de tela inteira para usar a combinação de teclas Windows + U.

  5. O operador agora pode fazer o compartilhamento de tela com o locatário para depurar quaisquer problemas que impeçam a conexão com a VM por meio da rede.

  6. Quando terminar, o operador poderá executar o seguinte comando para remover o consentimento do usuário:

    Delete-TenantVMSession -ResourceID
    

    Observação

    O consentimento do usuário expira automaticamente após 8 horas e revogará todo o acesso pelo operador.