Usar o ponto de extremidade privilegiado no Hub Azure Stack

Como um operador de Hub de Azure Stack, você deve usar o portal do administrador, o PowerShell ou as APIs do Azure Resource Manager para a maioria das tarefas de gerenciamento do dia a dia. No entanto, para algumas operações menos comuns, você precisa usar o ponto de extremidade privilegiado (PEP). O PEP é um console do PowerShell remoto pré-configurado que fornece apenas recursos suficientes para ajudá-lo a realizar uma tarefa necessária. O ponto de extremidade usa o PowerShell Jea (apenas administração suficiente) para expor apenas um conjunto restrito de cmdlets. Para acessar o PEP e invocar o conjunto restrito de cmdlets, é usada uma conta com poucos privilégios. Nenhuma conta de administrador é necessária. Para obter segurança adicional, não é permitido gerar scripts.

Você pode usar o PEP para executar estas tarefas:

  • Tarefas de nível baixo, como coletar logs de diagnóstico.
  • muitas tarefas de integração de datacenter pós-implantação para sistemas integrados, como adicionar encaminhadores de DNS (sistema de nomes de domínio) após a implantação, configurar a integração de Microsoft Graph, Serviços de Federação do Active Directory (AD FS) (AD FS), rotação de certificado e assim por diante.
  • Para trabalhar com suporte para obter acesso temporário e de alto nível para solução de problemas detalhada 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 fornece total transparência e auditoria completa de operações. Você pode manter esses arquivos de log para auditorias futuras.

Observação

No Kit de Desenvolvimento do Azure Stack (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, talvez você queira testar algumas operações usando o PEP, como a coleta de log, 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 do operador (OAW) para acessar o ponto de extremidade privilegiado (PEP), o portal do administrador para cenários de suporte e as ferramentas de GitHub do Hub Azure Stack. Para obter mais informações, consulte Azure Stack estação de trabalho acesso de operador de Hub.

Acessar o ponto de extremidade privilegiado

Você acessa o PEP por meio de uma sessão remota do PowerShell na VM (máquina virtual) que hospeda o PEP. No ASDK, essa VM é denominada AzS-ERCS01. Se você estiver usando um sistema integrado, há três instâncias do PEP, cada uma executando 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, verifique se você pode acessar o PEP pelo endereço IP ou pelo DNS. Após a implantação inicial do hub de Azure Stack, você pode acessar o PEP somente pelo endereço IP porque a integração de DNS ainda não está configurada. Seu fornecedor de hardware OEM fornecerá 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 hub de Azure Stack. Abra o portal, por exemplo, https://adminportal.local.azurestack.external . Selecione região gerenciamentoPropriedades.

Você precisará definir sua configuração de cultura atual como en-US ao executar o ponto de extremidade privilegiado, caso contrário, cmdlets como Test-AzureStack ou Get-AzureStackLog não funcionarão conforme o esperado.

Observação

Por motivos de segurança, exigimos que você se conecte ao PEP somente de uma VM protegida em execução na parte superior do host de ciclo de vida do hardware ou de um computador dedicado e seguro, como uma estação de trabalho com acesso privilegiado. A configuração original do host de ciclo de vida do hardware não deve ser modificada a partir de sua configuração original (incluindo a instalação de novo software) ou usada para se conectar ao PEP.

  1. Estabeleça a relação de confiança.

    • em um sistema integrado, execute o seguinte comando em uma sessão de Windows PowerShell elevada para adicionar o PEP como um host confiável na VM protegida em execução no host de ciclo de vida de 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ê estiver executando o ASDK, entre no host do kit de desenvolvimento.

  2. na VM protegida em execução no host de ciclo de vida de hardware ou na estação de trabalho de acesso privilegiado, abra uma sessão de Windows PowerShell. Execute os seguintes comandos para estabelecer uma sessão remota na VM que hospeda o PEP:

    • Em um 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 ComputerName parâmetro pode ser o endereço IP ou o nome DNS de uma das VMs que hospeda o PEP.

      Observação

      Azure Stack Hub não faz uma chamada remota ao validar a credencial PEP. Ele se baseia em uma chave pública RSA armazenada localmente para fazer isso.

    • Se você estiver executando 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 Azure Stack domínio do Hub \cloudadmin. (Para ASDK, o nome de usuário é azurestack\cloudadmin)
    • Senha: Insira a mesma senha que foi fornecida durante a instalação para a conta de administrador de domínio AzureStackAdmin.

    Observação

    Se não for possível se conectar ao ponto de extremidade ERCS, repita as etapas um e dois com outro endereço IP de VM ERCS.

  3. Depois de se conectar, o prompt será alterado 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 no em Azure Stack referência de ponto de extremidade com privilégios de Hub

    Muitos desses cmdlets são destinados apenas a ambientes de sistema integrados (como os cmdlets relacionados à integração do 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 Jea do PowerShell . Ao fornecer uma camada forte de segurança, um ponto de extremidade JEA reduz alguns dos recursos básicos do PowerShell, como o preenchimento de script ou de guia. Se você tentar qualquer tipo de operação de script, a operação falhará com o erro ScriptsNotAllowed. Essa 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 seu computador local. Os cmdlets e as funções do PEP agora estão disponíveis no computador local, junto com o preenchimento com Tab e, mais em geral, scripts. Você também pode executar o módulo Get-Help para examinar as instruções do cmdlet.

Para importar a sessão PEP em seu computador local, execute as seguintes etapas:

  1. Estabeleça a relação de confiança.

    • em um sistema integrado, execute o seguinte comando em uma sessão de Windows PowerShell elevada para adicionar o PEP como um host confiável na VM protegida em execução no host de ciclo de vida de hardware ou na estação de trabalho 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.

  2. na VM protegida em execução no host de ciclo de vida de hardware ou na estação de trabalho de acesso privilegiado, abra uma sessão de Windows PowerShell. Execute os seguintes comandos para estabelecer uma sessão remota na máquina virtual que hospeda o PEP:

    • Em um 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 ComputerName parâmetro 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 Azure Stack domínio do Hub \cloudadmin. (Para ASDK, o nome de usuário é azurestack\cloudadmin.)

    • Senha: Insira a mesma senha que foi fornecida durante a instalação para a conta de administrador de domínio AzureStackAdmin.

  3. Importe a sessão PEP para o computador local:

    Import-PSSession $session
    
  4. Agora, você pode usar a conclusão de tabulação e criar 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 hub de Azure Stack. Aproveite!

Fechar a sessão de ponto de extremidade privilegiado

Como mencionado anteriormente, o PEP registra cada ação (e sua saída correspondente) que você faz na sessão do PowerShell. Você deve fechar a sessão usando o Close-PrivilegedEndpoint cmdlet. Esse cmdlet fecha o ponto de extremidade corretamente e transfere os arquivos de log para um compartilhamento de arquivos externo para retenção.

Para fechar a sessão de ponto de extremidade:

  1. Crie um compartilhamento de arquivos externo acessível pelo PEP. Em um ambiente do kit de desenvolvimento, você pode simplesmente criar um compartilhamento de arquivos no host do kit de desenvolvimento.

  2. Execute o cmdlet a seguir:

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

    O cmdlet usa os parâmetros na tabela a seguir:

    Parâmetro Descrição Type Obrigatório
    TranscriptsPathDestination Caminho para o compartilhamento de arquivos externo definido como "fileshareIP\sharefoldername" String 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 o compartilhamento de arquivos, eles são automaticamente excluídos do PEP.

Observação

Se você fechar a sessão PEP usando os cmdlets Exit-PSSession ou Exit apenas fechar o console do PowerShell, os logs de transcrição não transferirão para um compartilhamento de arquivos. Eles permanecem no PEP. Na 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 também serão transferidos. Não use Exit-PSSession ou Exit feche a sessão 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 de ponto de extremidade privilegiado para acessar os elementos internos da infraestrutura do hub de Azure Stack. Esse processo às vezes é chamado informalmente de "quebrar o vidro" ou "desbloquear o PEP". O processo de elevação da sessão PEP é uma etapa, duas pessoas, dois processos de autenticação da organização. O procedimento de desbloqueio é iniciado pelo operador Hub de Azure Stack, que retém o controle de seu ambiente em todos os momentos. 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 de caracteres alfanumérica muito longa. Em seguida, o operador passa o token de solicitação para o engenheiro de suporte da Microsoft por meio de uma mídia de sua escolha (por exemplo, chat, email). O engenheiro de suporte da Microsoft usa o token de solicitação para gerar, se for válido, um token de autorização de sessão de suporte e enviá-lo de volta para o operador Hub de Azure Stack. Na mesma sessão do PowerShell do PEP, 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 do PEP será elevada fornecendo recursos de administração completos e acessibilidade completa na infraestrutura.

Observação

Todas as operações e os cmdlets executados em uma sessão PEP com privilégios elevados devem ser executados sob uma supervisão estrita do engenheiro de suporte da Microsoft. A falha em fazer isso pode resultar em um tempo de inatividade sério, perda de dados e pode exigir uma reimplantação completa do ambiente de Hub de Azure Stack.

Depois que a sessão de suporte é encerrada, é muito importante fechar a sessão PEP com privilégios elevados usando o cmdlet Close-PrivilegedEndpoint , conforme explicado na seção acima. Uma 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 PEP com privilégios elevados tem uma validade de 8 horas, após a qual, se não for encerrada, a sessão de PEP elevada será bloqueada automaticamente para uma sessão PEP normal.

Conteúdo dos tokens de ponto de extremidade privilegiados

Os tokens de solicitação e autorização de sessão de suporte do 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 qualquer tipo de informação que possa identificar exclusivamente um ambiente de Hub de Azure Stack ou um cliente. Eles são completamente anônimos. Abaixo dos detalhes do conteúdo de cada token, são fornecidos.

Token de solicitação de sessão de suporte

O token de solicitação de sessão de suporte do PEP é composto por três objetos:

  • Uma ID de sessão gerada aleatoriamente.
  • Um certificado autoassinado, gerado com a finalidade de ter um par de chaves pública/privada única. O certificado não contém nenhuma informação no ambiente.
  • Um carimbo de data/hora que indica a expiração do token de solicitação.

O token de solicitação é então criptografado com a chave pública da nuvem do Azure na qual o ambiente de Hub de Azure Stack está registrado.

Token de resposta de autorização de sessão de suporte

O token de resposta de autorização de suporte do PEP é composto por dois objetos:

  • A ID de sessão gerada aleatoriamente extraída do token de solicitação.
  • Um carimbo de data/hora que indica a expiração do token de resposta.

O token de resposta é 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 de Hub de Azure Stack está registrado.

Próximas etapas