Использование привилегированной конечной точки в Azure Stack Hub
В качестве оператора Azure Stack Hub следует использовать портал администрирования, PowerShell или API Azure Resource Manager для большинства повседневных задач управления. Однако для некоторых менее распространенных операций необходимо использовать Привилегированную конечную точку () (PEP). PEP — это предварительно настроенная удаленная консоль PowerShell, которая предоставляет достаточно возможностей, чтобы помочь вам выполнить требуемую задачу. Конечная точка использует PowerShell JEA (Just Enough Administration) для предоставления только ограниченного набора командлетов. Для доступа к PEP и вызова ограниченного набора командлетов используется учетная запись с низким уровнем привилегий. Учетные записи администратора не требуются. Для дополнительной безопасности скрипты не допускаются.
Вы можете использовать PEP для выполнения следующих задач:
- Низкоуровневые задачи, такие как сбор журналов диагностики.
- Многие задачи интеграции центра обработки данных после развертывания для интегрированных систем, такие как добавление серверов пересылки доменных имен (DNS) после развертывания, настройка интеграции Microsoft Graph, интеграция служб федерации Active Directory (AD FS), смена сертификатов и т. д.
- Чтобы работать с персоналом службы поддержки, чтобы получить временный, высокий уровень доступа для подробного устранения неполадок интегрированной системы.
PEP регистрирует все действия (и соответствующие выходные данные), которые выполняются в сеансе PowerShell. Это обеспечивает полную прозрачность и полный аудит операций. Эти файлы журнала можно сохранить для будущих аудита.
Заметка
В пакете средств разработки Azure Stack (ASDK) можно выполнять некоторые команды, доступные в PEP непосредственно из сеанса PowerShell на узле пакета средств разработки. Однако может потребоваться протестировать некоторые операции с помощью PEP, например сбора журналов, так как это единственный метод, доступный для выполнения определенных операций в интегрированной системной среде.
Заметка
Вы также можете использовать операторскую рабочую станцию доступа (OAW) для доступа к привилегированной конечной точке (PEP), администраторского портала для сценариев техподдержки и инструментов GitHub для Azure Stack Hub. Для получения дополнительной информации см. раздел о рабочей станции доступа оператора Azure Stack Hub .
Доступ к привилегированной конечной точке
Вы обращаетесь к PEP через удаленный сеанс PowerShell на виртуальной машине, где размещается PEP. В ASDK эта виртуальная машина называется AzS-ERCS01. Если вы используете интегрированную систему, существует три экземпляра PEP, каждая из которых выполняется внутри виртуальной машины (префикс-ERCS01, префикс-ERCS02 или префикс-ERCS03) на разных узлах для обеспечения устойчивости.
Прежде чем начать эту процедуру для интегрированной системы, убедитесь, что вы можете получить доступ к PEP по IP-адресу или через DNS. После первоначального развертывания Azure Stack Hub вы можете получить доступ к PEP только по IP-адресу, так как интеграция DNS еще не настроена. Поставщик оборудования OEM предоставляет JSON-файл с именем AzureStackStampDeploymentInfo, который содержит IP-адреса PEP.
Вы также можете найти IP-адрес на портале администрирования Azure Stack Hub. Откройте портал; например, https://adminportal.local.azurestack.external
. Выберите свойства управления регионами>.
При запуске привилегированной конечной точки необходимо задать для текущей локали значение en-US
, в противном случае такие командлеты, как Test-AzureStack
или Get-AzureStackLog
, не будут работать должным образом.
Заметка
По соображениям безопасности требуется подключиться к PEP только из защищенной виртуальной машины, работающей поверх узла жизненного цикла оборудования, или с выделенного и безопасного компьютера, например рабочей станции привилегированного доступа. Исходная конфигурация узла жизненного цикла оборудования не должна изменяться (например, через установку нового программного обеспечения) и использоваться для подключения к PEP.
Установите доверие.
В интегрированной системе выполните следующую команду из сеанса Windows PowerShell с повышенными привилегиями, чтобы добавить PEP в качестве доверенного узла на защищенной виртуальной машине, работающей на узле жизненного цикла оборудования или рабочей станции привилегированного доступа:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
Если вы используете ASDK, войдите на хост комплекта средств разработки.
На защищенной виртуальной машине, работающей на узле жизненного цикла оборудования или рабочей станции привилегированного доступа, откройте сеанс Windows PowerShell. Выполните следующие команды, чтобы установить удаленный сеанс на виртуальной машине, на которой размещен PEP:
В интегрированной системе:
$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-именем одной из виртуальных машин, хостящих PEP.Заметка
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.
- пароль. Введите тот же пароль, который был предоставлен во время установки для учетной записи администратора домена AzureStackAdmin.
Заметка
Если вы не можете подключиться к конечной точке ERCS, повторите попытку один и два с другим IP-адресом виртуальной машины ERCS.
Предупреждение
По умолчанию метка Azure Stack Hub настроена только с одной учетной записью CloudAdmin. Параметры восстановления отсутствуют, если учетные данные учетной записи потеряны, скомпрометированы или заблокированы. вы потеряете доступ к привилегированной конечной точке и другим ресурсам.
настоятельно рекомендуется создавать дополнительные учетные записи CloudAdmin, во избежание повторного развертывания инфраструктуры за свой счет. Убедитесь, что вы задокументируете эти учетные данные на основе рекомендаций вашей компании.
После подключения запрос изменится на [IP-адрес или имя виртуальной машины ERCS]: PS> или на [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
Использование привилегированной конечной точки
Как упоминалось выше, PEP — это конечная точка PowerShell JEA . Обеспечивая надежный слой безопасности, конечная точка JEA ограничивает некоторые из основных функций PowerShell, таких как сценарии или автозаполнение вкладок. При попытке любой операции скрипта операция завершается ошибкой ScriptsNotAllowed. Это ожидаемое поведение в случае ошибки.
Например, чтобы получить список параметров для данного командлета, выполните следующую команду:
Get-Command <cmdlet_name> -Syntax
Кроме того, можно использовать командлет Import-PSSession для импорта всех командлетов PEP в текущий сеанс на локальном компьютере. Командлеты и функции PEP теперь доступны на локальном компьютере вместе с завершением вкладок и, в целом, скриптами. Вы также можете запустить модуль Get-Help для просмотра инструкций командлета.
Чтобы импортировать сеанс PEP на локальном компьютере, сделайте следующее:
Установите доверие.
В интегрированной системе выполните следующую команду из сеанса Windows PowerShell с повышенными привилегиями, чтобы добавить PEP в качестве доверенного узла на защищенной виртуальной машине, работающей на узле жизненного цикла оборудования или рабочей станции привилегированного доступа.
winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
Если вы используете ASDK, войдите на узел пакета средств разработки.
На защищенной виртуальной машине, работающей на узле жизненного цикла оборудования или рабочей станции привилегированного доступа, откройте сеанс Windows PowerShell. Выполните следующие команды, чтобы установить удаленный сеанс на виртуальной машине, на которой размещен PEP:
В интегрированной системе:
$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-именем одной из виртуальных машин, на которых размещен PEP.Если вы используете 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.
Импортируйте сеанс PEP на локальный компьютер:
Import-PSSession $session
Теперь вы можете использовать завершение вкладок и выполнять скрипты как обычно в локальном сеансе PowerShell со всеми функциями и командлетами PEP, не уменьшая уровень безопасности Azure Stack Hub. Наслаждаться!
Закройте сеанс привилегированной конечной точки
Как упоминалось ранее, PEP регистрирует все действия (и соответствующие выходные данные), которые выполняются в сеансе PowerShell. Сеанс необходимо закрыть с помощью командлета Close-PrivilegedEndpoint
. Этот командлет правильно закрывает конечную точку и передает файлы журнала во внешнюю общую папку для хранения.
Чтобы закрыть сеанс конечной точки, выполните следующие действия.
Создайте внешнюю общую папку, доступную peP. В среде пакета средств разработки можно просто создать общую папку на узле пакета разработки.
Выполните следующий cmdlet:
Close-PrivilegedEndpoint -TranscriptsPathDestination "\\fileshareIP\SharedFolder" -Credential Get-Credential
Командлет использует параметры в следующей таблице:
Параметр Описание Тип Обязательно ТранскрибированиеPathDestination Путь к внешней общей папке, определенной как fileshareIP\sharefoldername. Струна Да учетные данные Учетные данные для доступа к общей папке SecureString Да
После успешного переноса файлов журнала расшифровки в общую папку они автоматически удаляются из PEP.
Заметка
Если закрыть сеанс PEP с помощью командлетов Exit-PSSession
или Exit
или просто закрыть консоль PowerShell, журналы расшифровки не передаются в общую папку. Они остаются в PEP. При следующем запуске Close-PrivilegedEndpoint
и включении общей папки журналы расшифровки из предыдущих сеансов также будут передаваться. Не используйте Exit-PSSession
или Exit
для закрытия сеанса PEP; вместо этого используйте Close-PrivilegedEndpoint
.
Разблокирование привилегированной конечной точки для сценариев поддержки
Во время сценария поддержки инженеру поддержки Microsoft возможно потребуется повысить уровень сеанса привилегированной конечной точки 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 Hub.
После завершения сеанса поддержки очень важно закрыть сеанс PEP с повышенными привилегиями с помощью командлета Close-PrivilegedEndpoint , как описано в приведенном выше разделе. После завершения сеанса PEP токен разблокировки больше не является действительным и не может быть использован повторно для разблокировки сеанса PEP. Сеанс PEP с повышенными привилегиями имеет срок действия 8 часов, после чего, если он не завершен, сеанс автоматически возвращается к обычному сеансу PEP.
Содержимое токенов привилегированной конечной точки
Запросы на поддержку сеансов PEP и маркеры авторизации используют криптографию для защиты доступа и гарантируют, что только авторизованные маркеры могут разблокировать сеанс PEP. Маркеры предназначены для криптографического обеспечения того, чтобы маркер ответа мог быть принят только тем сеансом PEP, который сгенерировал маркер запроса. Маркеры PEP не содержат никаких сведений, которые могут однозначно идентифицировать среду Azure Stack Hub или клиента. Они полностью анонимны. Ниже приведены сведения о содержимом каждого маркера.
Токен запроса сеанса поддержки
Токен запроса на сеанс поддержки PEP состоит из трех объектов.
- Случайно сгенерированный идентификатор сеанса.
- Самозаверяющий сертификат, созданный для создания однократной пары открытых и закрытых ключей. Сертификат не содержит никаких сведений о среде.
- Метка времени, указывающая на истечение срока действия токена запроса.
Затем маркер запроса шифруется с открытым ключом облака Azure, в котором зарегистрирована среда Azure Stack Hub.
Метка ответа на авторизацию сеанса поддержки
Маркер ответа на авторизацию поддержки PEP включает два объекта:
- Случайно созданный идентификатор сеанса, извлеченный из токена запроса.
- Метка времени, указывающая срок действия токена ответа.
Затем маркер ответа шифруется с помощью самозаверяющего сертификата, содержащегося в маркере запроса. Самозаверяющий сертификат расшифровывается с закрытым ключом, связанным с облаком Azure, в котором зарегистрирована среда Azure Stack Hub.