Usar o ponto de extremidade privilegiado em Azure Stack Hub

Como um 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, 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 fazer 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 adição de encaminhadores DNS (Sistema de Nomes de Domínio) após a implantação, configuração da integração do Microsoft Graph, integração do 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 transparência total 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 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 Azure Stack Hub GitHub Tools. Para obter mais informações, consulte Azure Stack Hub trabalho de acesso do operador.

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 é denominada 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 Gerenciamento deRegiãoPropriedades>.

Você precisará definir sua configuração de en-US cultura atual como 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 protegido em execução sobre o 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 Windows PowerShell com privilégios elevados para adicionar o PEP como um host confiável na VM forte 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 fortemente em execução no host do ciclo de vida de hardware ou na Estação de Trabalho com Acesso Privilegiado, abra uma Windows PowerShell sessão. 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 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 Hub domain>\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 você não conseguir se conectar ao ponto de extremidade do ERCS, repetir as etapas um e dois com outro endereço IP da VM do ERCS.

    Aviso

    Por padrão, Azure Stack Hub carimbo de data/hora é configurado com apenas uma conta cloudAdmin. Não haverá opções de recuperação se as credenciais da conta são 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 carimbo às suas próprias custas. Documente essas credenciais com base nas diretrizes da sua empresa.

  3. 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. Aqui, execute para Get-Command exibir a lista de cmdlets disponíveis.

    Você pode encontrar uma referência para cmdlets no em Azure Stack Hub de ponto de extremidade privilegiado

    Muitos desses cmdlets destinam-se 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

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 script 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 no computador local. Os cmdlets e as funções do PEP agora estão disponíveis em seu computador local, junto com o preenchimento de tabulação 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 seu computador local, faça 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 Windows PowerShell com privilégios elevados para adicionar o PEP como um host confiável na VM forte 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 fortemente em execução no host do ciclo de vida de hardware ou na Estação de Trabalho com Acesso Privilegiado, abra uma Windows PowerShell sessão. 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 do 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 Yes
    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 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, 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 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 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 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 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(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 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