

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Mitigue os riscos de usar o AWS CLI para armazenar seus segredos AWS Secrets Manager
<a name="security_cli-exposure-risks"></a>

Ao usar o AWS Command Line Interface (AWS CLI) para invocar AWS operações, você insere esses comandos em um shell de comando. Por exemplo, você pode usar o prompt de comando do Windows ou o Windows PowerShell, ou o shell Bash ou Z, entre outros. Muitos desses shells de comando incluem funcionalidade desenvolvida para aumentar a produtividade. Mas essa funcionalidade pode ser usada para comprometer seus segredos. Por exemplo, na maioria dos shells, é possível usar a tecla de seta para cima para ver o último comando inserido. O recurso *histórico de comandos* pode ser explorado por qualquer pessoa que acesse sua sessão não segura. Além disso, outros utilitários que funcionam em segundo plano podem ter acesso aos parâmetros de seus comandos, com o objetivo de ajudar você a realizar as tarefas com mais eficiência. Para mitigar esses riscos, siga estas etapas:
+ Sempre bloqueie seu computador ao sair do console.
+ Desinstale ou desabilite os utilitários do console que você não precisa ou não usa mais.
+ Verifique se o shell ou o programa de acesso remoto, caso esteja usando um, não registra em log os comandos digitados.
+ Use técnicas para passar parâmetros não capturados pelo histórico de comandos do shell. O exemplo a seguir mostra como você pode digitar o texto secreto em um arquivo de texto e, em seguida, passar o arquivo para o AWS Secrets Manager comando e destruí-lo imediatamente. Isso significa que o histórico típico do shell não captura o texto do segredo. 

  O exemplo a seguir mostra os comandos típicos do Linux, mas seu shell pode exigir comandos um pouco diferentes:

  ```
  $ touch secret.txt                                                                           # Creates an empty text file
  $ chmod go-rx secret.txt                                                                     # Restricts access to the file to only the user
  $ cat > secret.txt                                                                           # Redirects standard input (STDIN) to the text file
  ThisIsMyTopSecretPassword^D                                                                  # Everything the user types from this point up to the CTRL-D (^D) is saved in the file
  $ aws secretsmanager create-secret --name TestSecret --secret-string file://secret.txt       # The Secrets Manager command takes the --secret-string parameter from the contents of the file
  $ shred -u secret.txt                                                                        # The file is destroyed so it can no longer be accessed.
  ```

Depois de executar esses comandos, será possível usar as setas para cima e para baixo para percorrer o histórico de comandos e ver se o texto do segredo está sendo exibido em alguma linha.

**Importante**  
Por padrão, não é possível executar uma técnica equivalente no Windows, a menos que você reduza primeiro o tamanho do buffer do histórico de comandos para **1**.

**Para configurar o prompt de comando do Windows para ter apenas 1 buffer de histórico de comando de 1 comando**

1. Abra um prompt de comando como administrador (**Executar como administrador**).

1. Escolha o ícone no canto superior esquerdo e escolha **Propriedades**.

1. Na guia **Options**, defina **Buffer Size** e **Number of Buffers** como **1**, e escolha **OK**.

1. Sempre que precisar digitar um comando que você não deseja armazenar no histórico, insira outro comando imediatamente depois dele, como:

   ```
   echo.
   ```

   Isso garante que você descarrega o comando sensível. 

Para o shell do prompt de comando do Windows, você pode baixar a [SysInternals SDelete](https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete)ferramenta e usar comandos semelhantes aos seguintes:

```
C:\> echo. 2> secret.txt                                                                       # Creates an empty file
C:\> icacls secret.txt /remove "BUILTIN\Administrators" "NT AUTHORITY/SYSTEM" /inheritance:r   # Restricts access to the file to only the owner
C:\> copy con secret.txt /y                                                                    # Redirects the keyboard to text file, suppressing prompt to overwrite
THIS IS MY TOP SECRET PASSWORD^Z                                                             # Everything the user types from this point up to the CTRL-Z (^Z) is saved in the file
C:\> aws secretsmanager create-secret --name TestSecret --secret-string file://secret.txt      # The Secrets Manager command takes the --secret-string parameter from the contents of the file
C:\> sdelete secret.txt                                                                        # The file is destroyed so it can no longer be accessed.
```