Atténuer les risques liés à l'utilisation de l'AWS CLI pour stocker vos secrets AWS Secrets Manager - AWS Secrets Manager

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Atténuer les risques liés à l'utilisation de l'AWS CLI pour stocker vos secrets AWS Secrets Manager

Lorsque vous utilisez l'AWS Command Line Interface (AWS CLI) pour appeler des opérations AWS, entrez ces commandes dans un shell de commande. Par exemple, vous pouvez utiliser l'invite de commande Windows ou Windows PowerShell, ou le shell Bash ou Z, entre autres. Bon nombre de ces shells de commande incluent des fonctionnalités conçues pour accroître la productivité. Toutefois, ces fonctionnalités peuvent être utilisées pour compromettre vos secrets. Par exemple, dans la plupart des shells, vous pouvez utiliser la touche de direction vers le haut pour afficher la dernière commande entrée. La fonction historique des commandes peut être exploitée par quiconque accède à votre session non sécurisée. En outre, d'autres utilitaires qui fonctionnent en arrière-plan peuvent avoir accès à vos paramètres de commande, dans le but de vous aider à exécuter plus efficacement vos tâches. Pour atténuer ces risques, veillez à prendre les mesures suivantes :

  • Verrouillez toujours votre ordinateur lorsque vous vous éloignez de la console.

  • Désinstallez ou désactivez les utilitaires de console dont vous n'avez pas besoin ou que vous n'utilisez plus.

  • Assurez-vous que le shell ou le programme d'accès distant, si vous en utilisez un, ne consignent pas les commandes saisies.

  • Utilisez des techniques pour transmettre des paramètres sans qu'ils soient capturés par l'historique des commandes du shell. L'exemple suivant montre comment saisir le texte de secret dans un fichier texte, transmettre ce fichier à la commande AWS Secrets Manager, puis le détruire immédiatement. Cela signifie que l'historique shell type ne capture pas le texte secret.

    L'exemple suivant montre des commandes Linux classiques, mais votre shell peut avoir besoin de commandes légèrement différentes :

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

Une fois que vous avez exécuté ces commandes, vous devez pouvoir utiliser les flèches vers le haut et vers le bas pour faire défiler l'historique des commandes et constater que le texte secret ne s'affiche sur aucune ligne.

Important

Par défaut, vous ne pouvez pas exécuter une technique équivalente dans Windows, à moins de réduire au préalable la taille du tampon de l'historique des commandes à 1.

Pour configurer l'invite de commande Windows afin d'avoir uniquement 1 tampon d'historique des commandes avec 1 commande
  1. Ouvrez une fenêtre d'invite de commande d'administrateur (Run as administrator (Exécuter en tant qu'administrateur)).

  2. Choisissez l'icône en haut à gauche, puis choisissez Properties (Propriétés).

  3. Dans l'onglet Options, définissez Buffer Size (Taille de la mémoire tampon) et Number of Buffers (Nombre de mémoires tampon) sur 1, puis choisissez OK.

  4. Chaque fois que vous devez saisir une commande que vous ne voulez pas consigner dans l'historique, faites-la suivre immédiatement par une autre commande, telle que :

    echo.

    Cela vous garantit de vider la commande sensible.

Pour le shell d'invite de commande Windows, vous pouvez télécharger l'outil SysInternals SDelete, puis utiliser des commandes similaires à ce qui suit :

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.