Riduzione dei rischi dell'utilizzo di AWS CLI per archiviare i segreti AWS Secrets Manager - AWS Secrets Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Riduzione dei rischi dell'utilizzo di AWS CLI per archiviare i segreti AWS Secrets Manager

Quando utilizzi AWS Command Line Interface (AWS CLI) per richiamare operazioni AWSimmetti tali comandi in una shell comando. Ad esempio, puoi usare il prompt dei comandi di Windows o Windows PowerShell, oppure la shell Bash o Z, tra gli altri. Molte di queste shell di comando includono funzionalità progettate per aumentare la produttività. Ma queste funzionalità possono essere utilizzate per compromettere i tuoi segreti. Ad esempio, nella maggior parte delle shell puoi utilizzare il tasto freccia verso l'alto per visualizzare l'ultimo comando inserito. La funzionalità di cronologia dei comandi può essere sfruttata da chiunque acceda alla tua sessione non protetta. Inoltre, altre utility che funzionano in background potrebbero accedere ai parametri di comando, con l'obiettivo di aiutarti a eseguire le tue attività in modo più efficace. Per ridurre tali rischi, accertati di procedere nel modo seguente:

  • Blocca sempre il tuo computer quando ti allontani dalla console.

  • Disinstallare o disattivare le utility della console non necessarie o non più utilizzate.

  • Assicurarsi che la shell o il programma di accesso remoto, se viene utilizzato l'uno o l'altro, non registrino i comandi digitati.

  • Utilizzare le tecniche per inviare parametri non acquisiti dalla cronologia dei comandi della shell. L'esempio seguente mostra il modo in cui puoi digitare il testo di un segreto in un file di testo e inviare il file al comando AWS Secrets Manager ed eliminare immediatamente dopo il file. Ciò significa che la tipica cronologia dei comandi della shell non cattura il testo del segreto.

    L'esempio seguente mostra i comandi tipici di Linux, ma la tua shell potrebbe prevedere comandi lievemente diversi:

    $ 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.

Dopo l'esecuzione di questi comandi, dovresti essere in grado di usare le frecce verso l'alto e il basso per scorrere la cronologia dei comandi e vedere che il testo del segreto non è presente in alcuna riga.

Importante

Per impostazione predefinita, non puoi adottare una tecnica equivalente in Windows a meno che prima tu non riduca a 1 le dimensioni del buffer della cronologia dei comandi.

Per configurare il prompt dei comandi di Windows affinché presenti solo 1 buffer della cronologia dei comandi di 1 comando
  1. Aprire un prompt dei comandi amministratore (Run as administrator (Esegui come amministratore)).

  2. Scegliere l'icona in alto a sinistra, quindi selezionare Properties (Proprietà).

  3. Nella scheda Options (Opzioni) imposta Buffer Size (Dimensioni buffer) e Number of Buffers (Numero di buffer) entrambi su 1, quindi scegli OK.

  4. Ogni volta che devi digitare un comando che non vuoi includere nella cronologia, fallo seguire immediatamente da un altro comando, ad esempio:

    echo.

    In questo modo sei sicuro che il comando sensibile non venga incluso.

Per la shell del prompt di comandi di Windows, puoi scaricare lo strumento SysInternals SDelete e utilizzare comandi simili ai seguenti:

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.