Usar o ponto de extremidade privilegiado no Azure Stack Hub

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

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 do DNS (Sistema de Nomes de Domínio) após a implantação, configurar a integração do Microsoft Graph, integração de Serviços de Federação do Active Directory (AD FS) (AD FS), rotação de certificados e assim por diante.
  • Trabalhar com suporte para obter acesso temporário de alto nível para solução de problemas em profundidade de um sistema integrado.

O PEP registra cada ação (e sua saída correspondente) que você executa na sessão do PowerShell. Isso fornece total transparência e auditoria completa das operações. Você pode manter esses arquivos de log para auditorias futuras.

Observação

No ASDK (Azure Stack Development Kit), 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 coleção 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 OAW (Estação de Trabalho de Acesso do Operador) para acessar o PEP (ponto de extremidade privilegiado), o portal do Administrador para cenários de suporte e as Ferramentas do GitHub do Azure Stack Hub. Para obter mais informações, consulte Estação de trabalho de acesso do operador do Azure Stack Hub.

Acesse 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 é chamada AzS-ERCS01. Se você estiver usando um sistema integrado, haverá 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, verifique se você pode acessar o PEP por endereço IP ou DNS. Após a implantação inicial do Azure Stack Hub, você pode acessar o PEP apenas por endereço IP porque a integração DNS ainda não foi configurada. Seu fornecedor de hardware OEM fornecerá a você um arquivo JSON denominado AzureStackStampDeploymentInfo que contém os endereços IP de 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 Propriedades de Gerenciamento> deRegião.

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 no host do ciclo de vida de hardware ou de um computador dedicado e seguro, como uma Estação de Trabalho de Acesso Privilegiado. A configuração original do host de ciclo de vida do hardware não deve ser modificada de sua configuração original (incluindo a instalação de um novo software) ou usada para se conectar ao PEP.

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

    • Em um sistema integrado, execute o comando a seguir em uma sessão de Windows PowerShell com privilégios elevados para adicionar o PEP como um host confiável na VM protegida em execução no host do 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 do ciclo de vida de hardware ou na Estação de Trabalho de Acesso Privilegiado, abra uma sessão 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

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

    Observação

    Se você não conseguir se conectar ao ponto de extremidade do ERCS, tente executar novamente as etapas um e dois com outro endereço IP da VM do ERCS.

    Aviso

    Por padrão, o carimbo do Azure Stack Hub é configurado com apenas uma conta do CloudAdmin. Não haverá 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 recomendável que você crie contas adicionais do CloudAdmin para evitar a reimplantação do selo às suas próprias custas. Documente essas credenciais com base nas diretrizes da sua empresa.

  3. Depois de se conectar, o prompt será alterado para [endereço IP ou nome da VM do 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 em Referência de ponto de extremidade privilegiado do Azure Stack Hub

    Muitos desses cmdlets destinam-se apenas a ambientes integrados do sistema (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

Conforme mencionado acima, o PEP é um ponto de extremidade JEA do PowerShell . Ao fornecer uma camada de segurança forte, um ponto de extremidade JEA reduz alguns dos recursos básicos do PowerShell, como scripts ou preenchimento de tabulação. Se você tentar qualquer tipo de operação de script, a operação falhará com o erro ScriptsNotAllowed. Essa falha é o 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 em seu computador local, juntamente com a conclusão da guia e, mais em geral, o script. 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 comando a seguir em uma sessão de Windows PowerShell com privilégios elevados para adicionar o PEP como um host confiável na VM protegida em execução no host do 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 do ciclo de vida de hardware ou na Estação de Trabalho de Acesso Privilegiado, abra uma sessão 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 Hub domain>\cloudadmin. (Para o ASDK, o nome de usuário é azurestack\cloudadmin.)

    • Senha: insira a mesma senha fornecida durante a instalação da conta de administrador de domínio do AzureStackAdmin.

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

    Import-PSSession $session
    
  4. Agora, você pode usar o preenchimento de tabulação 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

Conforme 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 Close-PrivilegedEndpoint cmdlet . Esse cmdlet fecha corretamente o ponto de extremidade e transfere os arquivos de log para um compartilhamento de arquivos externo para retenção.

Para fechar a sessão do ponto de extremidade:

  1. 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.

  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 forem transferidos com êxito para o compartilhamento de arquivos, eles serão excluídos automaticamente do PEP.

Observação

Se você fechar a sessão PEP usando os cmdlets Exit-PSSession ou Exitou apenas fechar o console do PowerShell, os logs de transcrição não serão transferidos 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 das sessões anteriores também serão transferidos. Não use Exit-PSSession nem Exit para fechar a sessão PEP; use Close-PrivilegedEndpoint em vez disso.

Desbloquear o ponto de extremidade privilegiado para cenários de suporte

Durante um cenário de suporte, o engenheiro responsável da Microsoft pode precisar elevar a sessão do PowerShell de ponto de extremidade privilegiado para acessar as partes internas da infraestrutura do Azure Stack Hub. Esse processo às vezes é denominado informalmente como "quebra de transparência" ou "desbloqueio de PEP". O processo de elevação da sessão PEP é uma etapa de duas etapas, duas pessoas, dois processos de autenticação da organização. 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 esse 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 um meio 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 do Azure Stack Hub. Na mesma sessão do PowerShell de 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 e acessibilidade completos 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 a supervisão estrita do engenheiro de suporte da Microsoft. A falha ao 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 das sessões 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(oito) horas. Após esse período, se a sessão não for encerrada, ela 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 pep aproveitam a criptografia para proteger o acesso e garantir que apenas tokens autorizados possam desbloquear a sessão PEP. Os tokens foram projetados para garantir criptograficamente que um token de resposta só pode 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. Eles são completamente anônimos. Abaixo, os 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 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 sobre o ambiente.
  • Um carimbo de data/hora que indica a expiração do token de solicitação.

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

Suporte ao token de resposta de autorização de sessão

O token de resposta de autorização de suporte 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 do Azure Stack Hub está registrado.

Próximas etapas