Usar o ponto de extremidade privilegiado no Azure Stack Hub
Como um operador do Azure Stack Hub, você deve usar o portal do administrador, o PowerShell ou as APIs do Azure Resource Manager para a maioria das tarefas de gerenciamento diárias. No entanto, para algumas operações menos comuns, você deve usar o Privileged Endpoint (PEP). O PEP é um console remoto do PowerShell pré-configurado que fornece recursos suficientes para ajudá-lo a realizar uma tarefa necessária. O endpoint usa PowerShell JEA (Just Enough Administration) para expor apenas um conjunto restrito de cmdlets. Para aceder ao PEP e invocar o conjunto restrito de cmdlets, utiliza-se uma conta com poucos privilégios. Não são necessárias contas de administrador. Para segurança adicional, a criação de scripts não é permitida.
Você pode usar o PEP para executar estas tarefas:
- Tarefas de baixo nível, como coletar logs de diagnóstico.
- Muitas tarefas de integração de datacenter pós-implantação para sistemas integrados, como adicionar encaminhadores DNS (Sistema de Nomes de Domínio) após a implantação, configurar a integração do Microsoft Graph, integração dos Serviços de Federação do Ative Directory (AD FS), rotação de certificados e assim por diante.
- Trabalhar com pessoal de suporte para obter acesso temporário de alto nível para solução de problemas aprofundada de um sistema integrado.
O PEP registra todas as ações (e sua saída correspondente) que você executa na sessão do PowerShell. Isso proporciona total transparência e auditoria completa das operações. Você pode manter esses arquivos de log para auditorias futuras.
Observação
No Azure Stack Development Kit (ASDK), você pode executar alguns dos comandos disponíveis no PEP diretamente de uma sessão do PowerShell no host do kit de desenvolvimento. No entanto, convém testar algumas operações usando o PEP, como a coleta de logs, porque esse é o único método disponível para executar determinadas operações em um ambiente de sistemas integrados.
Observação
Você também pode usar a Estação de Trabalho de Acesso ao Operador (OAW) para acessar o ponto de extremidade privilegiado (PEP), o portal do administrador para cenários de suporte e as Ferramentas GitHub do Azure Stack Hub. Para obter mais informações, consulte Workstation de Acesso do Operador do Azure Stack Hub.
Aceder ao ponto de extremidade privilegiado
Você acessa o PEP por meio de uma sessão remota do PowerShell na máquina virtual (VM) que hospeda o PEP. No ASDK, essa VM é nomeada AzS-ERCS01. Se você estiver usando um sistema integrado, há três instâncias do PEP, cada uma em execução dentro de uma VM (Prefix-ERCS01, Prefix-ERCS02 ou Prefix-ERCS03) em hosts diferentes para resiliência.
Antes de iniciar este procedimento para um sistema integrado, certifique-se de que pode aceder ao PEP através do endereço IP ou através do DNS. Após a implantação inicial do Azure Stack Hub, você pode acessar o PEP somente pelo endereço IP, pois a integração DNS ainda não está configurada. Seu fornecedor de hardware OEM fornece um arquivo JSON chamado AzureStackStampDeploymentInfo que contém os endereços IP PEP.
Você também pode encontrar o endereço IP no portal do administrador do Azure Stack Hub. Abra o portal; por exemplo, https://adminportal.local.azurestack.external
. Selecione Region Management>Properties.
Você deve definir a sua cultura atual para en-US
ao executar o ponto de extremidade privilegiado; caso contrário, cmdlets como Test-AzureStack
ou Get-AzureStackLog
não funcionarão como esperado.
Observação
Por motivos de segurança, exigimos que você se conecte ao PEP somente a partir de uma VM protegida em execução sobre o host do ciclo de vida do hardware ou de um computador dedicado e seguro, como uma estação de trabalho Privileged Access. A configuração original do sistema de gestão de ciclo de vida do hardware não deve ser alterada (incluindo a instalação de novo software) nem usada para se conectar ao PEP.
Estabeleça a confiança.
Em um sistema integrado, execute o seguinte comando a partir de uma sessão elevada do Windows PowerShell para adicionar o PEP como um host confiável na VM protegida em execução no host do ciclo de vida do hardware ou na Estação de Trabalho de Acesso Privilegiado:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value '<IP Address of Privileged Endpoint>' -Concatenate
Se você executar o ASDK, entre no host do kit de desenvolvimento.
Na VM protegida em execução no host do ciclo de vida do hardware ou na Estação de Trabalho de Acesso Privilegiado, abra uma sessão do Windows PowerShell. Execute os seguintes comandos para estabelecer uma sessão remota na VM que hospeda o PEP:
Num 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
O parâmetro
ComputerName
pode ser o endereço IP ou o nome DNS de uma das VMs que hospeda o PEP.Observação
O Azure Stack Hub não faz uma chamada remota ao validar a credencial PEP. Ele depende de uma chave pública RSA armazenada localmente para fazer isso.
Se você executar o 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
Quando solicitado, use as seguintes credenciais:
- Nome de usuário: especifique a conta CloudAdmin, no formato <domínio do Azure Stack Hub>\cloudadmin.
- Password: Insira a mesma senha que foi fornecida durante a instalação para a conta de administrador do domínio AzureStackAdmin.
Observação
Se você não conseguir se conectar ao ponto de extremidade ERCS, tente novamente as etapas um e dois com outro endereço IP da VM ERCS.
Advertência
Por padrão, seu carimbo do Azure Stack Hub é configurado com apenas uma conta CloudAdmin. Não há opções de recuperação se as credenciais da conta forem perdidas, comprometidas ou bloqueadas. Você perderá o acesso ao ponto de extremidade privilegiado e a outros recursos.
É altamente recomendado que você criar contas adicionais do CloudAdmin, para evitar a reimplantação do seu carimbo às suas próprias custas. Certifique-se de documentar essas credenciais com base nas diretrizes da sua empresa.
Depois de se conectar, o prompt mudará para [endereço IP ou nome da VM ERCS]: PS> ou para [azs-ercs01]: PS>, dependendo do ambiente. A partir daqui, execute
Get-Command
para exibir a lista de cmdlets disponíveis.Você pode encontrar uma referência para cmdlets em de referência de ponto de extremidade privilegiado do Azure Stack Hub
Muitos desses cmdlets destinam-se apenas a ambientes de sistema integrado (como os cmdlets relacionados à integração de datacenter). No ASDK, os seguintes cmdlets foram validados:
- 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
Como usar o ponto de extremidade privilegiado
Como mencionado acima, o PEP é um ponto de extremidade do PowerShell JEA. Ao mesmo tempo em que fornece uma camada de segurança forte, um ponto de extremidade JEA reduz alguns dos recursos básicos do PowerShell, como scripts ou preenchimento de guias. Se você tentar qualquer tipo de operação de script, a operação falhará com o erro ScriptsNotAllowed. Esta falha é um comportamento esperado.
Por exemplo, para obter a lista de parâmetros para um determinado cmdlet, execute o seguinte comando:
Get-Command <cmdlet_name> -Syntax
Como alternativa, você pode usar o cmdlet Import-PSSession para importar todos os cmdlets PEP para a sessão atual em sua máquina local. Os cmdlets e funções do PEP agora estão disponíveis em sua máquina local, juntamente com o preenchimento de guias e, mais em geral, scripts. Você também pode executar o módulo Get-Help para revisar as instruções do cmdlet.
Para importar a sessão PEP em sua máquina local, execute as seguintes etapas:
Estabeleça a confiança.
Num sistema integrado, execute o seguinte comando numa sessão do Windows PowerShell com privilégios elevados para adicionar o PEP como um anfitrião confiável na VM protegida em execução no host de ciclo de vida do hardware ou numa Estação de Acesso Privilegiado.
winrm s winrm/config/client '@{TrustedHosts="<IP Address of Privileged Endpoint>"}'
Se você estiver executando o ASDK, entre no host do kit de desenvolvimento.
Na VM protegida em execução no host do ciclo de vida do hardware ou na Estação de Trabalho de Acesso Privilegiado, abra uma sessão do Windows PowerShell. Execute os seguintes comandos para estabelecer uma sessão remota na máquina virtual que hospeda o PEP:
Num 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)
O parâmetro
ComputerName
pode ser o endereço IP ou o nome DNS de uma das VMs que hospeda o PEP.Se você estiver executando o ASDK:
$cred = Get-Credential $session = New-PSSession -ComputerName azs-ercs01 ` -ConfigurationName PrivilegedEndpoint -Credential $cred ` -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
Quando solicitado, use as seguintes credenciais:
Nome de usuário: especifique a conta CloudAdmin, no formato <domínio do Azure Stack Hub>\cloudadmin. (Para ASDK, o nome de usuário é azurestack\cloudadmin.)
Palavra-passe: Insira a mesma palavra-passe que foi fornecida durante o processo de instalação para a conta de administrador de domínio AzureStackAdmin.
Importe a sessão PEP para a sua máquina local:
Import-PSSession $session
Agora, você pode usar o preenchimento de guias e fazer scripts como de costume em sua sessão local do PowerShell com todas as funções e cmdlets do PEP, sem diminuir a postura de segurança do Azure Stack Hub. Aproveite!
Fechar a sessão de ponto de extremidade privilegiado
Como mencionado anteriormente, o PEP registra todas as ações (e sua saída correspondente) que você faz na sessão do PowerShell. Você deve fechar a sessão usando o cmdlet Close-PrivilegedEndpoint
. Este cmdlet fecha corretamente o ponto de extremidade e transfere os arquivos de log para uma partilha de ficheiros externa para retenção.
Para encerrar a sessão do endpoint:
Crie um compartilhamento de arquivos externo acessível pelo PEP. Em um ambiente de kit de desenvolvimento, você pode apenas criar um compartilhamento de arquivos no host do kit de desenvolvimento.
Execute o seguinte cmdlet:
Close-PrivilegedEndpoint -TranscriptsPathDestination "\\fileshareIP\SharedFolder" -Credential Get-Credential
O cmdlet usa os parâmetros na tabela a seguir:
Parâmetro Descrição Tipo Necessário TranscriptsPathDestination Caminho para o compartilhamento de arquivos externo definido como "fileshareIP\sharefoldername" Cadeia Sim Credencial Credenciais para acessar o compartilhamento de arquivos SecureString Sim
Depois que os arquivos de log de transcrição são transferidos com êxito para a partilha de ficheiros, eles são excluídos automaticamente do PEP.
Observação
Se você fechar a sessão PEP usando os cmdlets Exit-PSSession
ou Exit
, ou simplesmente fechar o console do PowerShell, os logs de transcrição não serão transferidos para um compartilhamento de arquivos. Permanecem no PEP. Da próxima vez que você executar Close-PrivilegedEndpoint
e incluir um compartilhamento de arquivos, os logs de transcrição da(s) sessão(ões) anterior(es) também serão transferidos. Não utilize Exit-PSSession
ou Exit
para fechar a sessão de PEP; use Close-PrivilegedEndpoint
em vez disso.
Desbloqueando o ponto de extremidade privilegiado para cenários de suporte
Durante um cenário de suporte, o engenheiro de suporte da Microsoft pode precisar elevar a sessão do PowerShell no ponto de extremidade privilegiado para acessar os componentes internos da infraestrutura do Azure Stack Hub. Este processo é por vezes informalmente referido como "quebrar o vidro" ou "desbloquear o PEP". O processo de elevação da sessão PEP consiste em duas etapas de autenticação, envolvendo duas pessoas e duas organizações. O procedimento de desbloqueio é iniciado pelo operador do Azure Stack Hub, que mantém o controle de seu ambiente o tempo todo. O operador acessa o PEP e executa este cmdlet:
Get-SupportSessionToken
O cmdlet retorna o token de solicitação de sessão de suporte, uma cadeia alfanumérica muito longa. Em seguida, o operador passa o token de solicitação para o engenheiro de suporte da Microsoft por meio de um meio de sua escolha (por exemplo, bate-papo, e-mail). O engenheiro de suporte da Microsoft usa o token de solicitação para gerar, se válido, um token de autorização de sessão de suporte e o envia de volta para o operador do Azure Stack Hub. Na mesma sessão PEP PowerShell, o operador passa o token de autorização como entrada para este cmdlet:
unlock-supportsession
cmdlet Unlock-SupportSession at command pipeline position 1
Supply values for the following parameters:
ResponseToken:
Se o token de autorização for válido, a sessão do PowerShell PEP será elevada fornecendo recursos de administração completos e acessibilidade total na infraestrutura.
Observação
Todas as operações e cmdlets executados em uma sessão PEP elevada devem ser executados sob estrita supervisão do engenheiro de suporte da Microsoft. A falha em fazer isso pode resultar em tempo de inatividade grave, perda de dados e pode exigir uma reimplantação completa do ambiente do Azure Stack Hub.
Depois que a sessão de suporte for encerrada, é muito importante fechar novamente a sessão PEP elevada usando o cmdlet Close-PrivilegedEndpoint, conforme explicado na seção acima. Uma vez que a sessão PEP é encerrada, o token de desbloqueio não é mais válido e não pode ser reutilizado para desbloquear a sessão PEP novamente. Uma sessão de PEP elevada tem uma validade de 8 horas, ao fim das quais, caso não seja encerrada, a sessão de PEP elevada reverterá para uma sessão de PEP regular.
Conteúdo dos tokens de ponto de extremidade privilegiados
Os tokens de solicitação e autorização de sessão de suporte PEP aproveitam a criptografia para proteger o acesso e garantir que apenas tokens autorizados possam desbloquear a sessão PEP. Os tokens são projetados para garantir criptograficamente que um token de resposta só possa ser aceito pela sessão PEP que gerou o token de solicitação. Os tokens PEP não contêm nenhum tipo de informação que possa identificar exclusivamente um ambiente do Azure Stack Hub ou um cliente. São completamente anónimos. Abaixo são fornecidos os detalhes do conteúdo de cada token.
Token de solicitação de sessão de suporte
O token de solicitação de sessão de suporte PEP é composto por três objetos:
- Um ID de sessão gerado aleatoriamente.
- Um certificado autoassinado, gerado com a finalidade de ter um par de chaves público/privado único. O certificado não contém qualquer informação sobre o ambiente.
- Uma marca temporal que indica a expiração do token de pedido.
O token de solicitação é então criptografado com a chave pública da nuvem do Azure na qual o ambiente do Azure Stack Hub está registrado.
Token de resposta de autorização de sessão de suporte
O token de resposta de autorização de suporte PEP é composto por dois objetos:
- O ID de sessão gerado aleatoriamente extraído do token de solicitação.
- Um carimbo de data e hora que indica a expiração do token de resposta.
O token de resposta é então criptografado com o certificado autoassinado contido no token de solicitação. O certificado autoassinado foi descriptografado com a chave privada associada à nuvem do Azure na qual o ambiente do Azure Stack Hub está registrado.