EVA (acesso de VM de emergência) – Versão prévia pública

Importante

O acesso de VM de emergência para o Azure Stack Hub está em versão prévia pública e só se aplica à versão 2108 e posterior.

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.

Esse recurso deve ser habilitado por assinatura para funcionar 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.

É importante observar que o operador só pode 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 resolver o problema juntos para restaurar a conectividade de rede.

Importante

O recurso EVA é limitado a computadores Windows Server em execução com uma GUI, pois o sistema operacional principal não dá suporte à funcionalidade de teclado na tela. 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 windows core, 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 seguinte script do PowerShell. 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 de 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 = $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ê fornece consentimento ao operador para criar acesso ao 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 a 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.

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 seguintes comandos no PEP (ponto de extremidade privilegiado) na estação de trabalho do operador que será usada para se conectar ao ERCS. O comando adicionará 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 autentica 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. Importe o módulo de Acesso de VM de Emergência executando o seguinte comando:

    Import-module Microsoft.AzureStack.Compute.EmergencyVmAccess.PowerShellModule
    
  4. Conecte-se ao console da máquina virtual de locatário usando o seguinte comando:

    ConnectTo-TenantVm -ResourceID
    
  5. 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 na tela, 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.

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

  7. Quando terminar, o operador pode 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 do operador.