Экстренный доступ к виртуальной машине (EVA)

Служба аварийного доступа к виртуальной машине (EVA) позволяет пользователю запрашивать помощь у оператора в сценариях, когда этот пользователь заблокирован на виртуальной машине, а операция повторного развертывания не помогает восстановить доступ по сети.

Примечание

EVA была выпущена в общедоступной версии, начиная с Azure Stack Hub 2301.

Эта функция должна быть включена для каждой подписки, и оператор должен включить доступ к удаленному рабочему столу, чтобы пользователь cloudadmin мог получить доступ к виртуальным машинам консоли аварийного восстановления (ERCS).

Первым шагом для пользователя является запрос доступа к консоли виртуальной машины с помощью PowerShell. Запрос предоставляет согласие и позволяет оператору получить дополнительные сведения для подключения к виртуальной машине через ее консоль. Доступ к консоли не зависит от сетевого подключения и использует канал данных гипервизора.

Оператор может пройти проверку подлинности в операционной системе, работающей внутри виртуальной машины, только если учетные данные известны. На этом этапе оператор также может предоставить пользователю общий доступ к экранам и вместе устранить проблему, чтобы восстановить сетевое подключение.

Важно!

Для виртуальных машин под управлением Windows Server функция EVA ограничена компьютерами с графическим пользовательским интерфейсом ( GUI). Для Windows Server основная операционная система не поддерживает функции экранной клавиатуры. Так как вы не можете отправить сочетание клавиш CTRL+ALT+DEL в качестве входных данных, вы не сможете войти на основной сервер, даже если вы можете подключиться к его консоли. Если вам нужно устранить проблему с основной ОС Windows, обратитесь в службу поддержки Майкрософт, чтобы предоставить доступ к консоли из разблокированного PEP.

Оператор включает подписку пользователя для EVA

В этом сценарии оператор может решить, какая подписка должна использовать функцию аварийного доступа к виртуальной машине.

Сначала выполните следующий скрипт PowerShell. Для выполнения этого сценария необходимо установить PowerShell для Azure Stack Hub. Следуйте инструкциям по установке Azure Stack Hub PowerShell. Замените заполнители переменных правильными значениями:

# 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

Пользователь для запроса доступа к консоли виртуальной машины

Как пользователь вы предоставляете оператору согласие на создание доступа к консоли для определенной виртуальной машины.

  1. Как пользователь, откройте PowerShell, войдите в свою подписку и подключитесь к Azure Stack Hub, как описано здесь.

  2. Выполните следующий сценарий. Чтобы создать 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. Скрипт возвращает имя консоли аварийного восстановления (ERCS), которое клиент предоставляет оператору, а также VMResourceID.

Оператор обеспечивает доступ к виртуальным машинам ERCS на удаленном рабочем столе.

Следующим шагом для оператора Azure Stack Hub является включение доступа удаленного рабочего стола к виртуальным машинам консоли аварийного восстановления (ERCS), на которых размещаются привилегированные конечные точки.

Выполните следующие команды в привилегированной конечной точке (PEP) с рабочей станции оператора, используемой для подключения к ERCS. Команда добавляет IP-адрес рабочей станции в список безопасности сети. Следуйте указаниям по подключению к PEP. Оператор может быть членом группы пользователей cloudadmin или сам cloudadmin :

Grant-RdpAccessToErcsVM

Чтобы отключить доступ удаленного рабочего стола к виртуальным машинам консоли аварийного восстановления (ERCS), выполните следующую команду в привилегированной конечной точке (PEP):

Revoke-RdpAccessToErcsVM

Примечание

Любой из виртуальных машин ERCS будет назначен запрос на доступ пользователя клиента. Как оператор, вы можете создать сеанс PEP только для виртуальной машины ERCS, полученной от клиента (выходные данные $enableVMAccessResponse).

  1. Оператор использует имя ERCS и подключается к нему с помощью клиента удаленного рабочего стола (RDP); например, с рабочей станции для доступа к оператору (OAW).

    Примечание

    Оператор выполняет проверку подлинности с помощью той же учетной записи администратора облака, которая выполнила Grant-RdpAccessToErcsVM.

  2. После подключения к виртуальной машине ERCS по протоколу RDP запустите PowerShell.

  3. Подключитесь к консоли виртуальной машины клиента с помощью следующей команды:

    ConnectTo-TenantVm -ResourceID
    
  4. Теперь оператор подключается к экрану консоли виртуальной машины клиента, на которой необходимо снова пройти проверку подлинности с помощью учетных данных cloudadmin . У оператора нет учетных данных для входа в гостевую операционную систему.

    Примечание

    На экране входа нажатие клавиш Windows +U запускает экранную клавиатуру, что позволяет отправлять клавиши CTRL+ALT+DELETE. Для использования сочетания клавиш Windows и U необходимо использовать полноэкранный режим RDP.

  5. Теперь оператор может предоставить клиенту общий доступ к экрану, чтобы отладить все проблемы, препятствующие подключению к виртуальной машине по сети.

  6. По завершении оператор может выполнить следующую команду, чтобы удалить согласие пользователя:

    Delete-TenantVMSession -ResourceID
    

    Примечание

    Срок действия согласия пользователя автоматически истекает через 8 часов и отменяет весь доступ оператора.