Compartilhar via


Usar o ponto de extremidade com privilégios no Azure Stack Hub

Como 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, 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 PowerShell JEA (Just Enough Administration) para expor somente um conjunto restrito de cmdlets. Para acessar o PEP e invocar o conjunto restrito de cmdlets, é usada uma conta com baixa permissão. Nenhuma conta de administrador é necessária. Para maior segurança, não é permitido o uso de scripts.

Você pode usar o PEP para executar estas tarefas:

  • Tarefas de nível baixo, como coleta de 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, a integração dos Serviços de Federação do Active Directory (AD FS), a rotação de certificados e assim por diante.
  • Para colaborar com o suporte a fim de obter acesso temporário de alto nível para a resolução de problemas profundos em um sistema integrado.

O PEP registra todas as ações (e sua saída correspondente) executadas 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.

Nota

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.

Nota

Você também pode usar a Estação de Trabalho de Acesso do Operador (OAW) para acessar o endpoint privilegiado (PEP), o portal de administrador para cenários de suporte e as Ferramentas do GitHub do Azure Stack Hub. Para obter mais informações, consulte a 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 é nomeada 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 (Prefixo-ERCS01, Prefixo-ERCS02 ou Prefixo-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 por meio do DNS. Após a implantação inicial do Azure Stack Hub, você pode acessar o PEP somente por endereço IP porque a integração DNS ainda não está configurada. O 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 de administrador do Azure Stack Hub. Abra o portal, por exemplo, https://adminportal.local.azurestack.external. Selecione Gerenciamento de Região>Propriedades.

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

Nota

Por motivos de segurança, exigimos que você se conecte ao PEP apenas por meio de uma VM protegida em execução no host do 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 de sua configuração original (incluindo a instalação de um novo software) ou usada para se conectar ao PEP.

  1. Estabeleça a confiança.

    • Em um sistema integrado, execute o seguinte comando em 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ê estiver executando o ASDK, entre no host do kit de desenvolvimento.

  2. Na VM protegida em execução no host de 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:

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

      Nota

      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.

    Nota

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

    Aviso

    Por padrão, o Azure Stack Hub é configurado com apenas uma conta 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 recomendado que você crie contas adicionais do CloudAdmin, para evitar a reimplantação do seu carimbo à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 o 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 na Referência do 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 do JEA 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 guia. 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 no seu computador local, juntamente com a conclusão da guia e, no 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 confiança.

    • Em um sistema integrado, execute o seguinte comando em 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.

      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 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:

    • 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 parâmetro ComputerName pode ser o endereço IP ou o nome DNS de uma das VMs que hospedam 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 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 guia e fazer scripts normalmente 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!

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

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 simplesmente criar um compartilhamento de arquivos no host do kit de desenvolvimento.

  2. 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" corda 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 excluídos automaticamente do PEP.

Nota

Se você fechar a sessão PEP usando os cmdlets Exit-PSSession ou Exit, ou 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 ou Exit para fechar a sessão PEP; em vez disso, use Close-PrivilegedEndpoint.

Desbloquear o endpoint 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. Às vezes, esse processo é chamado informalmente de "quebrar o vidro" ou "desbloquear o PEP". O processo de elevação da sessão PEP é um processo de autenticação de duas etapas, 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 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 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 PEP PowerShell será elevada, fornecendo capacidades administrativas completas e acesso total à infraestrutura.

Nota

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 um 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 elevada tem uma validade de 8 horas, após a qual, se não for encerrada, a sessão PEP elevada será automaticamente bloqueada para uma sessão PEP regular.

Conteúdo dos tokens de ponto de extremidade com privilégios

Os tokens de solicitação e autorização de sessão de suporte PEP utilizam 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ó 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 e hora que indica a expiração da solicitação do token.

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.

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

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

  • O ID da sessão gerado aleatoriamente, extraído do token de solicitação.
  • Um carimbo de data e hora que indica a expiração da resposta do token.

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