Uso del punto de conexión con privilegios en Azure Stack Hub
Como operador de Azure Stack Hub, debe usar el portal de administración, PowerShell o las API de Azure Resource Manager para la mayoría de las tareas de administración diarias. Sin embargo, para algunas operaciones menos comunes, debe usar el punto de conexión con privilegios (PEP). Pep es una consola remota de PowerShell preconfigurada que proporciona funcionalidades suficientes para ayudarle a realizar una tarea necesaria. El punto de conexión usa PowerShell JEA (Just Enough Administration) para exponer únicamente un conjunto restringido de cmdlets. Para acceder al PEP e invocar el conjunto restringido de cmdlets, se usa una cuenta con pocos privilegios. No se requieren cuentas de administrador. Para mayor seguridad, no se permite el scripting.
Puede usar el PEP para realizar estas tareas:
- Tareas de bajo nivel, como la recopilación de registros de diagnóstico.
- Muchas tareas de integración de centros de datos posteriores a la implementación para sistemas integrados, como agregar reenviadores de Sistema de nombres de dominio (DNS) después de la implementación, configurar la integración con Microsoft Graph y con Active Directory Federation Services (AD FS), la rotación de certificados, etc.
- Para trabajar con el personal de soporte técnico para obtener acceso temporal y de alto nivel para la solución de problemas detallada de un sistema integrado.
El PEP registra cada acción (y su salida correspondiente) que se realiza en la sesión de PowerShell. Esto proporciona transparencia completa y auditoría completa de las operaciones. Puede conservar estos archivos de registro para futuras auditorías.
Nota
En el Kit de desarrollo de Azure Stack (ASDK), puede ejecutar algunos de los comandos disponibles en el PEP directamente desde una sesión de PowerShell en el host del kit de desarrollo. Sin embargo, es posible que quiera probar algunas operaciones mediante el PEP, como la recopilación de registros, ya que este es el único método disponible para realizar determinadas operaciones en un entorno de sistemas integrados.
Nota
También puede usar la estación de trabajo de acceso de operador (OAW) para acceder al punto de conexión privilegiado (PEP), al portal de administración para escenarios de soporte técnico y a las herramientas de GitHub de Azure Stack Hub. Para obtener más información, consulte Estación de trabajo de acceso del operador de Azure Stack Hub.
Acceso al punto de conexión con privilegios
Puede acceder al PEP a través de una sesión remota de PowerShell en la máquina virtual (VM) que hospeda el PEP. En el ASDK, esta máquina virtual se denomina AzS-ERCS01. Si usa un sistema integrado, hay tres instancias del PEP, cada una que se ejecuta dentro de una máquina virtual (prefijo-ERCS01, prefijo-ERCS02 o prefijo-ERCS03) en diferentes hosts para la resistencia.
Antes de comenzar este procedimiento para un sistema integrado, asegúrese de que puede acceder al PEP por dirección IP o a través de DNS. Después de la implementación inicial de Azure Stack Hub, solo puede acceder al PEP por dirección IP, ya que la integración de DNS aún no está configurada. El proveedor de hardware oem proporciona un archivo JSON denominado AzureStackStampDeploymentInfo que contiene las direcciones IP de PEP.
También puede encontrar la dirección IP en el portal de administración de Azure Stack Hub. Abra el portal; por ejemplo, https://adminportal.local.azurestack.external
. Seleccione Administración de regiones>Propiedades.
Debe establecer el idioma actual en en-US
cuando ejecute el punto de conexión con privilegios; de lo contrario, los cmdlets como Test-AzureStack
o Get-AzureStackLog
no funcionarán como se espera.
Nota
Por motivos de seguridad, es necesario que se conecte al PEP solo desde una máquina virtual protegida que se ejecute sobre el host de ciclo de vida de hardware, o desde un equipo dedicado y seguro, como una estación de trabajo de acceso con privilegios . La configuración original del host del ciclo de vida de hardware no debe modificarse a partir de su configuración original (incluida la instalación de software nuevo) o usarse para conectarse al PEP.
Establezca la confianza.
En un sistema integrado, ejecute el siguiente comando desde una sesión de Windows PowerShell con privilegios elevados para agregar el PEP como host de confianza en la máquina virtual protegida que se ejecuta en el host del ciclo de vida de hardware o en la estación de trabajo de acceso con privilegios:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
Si ejecuta el ASDK, inicie sesión en el host del kit de desarrollo.
En la máquina virtual protegida que se ejecuta en el host de ciclo de vida de hardware o en la estación de trabajo de acceso con privilegios, abra una sesión de Windows PowerShell. Ejecute los siguientes comandos para establecer una sesión remota en la máquina virtual que hospeda el PEP:
En un sistema integrado:
$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
El parámetro
ComputerName
puede ser la dirección IP o el nombre DNS de una de las máquinas virtuales que hospeda el PEP.Nota
Azure Stack Hub no realiza una llamada remota al validar la credencial pep. Se basa en una clave pública RSA almacenada localmente para hacerlo.
Si ejecuta el 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
Cuando se le solicite, use las siguientes credenciales:
- nombre de usuario: especifique la cuenta CloudAdmin con el formato <dominio de Azure Stack Hub>\cloudadmin.
- contraseña: escriba la misma contraseña que se proporcionó durante la instalación de la cuenta de administrador de dominio AzureStackAdmin.
Nota
Si no puede conectarse al punto de conexión de ERCS, vuelva a intentar los pasos uno y dos con otra dirección IP de máquina virtual ERCS.
Advertencia
De forma predeterminada, el stamp de Azure Stack Hub se configura con una sola cuenta de CloudAdmin. No hay opciones de recuperación si las credenciales de la cuenta se pierden, se ponen en peligro o se bloquean. Perderá el acceso al punto de conexión con privilegios y a otros recursos.
Se recomienda encarecidamente crear cuentas de CloudAdmin adicionales para evitar la reimplementación de su stamp a su costa. Asegúrese de documentar estas credenciales en función de las directrices de su empresa.
Después de conectarse, el símbolo del sistema cambia a [dirección IP o nombre de máquina virtual de ERCS]: PS> o a [azs-ercs01]: PS>, según el entorno. Desde aquí, ejecute
Get-Command
para ver la lista de cmdlets disponibles.Puede encontrar una referencia para los cmdlets en Referencia del punto de conexión con privilegios elevados de Azure Stack Hub
Muchos de estos cmdlets solo están diseñados para entornos de sistema integrados (como los cmdlets relacionados con la integración del centro de datos). En el ASDK, se han validado los siguientes cmdlets:
- 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
Uso del punto de conexión con privilegios
Tal y como se mencionó anteriormente, el PEP es un punto de conexión de PowerShell JEA. Al proporcionar una capa de seguridad sólida, un punto de conexión de JEA reduce algunas de las funcionalidades básicas de PowerShell, como la creación de scripts o la finalización de tabulaciones. Si prueba cualquier tipo de operación de script, se produce un error en la operación ScriptsNotAllowed. Este error es el comportamiento esperado.
Por ejemplo, para obtener la lista de parámetros de un cmdlet determinado, ejecute el siguiente comando:
Get-Command <cmdlet_name> -Syntax
Como alternativa, puede usar el cmdlet Import-PSSession para importar todos los cmdlets PEP dentro de la sesión actual en su equipo local. Los cmdlets y las funciones del PEP ahora están disponibles en la máquina local, junto con la finalización con tabulación y, más en general, con el scripting. También puede ejecutar el módulo Get-Help para revisar las instrucciones del cmdlet.
Para importar la sesión pep en la máquina local, siga estos pasos:
Establezca la confianza.
En un sistema integrado, ejecute el siguiente comando desde una sesión de Windows PowerShell con privilegios elevados para agregar el PEP como host de confianza en la máquina virtual protegida que se ejecuta en el host del ciclo de vida de hardware o en la estación de trabajo de acceso con privilegios.
winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
Si ejecuta el ASDK, inicie sesión en el host del kit de desarrollo.
En la máquina virtual protegida que se ejecuta en el host de ciclo de vida de hardware o en la estación de trabajo de acceso con privilegios, abra una sesión de Windows PowerShell. Ejecute los siguientes comandos para establecer una sesión remota en la máquina virtual que hospeda el PEP:
En un sistema integrado:
$cred = Get-Credential $session = New-PSSession -ComputerName <IP_address_of_ERCS> ` -ConfigurationName PrivilegedEndpoint -Credential $cred ` -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
El parámetro
ComputerName
puede ser la dirección IP o el nombre DNS de una de las máquinas virtuales que hospeda el PEP.Si estás ejecutando el ASDK:
$cred = Get-Credential $session = New-PSSession -ComputerName azs-ercs01 ` -ConfigurationName PrivilegedEndpoint -Credential $cred ` -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
Cuando se le solicite, use las siguientes credenciales:
nombre de usuario: especifique la cuenta CloudAdmin con el formato <dominio de Azure Stack Hub>\cloudadmin. (Para ASDK, el nombre de usuario es azurestack\cloudadmin).
contraseña: escriba la misma contraseña que se proporcionó durante la instalación de la cuenta de administrador de dominio AzureStackAdmin.
Importe la sesión PEP en su máquina local:
Import-PSSession $session
Ahora, puede usar la finalización con tabulación y realizar scripting como de costumbre en la sesión de PowerShell local con todas las funciones y cmdlets del PEP sin reducir la posición de seguridad de Azure Stack Hub. ¡Disfrutar!
Cierre de la sesión del punto de conexión con privilegios
Como se mencionó anteriormente, el PEP registra cada acción (y su salida correspondiente) que realiza en la sesión de PowerShell. Debe cerrar la sesión mediante el cmdlet Close-PrivilegedEndpoint
. Este cmdlet cierra correctamente el punto de conexión y transfiere los archivos de registro a un recurso compartido de archivos externo para su retención.
Para cerrar la sesión del punto de conexión:
Cree un recurso compartido de archivos externo al que se pueda acceder mediante el PEP. En un entorno de kit de desarrollo, solo puede crear un recurso compartido de archivos en el host del kit de desarrollo.
Ejecute el siguiente cmdlet:
Close-PrivilegedEndpoint -TranscriptsPathDestination "\\fileshareIP\SharedFolder" -Credential Get-Credential
El cmdlet usa los parámetros de la tabla siguiente:
Parámetro Descripción Tipo Obligatorio TranscriptsPathDestination Ruta de acceso al recurso compartido de archivos externo definido como "fileshareIP\sharefoldername" Cuerda Sí Credential Credenciales para acceder al recurso compartido de archivos SecureString Sí
Una vez los archivos de registro de transcripción se transfieren correctamente al recurso compartido de archivos, se eliminan automáticamente del PEP.
Nota
Si cierra la sesión de PEP mediante los cmdlets Exit-PSSession
o Exit
, o simplemente cierra la consola de PowerShell, los registros de transcripción no se transfieren a un recurso compartido de archivos. Permanecen en el PEP. La próxima vez que ejecute Close-PrivilegedEndpoint
e incluya un recurso compartido de archivos, los registros de transcripción de las sesiones anteriores también se transferirán. No use Exit-PSSession
ni Exit
para cerrar la sesión pep; use Close-PrivilegedEndpoint
en su lugar.
Desbloqueo del punto de conexión con privilegios para escenarios de soporte técnico
Durante un escenario de soporte técnico, es posible que el ingeniero de soporte técnico de Microsoft tenga que elevar la sesión de PowerShell del punto de conexión con privilegios para acceder a los elementos internos de la infraestructura de Azure Stack Hub. Este proceso se conoce informalmente como "romper el cristal" o "desbloquear el PEP". El proceso de elevación de la sesión del PEP es un proceso de autenticación de dos pasos, dos personas y dos organizaciones. El procedimiento de desbloqueo lo inicia el operador de Azure Stack Hub, que conserva el control de su entorno en todo momento. El operador accede al PEP y ejecuta este cmdlet:
Get-SupportSessionToken
El cmdlet devuelve el token de solicitud de sesión de soporte técnico, una cadena alfanumérica muy larga. A continuación, el operador pasa el token de solicitud al ingeniero de soporte técnico de Microsoft a través de un medio de su elección (por ejemplo, chat, correo electrónico). El ingeniero de soporte técnico de Microsoft usa el token de solicitud para generar, si es válido, un token de autorización de sesión de soporte técnico y enviarlo al operador de Azure Stack Hub. En la misma sesión de PowerShell de PEP, el operador pasa el token de autorización como entrada a este cmdlet:
unlock-supportsession
cmdlet Unlock-SupportSession at command pipeline position 1
Supply values for the following parameters:
ResponseToken:
Si el token de autorización es válido, la sesión de PowerShell de PEP se eleva al proporcionar funcionalidades de administración completas y capacidad de acceso completa a la infraestructura.
Nota
Todas las operaciones y los cmdlets que se ejecutan en una sesión del PEP elevada deben realizarse bajo una supervisión estricta del ingeniero de soporte técnico de Microsoft. Si no lo hace, podría provocar un tiempo de inactividad grave, pérdida de datos y podría requerir una reimplementación completa del entorno de Azure Stack Hub.
Una vez finalizada la sesión de soporte, es muy importante volver a cerrar la sesión de PEP elevada mediante el cmdlet Close-PrivilegedEndpoint, como se explica en la sección anterior. Una vez que la sesión PEP termina, el token de desbloqueo ya no es válido y no se puede reutilizar para desbloquear la sesión PEP nuevamente. Una sesión de PEP con privilegios elevados tiene una validez de 8 horas; después de ese tiempo, si no se termina, la sesión de PEP con privilegios elevados se convertirá automáticamente en una sesión PEP normal.
Contenido de los tokens de punto de conexión con privilegios
La solicitud de sesión de soporte PEP y los tokens de autorización utilizan la criptografía para proteger el acceso y garantizar que solo los tokens autorizados puedan desbloquear la sesión PEP. Los tokens están diseñados para garantizar criptográficamente que un token de respuesta solo pueda ser aceptado por la sesión PEP que generó el token de solicitud. Los Tokens PEP no contienen ningún tipo de información que pueda identificar de forma única un entorno de Azure Stack Hub o un cliente. Son completamente anónimos. A continuación se proporcionan los detalles del contenido de cada token.
Token de solicitud de la sesión de soporte
El token de solicitud de la sesión de soporte de PEP se compone de tres objetos:
- Identificador de sesión generado aleatoriamente.
- Un certificado autofirmado, generado con el fin de tener un par de claves pública y privada único. El certificado no contiene información sobre el entorno.
- Marca de tiempo que indica la expiración del token de solicitud.
A continuación, el token de solicitud se cifra con la clave pública de la nube de Azure en la que se registra el entorno de Azure Stack Hub.
Token de respuesta de autorización de la sesión de soporte
El token de respuesta de autorización de compatibilidad con PEP se compone de dos objetos:
- El identificador de sesión generado aleatoriamente extraído del token de solicitud.
- Marca de tiempo que indica la expiración del token de respuesta.
A continuación, el token de respuesta se cifra con el certificado autofirmado contenido en el token de solicitud. El certificado autofirmado se descifra con la clave privada asociada a la nube de Azure en la que se registra el entorno de Azure Stack Hub.