Recriar o Ponto de Extremidade de DemonstraçãoRemake the Demo Endpoint

Nesta seção, você aprenderá como gerar uma réplica exata do ponto de extremidade de demonstração usado na seção acima.In this section, you will learn how to generate an exact replica of the demo endpoint you used in the above section. Ela apresentará os conceitos fundamentais que são necessários para compreender o JEA, incluindo as Configurações de Sessão e Capacidades de Função do PowerShell.This will introduce core concepts that are necessary to understand JEA, including PowerShell Session Configurations and Role Capabilities.

Configurações de Sessão do PowerShellPowerShell Session Configurations

Ao usar o JEA na seção acima, você começou executando o seguinte comando:When you used JEA in the above section, you started by running the following command:

Enter-PSSession -ComputerName . -ConfigurationName JEA_Demo -Credential $NonAdminCred

Enquanto a maioria dos parâmetros são auto-explicativos, o ConfigurationName pode parecer confuso a princípio.While most of the parameters are self-explanatory, the ConfigurationName parameter may seem confusing at first. Esse parâmetro especificou a Configuração de Sessão do PowerShell para o qual você se conectou.That parameter specified the PowerShell Session Configuration to which you were connecting.

Configuração de Sessão do PowerShell é um termo especial para um ponto de extremidade do PowerShell.PowerShell Session Configuration is a fancy term for a PowerShell endpoint. Ele é o “local” figurativo no qual os usuários se conectam e obtém acesso à funcionalidade do PowerShell.It is the figurative "place" where users connect and get access to PowerShell functionality. Dependendo de como você definiu uma Configuração de Sessão, ele pode fornecer uma funcionalidade diferente para conectar os usuários.Based on how you set up a Session Configuration, it can provide different functionality to connecting users. Para JEA, usamos as Configurações de Sessão para restringir o PowerShell a um conjunto limitado de funcionalidades e para executá-lo como uma conta virtual privilegiada.For JEA, we use Session Configurations to restrict PowerShell to a limited set of functionality and to run as a privileged virtual account.

Você já tem várias Configurações de Sessão do PowerShell registradas no seu computador, cada uma configurada de forma ligeiramente diferente.You already have several registered PowerShell Session Configurations on your machine, each set up slightly differently. A maioria deles é fornecida com o Windows, mas a Configuração de Sessão “JEA_Demo” foi definida na seção Pré-requisitos.Most of them come with Windows, but the "JEA_Demo" Session Configuration was set up in the prerequisites section. Você pode ver que todas as Configurações de Sessão registradas executando o seguinte comando em um prompt de Administrador do PowerShell:You can see all registered Session Configurations by running the following command in an Administrator PowerShell prompt:

Get-PSSessionConfiguration

Arquivos de Configuração de Sessão do PowerShellPowerShell Session Configuration Files

Você pode criar novas Configurações de Sessão registrando novos Arquivos de Configuração de Sessão do PowerShell.You can make new Session Configurations by registering new PowerShell Session Configuration Files. Arquivos de Configuração de Sessão têm extensões de arquivo “.pssc”.Session Configuration Files have ".pssc" file extensions. Você pode gerar os Arquivos de Configuração de Sessão com o cmdlet New-PSSessionConfigurationFile.You can generate Session Configuration Files with the New-PSSessionConfigurationFile cmdlet.

Em seguida, você criará e registrará uma nova Configuração de Sessão para JEA.Next, you are going to create and register a new Session Configuration for JEA.

Gerar e modificar a Configuração de Sessão do PowerShellGenerate and Modify your PowerShell Session Configuration

Execute o seguinte comando para gerar um arquivo “esqueleto” de Configuração de Sessão do PowerShell.Run the following command to generate a PowerShell Session Configuration "skeleton" file.

New-PSSessionConfigurationFile -Path "$env:ProgramData\JEAConfiguration\JEADemo2.pssc"

DICA: apenas as definições de configuração mais comuns são incluídas no arquivo esqueleto por padrão.TIP: Only the most common configuration settings are included in the skeleton file by default. Use o parâmetro -Full para incluir todas as configurações aplicáveis no PSSC gerado.Use the -Full parameter to include all applicable settings in the generated PSSC.

Abra o arquivo no ISE do PowerShell ou seu editor de texto favorito.Open the file in PowerShell ISE, or your favorite text editor.

ise "$env:ProgramData\JEAConfiguration\JEADemo2.pssc"

Atualize os campos a seguir no arquivo com os valores abaixo (lembre-se de substituir em seu próprio grupo de segurança não administrador):Update the following fields in the file with the values below (remember to substitute in your own non-administrator security group):

# OLD: SessionType = 'Default'
SessionType = 'RestrictedRemoteServer'

# OLD: TranscriptDirectory = 'C:\Transcripts\'
TranscriptDirectory = "C:\ProgramData\JEAConfiguration\Transcripts"

# OLD: # RunAsVirtualAccount = $true
RunAsVirtualAccount = $true

# OLD: RoleDefinitions = @{ 'CONTOSO\SqlAdmins' = @{ RoleCapabilities = 'SqlAdministration' }; 'CONTOSO\ServerMonitors' = @{ VisibleCmdlets = 'Get-Process' } }
RoleDefinitions = @{'CONTOSO\JEA_NonAdmin_Operator' = @{ RoleCapabilities =  'Maintenance' }}

Aqui está o que significa cada uma dessas entradas:Here is what each of those entries mean:

  1. O campo SessionType define as configurações padrão predefinidas para serem usadas com esse ponto de extremidade.The SessionType field defines preset default settings to use with this endpoint. O RestrictedRemoteServer define as configurações mínimas necessárias para o gerenciamento remoto.RestrictedRemoteServer defines the minimal settings necessary for remote management. Por padrão, um ponto de extremidade RestrictedRemoteServer expõe Get-Command, Get-FormatData, Select-Object, Get-Help, Measure-Object, Exit-PSSession, Clear-Host e Out-Default.By default, a RestrictedRemoteServer endpoint will expose Get-Command, Get-FormatData, Select-Object, Get-Help, Measure-Object, Exit-PSSession, Clear-Host, and Out-Default. Ele definirá ExecutionPolicy para RemoteSigned e LanguageMode para NoLanguage.It will set the ExecutionPolicy to RemoteSigned, and the LanguageMode to NoLanguage. O efeito dessas configurações é um ponto de partida mínimo e seguro para configurar o ponto de extremidade.The net effect of these settings is a secure and minimal starting point for configuring your endpoint.

  2. O campo RoleDefinitions atribui a Capacidades de Função para grupos específicos.The RoleDefinitions field assigns Role Capabilities to specific groups. Ele define quem pode fazer o que como uma conta privilegiada.It defines who can do what as a privileged account. Com este campo, você pode especificar a funcionalidade disponível para qualquer usuário conectado com base na associação de grupo.With this field, you can specify the functionality available to any connecting user based on group membership. Esse é o núcleo da funcionalidade de RBAC do JEA.This is the core of JEA's RBAC functionality. Neste exemplo, você está expondo o RoleCapability de "manutenção" predefinido para membros do grupo "Contoso\JEA_NonAdmin_Operator".In this example, you are exposing the pre-made "Maintenance" RoleCapability to members of the "Contoso\JEA_NonAdmin_Operator" group.

  3. O campo RunAsVirtualAccount indica que PowerShell deve "Executar como" uma Conta Virtual neste ponto de extremidade.The RunAsVirtualAccount field indicates that PowerShell should "run as" a Virtual Account at this endpoint. Por padrão, a Conta Virtual é um membro do grupo Administradores interno.By default, the Virtual Account is a member of the built in Administrators group. Em um controlador de domínio, ele também é um membro do grupo Administradores de Domínio por padrão.On a domain controller, it is also a member of the Domain Administrators group by default. Posteriormente neste guia, você aprenderá como personalizar os privilégios da Conta Virtual.Later in this guide, you will learn how to customize the privileges of the Virtual Account.

  4. O campo TranscriptDirectory define onde as transcrições “Over the Shoulder” do PowerShell são salvas após cada sessão remota.The TranscriptDirectory field defines where "over-the-shoulder" PowerShell transcripts are saved after each remote session. Essas transcrições permitem que você inspecione as ações executadas em cada sessão de forma legível.These transcripts allow you to inspect the actions taken in each session in a readable way. Para obter mais informações sobre transcrições do PowerShell, confira este post de blog.For more information about PowerShell transcripts, check out this blog post. Observação: os Eventos do Windows também capturam informações sobre o que cada usuário executou com o PowerShell.Note: regular Windows Eventing also captures information about what each user ran with PowerShell. Transcrições são apenas um pouco mais legíveis.Transcripts are just a bit more readable.

Por fim, salve suas alterações em JEADemo2.pssc.Finally, save your changes to JEADemo2.pssc.

Aplique a Configuração de Sessão do PowerShellApply the PowerShell Session Configuration

Para criar um ponto de extremidade de um arquivo de Configuração de Sessão, você precisa registrar o arquivo.To create an endpoint from a Session Configuration file, you need to register the file. Isso requer algumas informações:This requires a few pieces of information:

  1. O caminho para o arquivo de Configuração de Sessão.The path to the Session Configuration file.
  2. O nome da sua Configuração de Sessão registrada.The name of your registered Session Configuration. Esse é o mesmo nome que os usuários fornecem para o parâmetro "ConfigurationName" ao se conectarem ao ponto de extremidade com Enter-PSSession ou New-PSSession.This is the same name users provide to the "ConfigurationName" parameter when they connect to your endpoint with Enter-PSSession or New-PSSession.

Para registrar a Configuração de Sessão no computador local, execute o seguinte comando:To register the Session Configuration on your local machine, run the following command:

Register-PSSessionConfiguration -Name 'JEADemo2' -Path "$env:ProgramData\JEAConfiguration\JEADemo2.pssc"

Parabéns!Congratulations! Você configurou o seu ponto de extremidade JEA.You have set up your JEA endpoint.

Testar seu ponto de extremidadeTest Out Your Endpoint

Execute novamente as etapas listadas na seção Usando o JEA no novo ponto de extremidade para confirmar se ele está funcionando conforme o esperado.Re-run the steps listed in the Using JEA section against your new endpoint to confirm it is operating as intended. Use o novo nome de ponto de extremidade (JEADemo2) ao informar o nome de configuração para Enter-PSSession.Be sure to use the new endpoint name (JEADemo2) when providing the configuration name to Enter-PSSession.

Enter-PSSession -ComputerName . -ConfigurationName JEADemo2 -Credential $NonAdminCred

Conceitos PrincipaisKey Concepts

Configuração de Sessão do PowerShell: às vezes chamado de Ponto de Extremidade do PowerShell, esse é o "local" figurado em que os usuários se conectam e obtém acesso à funcionalidade do PowerShell.PowerShell Session Configuration: Sometimes referred to as PowerShell Endpoint, this is the figurative "place" where users connect and get access to PowerShell functionality. Você pode listar as Configurações de Sessão registradas no sistema executando Get-PSSessionConfiguration.You can list the registered Session Configurations on your system by running Get-PSSessionConfiguration. Quando configurado de forma específica, uma Configuração de Sessão do PowerShell pode ser chamada de Ponto de Extremidade JEA.When configured in a specific way, a PowerShell Session Configuration can be called a JEA Endpoint.

Arquivo de Configuração de Sessão do PowerShell (.pssc): um arquivo que, quando registrado, define as configurações para uma Configuração de Sessão do PowerShell.PowerShell Session Configuration File (.pssc): A file that, when registered, defines settings for a PowerShell Session Configuration. Ele contém especificações para funções de usuário que podem se conectar ao ponto de extremidade, à Conta Virtual "Executar como" e muito mais.It contains specifications for user roles that can connect to the endpoint, the "run as" Virtual Account, and more.

Definições de Função: o campo em um Arquivo de Configuração de Sessão que define a Capacidades de Função concedida para conectar usuários.Role Definitions: The field in a Session Configuration File that defines the Role Capabilities granted to connecting users. Ele define quem pode fazer o que como uma conta privilegiada.It defines who can do what as a privileged account. Esse é o núcleo das capacidades de RBAC do JEA.This is the core of JEA's RBAC capabilities.

SessionType: um campo em um Arquivo de Configuração de Sessão que representa as configurações padrão para uma Configuração de Sessão.SessionType: A field in a Session Configuration File that represents default settings for a Session Configuration. Para pontos de extremidade JEA, é necessário definir isso como RestrictedRemoteServer.For JEA endpoints, this must be set to RestrictedRemoteServer.

Transcrição de PowerShell: um arquivo que contém uma exibição "Over The Shoulder" de uma sessão do PowerShell.PowerShell Transcript: A file containing an "over-the-shoulder" view of a PowerShell session. Você pode configurar o PowerShell para gerar transcrições para sessões JEA usando o campo TranscriptDirectory.You can set PowerShell to generate transcripts for JEA sessions using the TranscriptDirectory field. Para obter mais informações sobre transcrições, confira este post de blog.For more information on transcripts, check out this blog post.