# Execução de Scripts com o Secrets

O Secrets Safe permite armazenar com segurança segredos pertencentes a desenvolvedores e pequenos grupos em um ambiente controlado.

Através desta integração será possível recuperar um Secrets do BeyondTrust Password Safe e utilizá-lo como uma variável dentro de um Script do Linux Control Center.

## Configuração BeyondTrust Password Safe Secrets Safe

* O grupo de usuários deve ter o recurso "Secrets Safe".
* Crie um segredo no Secrets Safe.
* Adicionar credencial.

### Ative o recurso Secrets Safe

1. Para ativar um recurso de segurança de segredos, você deve editar um grupo de usuários que tenha um usuário que será usado para autenticar na API BeyondTrust.
2. Vá para o grupo de usuários alvo ao qual o usuário pertence, clique na elipse vertical e vá para Visualizar detalhes do grupo.
3. Na página do grupo, vá para a guia Recursos e selecione Recursos desativados no campo "Mostrar".

   ![](/files/r76scA9cxZZlQsxa2MFP)
4. Selecione o recurso Secrets Safe, clique nas reticências verticais e selecione Atribuir permissões com controle total.

   ![](/files/STKhcrS0IoA7EYl65XN0)
5. Após essas etapas, os usuários deste grupo podem interagir com o Secrets Safe da API BeyondInsight Password Safe

   ![](/files/sPx9qahT5fPDFCJIKW9B)

### Crie um segredo no Secrets Safe

1. No menu esquerdo, clique em **Secrets Safe**.
2. No painel Pastas, selecione uma pasta e clique em **Add Secret** acima da grade.

   ![](/files/49wIVbfCUrVCUZitLZNK)
3. Selecione seu tipo de segredo: **Add Credential**, **Add File** ou **Add Text** e preencha o formulário para cada tipo conforme detalhado nas etapas abaixo.

### Add Credential

1. Insira um título, uma descrição e um nome de usuário.
2. Defina a senha:
   * Selecione *Manual Input* para inserir manualmente uma senha ou selecione Gerar automaticamente e selecione uma política de senha na lista para criar uma senha com base na política definida.
3. Clique em **Create Secret**.

   ![](/files/MBDbAtJB6VZo62cPfCph)

## Linux Control Center Configuração Script

* Certifique-se de que a integração BeyondTrust Password Safe esteja habilitada em seu Linux Control Center.
* Crie uma credencial Quick BeyondTrust.
* Crie um inventário rápido do Windows.
* Crie um script do Linux Control Center e atribua credenciais e variáveis ​​BeyondTrust personalizadas ou padrão.
* Crie um Workflow para executar um Script Personalizado para Windows/Linux.

### Credencial Quick BeyondTrust

Uma credencial Quick BeyondTrust é uma credencial personalizada usada para realizar autenticação na API BeyondTrust Password Safe.

1. Para criar uma credencial *Quick BeyondTrust*, vá para o menu esquerdo **Unmanaged Hosts** > **Quick Credentials BeyondTrust** e clique em ADICIONAR.
2. Insira os campos necessários para realizar a autenticação, como Nome, URL Base da API, Chave de autenticação da API, Nome de usuário e senha de autenticação da API e Conta gerenciada usada para recuperar os segredos.
3. Clique em **Salvar**.

   <div data-gb-custom-block data-tag="hint" data-style="info" class="hint hint-info"><p>Observe que o usuário que está sendo utilizado para autenticação pertence ao referido grupo, portanto ele tem acesso aos Secrets deste grupo no qual tem permissão para interagir.</p></div>

![](/files/il5NgQP2AJnW4SIAv91D)

### Quick Windows Inventory

A função Inventário no Linux Control Center é a forma de agrupar informações de um host como Endereço IPv4, Tipo de Host (Windows e Linux) e Porta, para realizar uma autenticação futura.

A autenticação do Linux Control Center Windows é baseada no Windows Remote Management (WinRM) que permite que os sistemas acessem ou troquem informações de gerenciamento através de uma rede, a porta padrão é 5985 em um transporte HTTPS.

1. Para criar um **Quick Windows Inventory**, vá para **Unmanaged Hosts** > **Quick Inventory** e clique em **ADICIONAR**.
2. Insira um nome, endereço, porta e selecione o tipo de host na lista abaixo (Windows ou Linux).

   ![](/files/E0SuJhneoLjCePorgpHv)

### Crie um Script

Neste exemplo de Script, o seguinte modelo do PowerShell será usado:

```powershell
# Assign values to variables
$variable1 = "${:::VARIABLE1:::}"
$variable2 = "${:::VARIABLE2:::}"

# Initial text
echo "Executed By Linux Control Center - Hostname: $env:COMPUTERNAME - Date: $(Get-Date) - Time: $(Get-Date -Format HH:mm:ss)"
echo "---------------------------------------------"

# Get host information
$ipAddress = (Test-Connection -ComputerName $env:COMPUTERNAME -Count 1).IPV4Address.IPAddressToString
$hostname = $env:COMPUTERNAME
$dateTime = Get-Date

# Print information on the screen
echo "IP Address: $ipAddress"
echo "Hostname: $hostname"
echo "Date and Time: $dateTime"

# Print variable1 in plain text and base64
$base64Value1 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($variable1))
echo "Variable1: $variable1"
echo "Variable1 (Base64): $base64Value1"

# Print variable2 in plain text and base64
$base64Value2 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($variable2))
echo "Variable2: $variable2"
echo "Variable2 (Base64): $base64Value2"

# Final text
echo "---------------------------------------------"
echo "Executed By Linux Control Center - Hostname: $env:COMPUTERNAME - Date: $(Get-Date) - Time: $(Get-Date -Format HH:mm:ss)"

# Write on file

# Outputfile
$outputFilePath = "output_secrets.txt"

# Init
$null > $outputFilePath

# Print information on the screen and write to the output file
Add-Content -Path $outputFilePath -Value "IP Address: $ipAddress"
Add-Content -Path $outputFilePath -Value "Hostname: $hostname"
Add-Content -Path $outputFilePath -Value "Date and Time: $dateTime"

# Print variable1 in plain text and base64 and write to the output file
Add-Content -Path $outputFilePath -Value "Variable1: $variable1"
Add-Content -Path $outputFilePath -Value "Variable1 (Base64): $base64Value1"

# Print variable2 in plain text and base64 and write to the output file
Add-Content -Path $outputFilePath -Value "Variable2: $variable2"
Add-Content -Path $outputFilePath -Value "Variable2 (Base64): $base64Value2"
```

1. Para criar um Script, vá para **Unmanaged Hosts** > **Script** e click **ADD**.
2. Insira um nome e selecione o campo *Tipo de host* para o PowerShell, será do tipo Windows. Faça upload do modelo de script no campo **Carregar arquivo** e clique em Salvar.

   ![](/files/V9u0ZOLHr3I9M6uueo4M)

{% hint style="warning" %}
O script precisa de uma variável atribuída antes de iniciar a execução.
{% endhint %}

3. A variável no contexto BeyondTrust Secrets Safe, são os segredos recuperados do gerenciador Password Safe Secrets Safe. Portanto, para revelar os segredos vinculados a uma credencial Quick BeyondTrust, clique no objeto Script recém-criado e vá para a aba Credencial.
   * Selecione qual credencial de login será usada, se você escolher BeyondTrust Default a configuração padrão em Config > Integrações > BeyondTrust será usada.
   * Se você optar por usar uma Quick Credential, selecione BeyondTrust Custom e escolha a credencial. As mesmas opções são válidas para o campo **Variáveis**.
4. Clique em *Salvar* para realizar um novo trabalho com a ação *"Listar Segredos"*

   ![](/files/2NY0DyBDzwfhqTv3av6M)
5. Após a ação bem-sucedida, volte para a guia Configuração e variáveis ​​de script personalizado. Selecione o campo BeyondTrust Secret Type e escolha o Secrets Value e Secrets Type recuperados pela ação List Secrets.
6. Clique em **Salvar**.

   ![](/files/jezziJMiIj04oNgwoLvg)

### Crie um Workflow para executar o Script

Para realizar uma Execução de Script um script no Host no Quick Inventory é necessário criar um Workflow para orientar o Linux Control Center na execução.

1. No menu esquerdo, vá para **Workflow** e clique em **ADICIONAR**.
2. Na página **Add Workflow**, clique em Iniciar e selecione **Executar Custom Script Quick Windows**.
3. Selecione os campos **Scripts** e **Quick Inventory Windows** desbloqueados pela opção Execute Custom Script Quick Windows e clique em **Salvar**.

   ![](/files/Sb7dR2q0PWqXLvyMS6X6)
4. Clique no novo botão Ações do objeto Workflow e clique em **Executar** para executar uma execução de script.
5. A saída do script é armazenada no diretório inicial do usuário usado para executar uma execução de script no host de destino no Quick Inventory Windows.

   ![](/files/dCu9NB2BktKRayUhlgcH)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.linuxcontrolcenter.com.br/conf-integrations/integrations/beyondtrust/password-safe/secrets_ps.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
