Использование привилегированной конечной точки в Azure Stack Hub

Для повседневных задач управления оператору Azure Stack Hub следует использовать портал администрирования, PowerShell или API-интерфейсы Azure Resource Manager. Но для выполнения некоторых менее распространенных операций понадобится использовать привилегированную конечную точку. Эта конечная точка является предварительно настроенной удаленной консолью PowerShell, которая предоставляет достаточно возможностей для нужной задачи. Конечная точка использует PowerShell JEA (Just Enough Administration) для предоставления ограниченного набора командлетов. Для доступа к привилегированной конечной точке и вызова ограниченного набора командлетов используется учетная запись с низким уровнем привилегий. Учетные записи администратора не требуются. Для повышения безопасности запрещено выполнение скриптов.

Привилегированную конечную точку можно использовать для следующих задач:

  • задачи низкого уровня, такие как сбор журналов диагностики;
  • различные задачи по интеграции центра обработки данных после развертывания для интегрированных систем, например добавление DNS-серверов перенаправления после развертывания, настройка интеграции Microsoft Graph, интеграции служб федерации Active Directory (AD FS), смена сертификатов и т. д.;
  • взаимодействие со службой поддержки для получения временного доступа высокого уровня, например для глубокой диагностики интегрированной системы.

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

Примечание

В Пакете средств разработки Azure Stack (ASDK) некоторые команды, доступные в привилегированной конечной точке, можно выполнять непосредственно из сеанса PowerShell на узле пакета разработки. Тем не менее вы можете проверить некоторые операции с использованием привилегированной конечной точки, например сбор данных журналов, так как это единственный доступный метод для выполнения определенных операций в среде интегрированных систем.

Примечание

можно также использовать оператор доступа к рабочей станции (оав) для доступа к привилегированной конечной точке (PEP), порталу администрирования для сценариев поддержки и Azure Stack центра GitHub. Дополнительные сведения см. в статье оператор Azure Stack Hub доступ к рабочей станции.

Доступ к привилегированной конечной точке

Доступ к привилегированной конечной точке осуществляется через удаленный сеанс PowerShell на виртуальной машине, на которой размещается привилегированная конечная точка. В ASDK эта виртуальная машина называется AzS-ERCS01. Если вы используете интегрированную систему, в ней существуют три экземпляра привилегированной конечной точки на разных виртуальных машинах (префикс-ERCS01, префикс-ERCS02 или префикс-ERCS03), размещенных для обеспечения устойчивости на разных узлах.

Перед началом этой процедуры для интегрированной системы убедитесь в наличии доступа к привилегированной конечной точке по IP-адресу или DNS-имени. После первоначального развертывания Azure Stack Hub доступ к привилегированной конечной точке можно получить только по IP-адресу, так как интеграция DNS еще не настроена. Поставщик OEM предоставит вам JSON-файл с именем AzureStackStampDeploymentInfo, содержащий IP-адреса привилегированных конечных точек.

Эти IP-адреса вы можете найти на портале администрирования Azure Stack Hub. Откройте этот портал, например по адресу https://adminportal.local.azurestack.external. Выберите Управление регионами>Свойства.

При запуске привилегированной конечной точки вам нужно задать значение en-US для текущего языка и региональных параметров, в противном случае такие командлеты, как Test-AzureStack и Get-AzureStackLog, не будут работать должным образом.

Примечание

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

  1. Установите доверие.

    • В интегрированной системе выполните указанную ниже команду из сеанса Windows PowerShell с повышенными правами, чтобы добавить PEP в качестве доверенного узла на защищенную виртуальную машину, работающую на узле жизненного цикла оборудования, или на рабочую станцию с привилегированным доступом.

      Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
      
    • Если вы используете ASDK, войдите на узел комплекта разработки.

  2. Откройте сеанс Windows PowerShell на защищенной виртуальной машине, работающей на узле жизненного цикла оборудования, или на рабочей станции с привилегированным доступом. Выполните следующие команды, чтобы открыть удаленный сеанс на виртуальной машине, на которой размещается привилегированная конечная точка.

    • В интегрированной системе:

      $cred = Get-Credential
      
      $pep = New-PSSession -ComputerName <IP_address_of_ERCS> -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      Enter-PSSession $pep
      

      Для параметра ComputerName можно указать IP-адрес или DNS-имя одной из виртуальных машин, на которых размещена привилегированная конечная точка.

      Примечание

      Azure Stack Hub не выполняет удаленные вызовы при проверке учетных данных PEP. Для этого используется хранимый локально открытый ключ RSA.

    • При использовании ASDK:

      $cred = Get-Credential
      
      $pep = New-PSSession -ComputerName azs-ercs01 -ConfigurationName PrivilegedEndpoint -Credential $cred -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      Enter-PSSession $pep
      

    При появлении запроса используйте следующие учетные данные:

    • Имя пользователя. Укажите учетную запись CloudAdmin в формате <домен Azure Stack Hub>\cloudadmin. (Для ASDK имя пользователя — azurestack\cloudadmin).
    • Пароль. Введите пароль, который использовался во время установки учетной записи администратора домена AzureStackAdmin.

    Примечание

    Если не удается подключиться к конечной точке ERCS, повторите шаги 1 и 2 с другим IP-адресом виртуальной машины ERCS.

    Предупреждение

    По умолчанию для отметки центра Azure Stack настроена только одна учетная запись CloudAdmin. Если учетные данные учетной записи теряются, скомпрометированы или заблокированы, параметры восстановления отсутствуют. Доступ к привилегированной конечной точке и другим ресурсам будет потерян.

    Настоятельно рекомендуется создать дополнительные учетные записи CloudAdmin, чтобы избежать повторного развертывания отметок с учетом собственных расходов. Убедитесь, что эти учетные данные задокументированы в соответствии с правилами вашей компании.

  3. После подключения запрос изменится на [IP-адрес или ERCS VM Name]: PS > или to [AZS-ercs01]: PS >в зависимости от среды. Теперь запустите командлет Get-Command, чтобы просмотреть список доступных командлетов.

    См. сведения о командлетах в справочнике по привилегированной конечной точке Azure Stack Hub

    Многие из этих командлетов предназначены только для сред интегрированных систем (например, командлеты, относящиеся к интеграции центра обработки данных). В ASDK проверены следующие командлеты:

    • Clear-Host;
    • Close-PrivilegedEndpoint;
    • Exit-PSSession;
    • Get-AzureStackLog;
    • Get-AzureStackStampInformation;
    • Get-Command;
    • Get-FormatData;
    • Get-Help
    • Get-ThirdPartyNotices;
    • Measure-Object;
    • New-CloudAdminUser;
    • Out-Default;
    • Remove-CloudAdminUser;
    • Select-Object;
    • Set-CloudAdminUserPassword;
    • Test-AzureStack
    • Stop-AzureStack;
    • Get-ClusterLog.

Как использовать привилегированную конечную точку

Как упоминалось выше, привилегированная конечная точка — это конечная точка PowerShell JEA. Обеспечивая надежный уровень защиты, конечная точка JEA сокращает некоторые основные возможности PowerShell, например использование сценариев или выполнение нажатием клавиши TAB. При попытке выполнить операцию скрипта любого типа она завершается с ошибкой ScriptsNotAllowed. Такая ошибка считается нормальным поведением.

Например, чтобы получить список параметров для определенного командлета, выполните приведенную ниже команду.

    Get-Command <cmdlet_name> -Syntax

Кроме того, можно использовать командлет Import-PSSession, чтобы импортировать все командлеты привилегированной конечной точки в текущий сеанс на локальном компьютере. Все командлеты и функции привилегированной конечной точки будут доступны на локальном компьютере, включая выполнение нажатием клавиши TAB и, в самых общих чертах, использование скриптов. Кроме того, для просмотра инструкций командлета можете выполнить модуль Get-Help .

Чтобы импортировать сеанс привилегированной конечной точки на локальный компьютер, выполните следующие действия.

  1. Установите доверие.

    • В интегрированной системе выполните указанную ниже команду из сеанса Windows PowerShell с повышенными правами, чтобы добавить PEP в качестве доверенного узла на защищенную виртуальную машину, работающую на узле жизненного цикла оборудования, или на рабочую станцию с привилегированным доступом.

      winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
      
    • Если вы используете ASDK, войдите на узел комплекта разработки.

  2. Откройте сеанс Windows PowerShell на защищенной виртуальной машине, работающей на узле жизненного цикла оборудования, или на рабочей станции с привилегированным доступом. Выполните следующие команды для создания удаленного сеанса на виртуальной машине, на которой размещается привилегированная конечная точка.

    • В интегрированной системе:

      $cred = Get-Credential
      
      $session = New-PSSession -ComputerName <IP_address_of_ERCS> `
         -ConfigurationName PrivilegedEndpoint -Credential $cred `
         -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      

      Для параметра ComputerName можно указать IP-адрес или DNS-имя одной из виртуальных машин, на которых размещена привилегированная конечная точка.

    • При использовании ASDK:

      $cred = Get-Credential
      
      $session = New-PSSession -ComputerName azs-ercs01 `
         -ConfigurationName PrivilegedEndpoint -Credential $cred `
         -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
      

    При появлении запроса используйте следующие учетные данные:

    • Имя пользователя. Укажите учетную запись CloudAdmin в формате <домен Azure Stack Hub>\cloudadmin. (При использовании ASDK имя пользователя — azurestack\cloudadmin.)

    • Пароль. Введите пароль, который использовался во время установки учетной записи администратора домена AzureStackAdmin.

  3. Импортируйте сеанс привилегированной конечной точки на локальный компьютер.

    Import-PSSession $session
    
  4. Теперь можно использовать выполнение нажатием клавиши Tab и запускать сценарии обычным образом в локальном сеансе PowerShell, располагая всеми функциями и командлетами привилегированной конечной точки и не снижая уровень безопасности Azure Stack Hub. Вот и все!

Закрытие сеанса привилегированной конечной точки

Как упоминалось ранее, в привилегированной конечной точке регистрируется каждое действие (и его соответствующие выходные данные), которое вы выполняете в сеансе PowerShell. Необходимо закрыть сеанс с помощью Close-PrivilegedEndpoint командлета. Этот командлет закрывает конечную точку надлежащим образом, а также передает файлы журнала во внешнюю общую папку для хранения.

Чтобы закрыть сеанс конечной точки:

  1. Создайте внешний файловый ресурс, доступный из привилегированной конечной точки. В среде комплекта разработки можно просто создать общую папку на узле комплекта разработки.

  2. Выполните следующий командлет:

    Close-PrivilegedEndpoint -TranscriptsPathDestination "\\fileshareIP\SharedFolder" -Credential Get-Credential
    

    Этот командлет использует параметры, описанные в следующей таблице.

    Параметр Описание Тип Обязательно
    TranscriptsPathDestination Путь к внешней общей папке, который определен как "IP-адрес_общей_папки\имя_общей_папки" Строка Да
    Учетные данные Учетные данные для доступа к общей папке. SecureString Да

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

Примечание

Если завершить сеанс привилегированной конечной точки, используя командлеты Exit-PSSession либо Exit, или просто закрыть консоль PowerShell, журналы расшифровки не будут перенесены в файловый ресурс. Они останутся в привилегированной конечной точке. При следующем запуске командлета Close-PrivilegedEndpoint и добавлении общей папки журналы расшифровки из предыдущих сеансов будут также перенесены. Для закрытия сеанса PEP используйте Close-PrivilegedEndpoint, но не Exit-PSSession или Exit.

Разблокировка привилегированной конечной точки для сценариев поддержки

Во время сценария поддержки специалисту службы технической поддержки Майкрософт, возможно, потребуется повысить привилегии сеанса привилегированной конечной точки PowerShell, чтобы получить доступ к внутренним компонентам инфраструктуры Azure Stack Hub. Иногда неофициально называется "разбить стекло" или "разблокировать PEP". Процесс повышения уровня сеанса PEP — это два этапа — два человека, два — процесс проверки подлинности организации. Процедура разблокировки инициируется оператором Azure Stack Hub, который постоянно управляет средой. Оператор обращается к PEP и выполняет этот командлет:

     Get-SupportSessionToken

Командлет возвращает маркер запроса на поддержку сеанса, очень длинную буквенно-цифровую строку. Затем оператор передает маркер запроса инженеру службы поддержки Майкрософт по своему усмотрению (например, к разговору, электронной почте). Инженер службы поддержки Майкрософт на основе маркера запроса (при его допустимости) создает маркер авторизации сеанса поддержки и отправляет его обратно оператору Azure Stack Hub. В том же сеансе PEP PowerShell оператор передает маркер авторизации в качестве входных данных для этого командлета:

      unlock-supportsession
      cmdlet Unlock-SupportSession at command pipeline position 1
      Supply values for the following parameters:
      ResponseToken:

Если маркер авторизации допустим, привилегии сеанса PEP PowerShell повышаются за счет предоставления полных возможностей администрирования и полной доступности.

Примечание

Все операции и командлеты в сеансе PEP с повышенными привилегиями должны выполняться под строгим контролем специалиста службы технической поддержки Майкрософт. Несоблюдение этого требования может привести к серьезным простоям, потери данных и потребовать полного повторного развертывания среды центра Azure Stack.

После завершения сеанса поддержки очень важно закрыть сеанс PEP с повышенными привилегиями с помощью командлета Close-привилежедендпоинт , как описано в разделе выше. Один из сеансов PEP завершается, маркер разблокировки больше не действителен и не может быть использован повторно, чтобы снова разблокировать сеанс PEP. Сеанс PEP с повышенными привилегиями действителен в течение 8 часов. По истечении этого периода сеанс PEP с повышенными привилегиями автоматически блокируется и снова активируется обычный сеанс PEP.

Содержимое маркеров привилегированной конечной точки

Маркеры запроса и авторизации сеанса поддержки PEP используют шифрование для защиты доступа и гарантируют, что только авторизованные маркеры могут разблокировать сеанс PEP. Токены предназначены для криптографической гарантии того, что маркер ответа может быть принят только сеансом PEP, создавшим маркер запроса. Маркеры PEP не содержат сведений, которые могут однозначно идентифицировать среду Azure Stack центра или клиента. Они полностью анонимны. Ниже приведены подробные сведения о содержимом каждого токена.

Маркер запроса поддержки сеанса

Маркер запроса сеанса поддержки PEP состоит из трех объектов:

  • Идентификатор сеанса, сформированный случайным образом.
  • Самозаверяющий сертификат, созданный для создания пары, состоящую из открытого и закрытого ключей. Сертификат не содержит никаких сведений о среде.
  • Метка времени, указывающая на истечение срока действия маркера запроса.

Затем маркер запроса шифруется открытым ключом облака Azure, для которого зарегистрирована среда Azure Stack Hub.

Токен ответа для авторизации поддержки сеанса

Маркер ответа поддержки PEP состоит из двух объектов:

  • Созданный случайным образом идентификатор сеанса, извлеченный из маркера запроса.
  • Метка времени, указывающая срок действия маркера ответа.

Затем маркер отклика шифруется с помощью самозаверяющего сертификата, содержащегося в маркере запроса. Самозаверяющий сертификат был расшифрован с помощью закрытого ключа, связанного с облаком Azure, для которого зарегистрирована среда центра Azure Stack.

Дальнейшие действия