Use o ponto final privilegiado no Azure Stack Hub

Como operador do Azure Stack Hub, deve utilizar o portal de administradores, PowerShell ou Azure Resource Manager APIs para a maioria das tarefas de gestão do dia-a-dia. No entanto, para algumas operações menos comuns, é necessário utilizar o ponto final privilegiado (PEP). O PEP é uma consola remota pré-configurada PowerShell que lhe fornece capacidades suficientes para o ajudar a fazer uma tarefa necessária. O ponto final utiliza a PowerShell JEA (Just Enough Administration) para expor apenas um conjunto restrito de cmdlets. Para aceder ao PEP e invocar o conjunto restrito de cmdlets, é utilizada uma conta de baixo privilégio. Não são necessárias contas de administração. Para segurança adicional, não é permitido guião.

Pode utilizar o PEP para executar estas tarefas:

  • Tarefas de baixo nível, tais como a recolha de registos de diagnóstico.
  • Muitas tarefas de integração do datacenter pós-implantação para sistemas integrados, tais como adicionar reencaminhadores do Sistema de Nome de Domínio (DNS) após a implementação, criando a integração Graph microsoft, integração de Serviços da Federação de Diretórios Ativos (AD FS), rotação de certificados, e assim por diante.
  • Trabalhar com apoio para obter acesso temporário e de alto nível para a resolução aprofundada de problemas de um sistema integrado.

O PEP regista todas as ações (e a respetiva saída) que executa na sessão PowerShell. Isto proporciona total transparência e auditoria completa das operações. Pode guardar estes ficheiros de registo para futuras auditorias.

Nota

No Kit de Desenvolvimento de Pilhas Azure (ASDK), pode executar alguns dos comandos disponíveis no PEP diretamente a partir de uma sessão PowerShell no anfitrião do kit de desenvolvimento. No entanto, pode querer testar algumas operações utilizando o PEP, como a recolha de registos, pois este é o único método disponível para realizar determinadas operações num ambiente de sistemas integrados.

Nota

Também pode utilizar a Estação de Trabalho de Acesso ao Operador (OAW) para aceder ao ponto final privilegiado (PEP), o portal administrador para cenários de suporte e ferramentas GitHub do Azure Stack Hub. Para mais informações consulte a estação de trabalho de acesso ao operador do hub Azure Stack.

Aceda ao ponto final privilegiado

Aceda ao PEP através de uma sessão remota do PowerShell na máquina virtual (VM) que acolhe o PEP. Na ASDK, este VM chama-se AzS-ERCS01. Se estiver a utilizar um sistema integrado, existem três instâncias do PEP, cada uma a correr dentro de um VM(Prefix-ERCS01, Prefix-ERCS02 ou Prefix-ERCS03) em diferentes hospedeiros 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 de DNS. Após a implementação inicial do Azure Stack Hub, só pode aceder ao PEP através do endereço IP porque a integração do DNS ainda não está configurada. O seu fornecedor de hardware OEM fornecer-lhe-á um ficheiro JSON chamado AzureStackStampDeploymentInfo que contém os endereços PEP IP.

Pode também encontrar o endereço IP no portal do administrador do Azure Stack Hub. Abra o portal, por https://adminportal.local.azurestack.external exemplo, . Selecione Propriedades de Gestão da Região.

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

Nota

Por razões de segurança, exigimos que se conecte ao PEP apenas a partir de um VM endurecido que esteja em cima do anfitrião do ciclo de vida do hardware, ou de um computador dedicado e seguro, como uma estação de trabalho de acesso privilegiado. A configuração original do anfitrião do ciclo de vida do hardware não deve ser modificada a partir da sua configuração original (incluindo a instalação de um novo software) ou utilizada para ligar ao PEP.

  1. Estabeleça a confiança.

    • Num sistema integrado, executa o seguinte comando a partir de uma sessão de Windows PowerShell elevada para adicionar o PEP como um anfitrião de confiança no VM endurecido que funciona no anfitrião 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 estiver a executar o ASDK, inscreva-se no anfitrião do kit de desenvolvimento.

  2. No VM endurecido que funciona no anfitrião do ciclo de vida do hardware ou na Estação de Trabalho de Acesso Privilegiado, abra uma sessão de Windows PowerShell. Executar os seguintes comandos para estabelecer uma sessão remota no VM que acolhe 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 ComputerName parâmetro pode ser o endereço IP ou o nome DNS de um dos VMs que hospeda o PEP.

      Nota

      O Azure Stack Hub não faz uma chamada remota ao validar a credencial PEP. Baseia-se numa chave pública da RSA armazenada localmente para o fazer.

    • Se estiver a 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, utilize as seguintes credenciais:

    • Nome do utilizador: Especificar a conta CloudAdmin, no formato Azure Stack Hub domínio \cloudadmin. (Para ASDK, o nome de utilizador é azurestack\cloudadmin)
    • Senha: Introduza a mesma palavra-passe que foi fornecida durante a instalação para a conta de administrador de domínio AzureStackAdmin.

    Nota

    Se não conseguir ligar-se ao ponto final do ERCS, relemisse os passos um e dois com outro endereço IP ERCS VM.

  3. Depois de ligar, o pedido mudará para [ endereço IP ou nomeVM ERCS]: PS ou para [azs-ercs01]: PS, dependendo do ambiente. A partir daqui, corra Get-Command para ver a lista de cmdlets disponíveis.

    Você pode encontrar uma referência para cmdlets em Azure Stack Hub referência privilegiada ponto final

    Muitos destes cmdlets destinam-se apenas a ambientes integrados do sistema (como os cmdlets relacionados com a integração do datacenter). Na ASDK, foram validados os seguintes 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

Como usar o ponto final privilegiado

Como mencionado acima, o PEP é um ponto final powerShell JEA. Ao fornecer uma camada de segurança forte, um ponto final JEA reduz algumas das capacidades básicas do PowerShell, tais como scripting ou conclusão do separador. Se tentar qualquer tipo de operação de script, a operação falha com o erro ScriptsNotAllowed. Esta falha é um comportamento esperado.

Por exemplo, para obter a lista de parâmetros para um dado cmdlet, executar o seguinte comando:

    Get-Command <cmdlet_name> -Syntax

Em alternativa, pode utilizar o cmdlet Import-PSSession para importar todos os cmdlets PEP para a sessão atual na sua máquina local. Os cmdlets e funções do PEP estão agora disponíveis na sua máquina local, juntamente com a conclusão do separador e, mais em geral, a scripting. Também pode executar o módulo De Ajuda Para Rever as instruções do cmdlet.

Para importar a sessão PEP na sua máquina local, faça os seguintes passos:

  1. Estabeleça a confiança.

    • Num sistema integrado, executa o seguinte comando a partir de uma sessão de Windows PowerShell elevada para adicionar o PEP como um anfitrião de confiança no VM endurecido que funciona no anfitrião 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 estiver a executar o ASDK, inscreva-se no anfitrião do kit de desenvolvimento.

  2. No VM endurecido que funciona no anfitrião do ciclo de vida do hardware ou na Estação de Trabalho de Acesso Privilegiado, abra uma sessão de Windows PowerShell. Executar os seguintes comandos para estabelecer uma sessão remota na máquina virtual que acolhe 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 ComputerName parâmetro pode ser o endereço IP ou o nome DNS de um dos VMs que hospeda o PEP.

    • Se estiver a executar 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, utilize as seguintes credenciais:

    • Nome do utilizador: Especificar a conta CloudAdmin, no formato Azure Stack Hub domínio \cloudadmin. (Para ASDK, o nome de utilizador é azurestack\cloudadmin.)

    • Senha: Introduza a mesma palavra-passe que foi fornecida durante a instalação para a conta de administrador de domínio AzureStackAdmin.

  3. Importe a sessão PEP na sua máquina local:

    Import-PSSession $session
    
  4. Agora, pode utilizar a conclusão do separador e fazer scripts como de costume na 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. Divirta-se!

Feche a sessão privilegiada de ponto final

Como mencionado anteriormente, o PEP regista todas as ações (e a sua saída correspondente) que faz na sessão PowerShell. Deve encerrar a sessão utilizando o Close-PrivilegedEndpoint cmdlet. Este cmdlet fecha corretamente o ponto final e transfere os ficheiros de registo para uma partilha de ficheiros externa para retenção.

Para encerrar a sessão de ponto final:

  1. Crie uma partilha de ficheiros externa que seja acessível pelo PEP. Num ambiente de kit de desenvolvimento, você pode apenas criar uma partilha de arquivo no anfitrião do kit de desenvolvimento.

  2. Execute o seguinte cmdlet:

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

    O cmdlet utiliza os parâmetros na tabela seguinte:

    Parâmetro Descrição Tipo Necessário
    TranscriçõesDestinação Caminho para a partilha de ficheiros externos definido como "fileshareIP\sharefoldername" String Yes
    Credencial Credenciais para aceder à partilha de ficheiros SecureString Yes

Após a transferência com sucesso dos ficheiros de registo de transcrição para a partilha de ficheiros, são automaticamente eliminados do PEP.

Nota

Se fechar a sessão PEP utilizando os cmdlets Exit-PSSession ou , ou simplesmente fechar a consola Exit PowerShell, os registos de transcrição não são transferidos para uma partilha de ficheiros. Eles permanecem no PEP. Da próxima vez que correr Close-PrivilegedEndpoint e incluir uma partilha de ficheiros, os registos de transcrição da sessão anterior também serão transferidos. Não utilize Exit-PSSession nem Exit feche a sessão PEP; use Close-PrivilegedEndpoint em vez disso.

Desbloquear o ponto final privilegiado para cenários de apoio

Durante um cenário de suporte, o engenheiro de suporte da Microsoft poderá precisar de elevar a sessão privilegiada de PowerShell para aceder aos internos da infraestrutura 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 é um processo de elevação de duas etapas, duas pessoas, dois processos de autenticação da organização. O procedimento de desbloqueio é iniciado pelo operador Azure Stack Hub, que mantém sempre o controlo do seu ambiente. O operador acede ao PEP e executa este cmdlet:

     Get-SupportSessionToken

O cmdlet devolve o sinal de pedido de sessão de suporte, uma longa corda alfanumérica. Em seguida, o operador passa o sinal de pedido ao engenheiro de suporte da Microsoft através de um meio de sua escolha (por exemplo, chat, e-mail). O engenheiro de suporte da Microsoft usa o token de pedido para gerar, se válido, um token de autorização de sessão de suporte e enviá-lo de volta para o operador Azure Stack Hub. Na mesma sessão PEP PowerShell, o operador passa então 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 PEP PowerShell é elevada proporcionando capacidades de administração completas e total alcance na infraestrutura.

Nota

Todas as operações e cmdlets executadas numa sessão pep elevada devem ser realizadas sob supervisão rigorosa do engenheiro de suporte da Microsoft. Se não o fizer, poderá resultar em graves inatividades, perda de dados e pode exigir uma redistribuição completa do ambiente do Azure Stack Hub.

Uma vez terminada a sessão de suporte, é muito importante fechar a sessão PEP elevada utilizando o cmdlet Close-PrivilegedEndpoint, conforme explicado na secção acima. Uma sessão pep terminada, o token desbloqueio já não é válido e não pode ser reutilizado para desbloquear novamente a sessão PEP. Uma sessão pep elevada tem uma validade de 8 horas, após a qual, se não terminada, a sessão pep elevada irá automaticamente bloquear para uma sessão regular de PEP.

Conteúdo dos tokens de ponta privilegiados

O pedido de sessão de apoio PEP e os tokens de autorização alavancam a criptografia para proteger o acesso e garantir que apenas fichas autorizadas podem desbloquear a sessão PEP. Os tokens são projetados para garantir criptograficamente que um token de resposta só pode ser aceite pela sessão PEP que gerou o token pedido. Os tokens PEP não contêm qualquer tipo de informação que possa identificar de forma única um ambiente Azure Stack Hub ou um cliente. São completamente anónimos. Abaixo são fornecidos os detalhes do conteúdo de cada token.

Sinal de pedido de sessão de apoio

O sinal de pedido de sessão de apoio PEP é composto por três objetos:

  • Um ID de sessão gerado aleatoriamente.
  • Um certificado auto-assinado, gerado com o propósito de ter um par de chaves público/privado único. O certificado não contém qualquer informação sobre o ambiente.
  • Uma marca de tempo que indica a expiração do sinal de pedido.

O token de pedido é então encriptado com a chave pública da nuvem Azure contra a qual o ambiente Azure Stack Hub está registado.

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

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

  • O ID de sessão gerado aleatoriamente extraído do sinal de pedido.
  • Um carimbo de tempo que indica a expiração do sinal de resposta.

O token de resposta é então encriptado com o certificado auto-assinado contido no token de pedido. O certificado auto-assinado foi desencriptado com a chave privada associada à nuvem Azure contra a qual o ambiente Azure Stack Hub está registado.

Passos seguintes