Reducción de los riesgos de usar AWS CLI para almacenar sus secretos de AWS Secrets Manager - AWS Secrets Manager

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Reducción de los riesgos de usar AWS CLI para almacenar sus secretos de AWS Secrets Manager

Cuando utilice la AWS Command Line Interface (AWS CLI) para invocar las operaciones de AWS, escriba dichos comandos en un shell de comandos. Por ejemplo, puede utilizar el símbolo del sistema de Windows o Windows PowerShell o el Bash o Z shell, entre otros. Muchos de estos shells de comandos incluyen una funcionalidad diseñada para aumentar la productividad. Sin embargo, esta funcionalidad se puede utilizar para poner en riesgo sus secretos. Por ejemplo, en la mayoría de los shells, puede utilizar la tecla flecha arriba para ver el último comando escrito. La característica de historial de comandos puede ser explotada por cualquier persona que acceda a su sesión no protegida. Además, otras utilidades que funcionan en segundo plano podrían obtener acceso a los parámetros de comandos, con el fin de ayudarle a realizar las tareas con más eficacia. Para reducir estos riesgos, asegúrese de que realiza los pasos siguientes:

  • Bloquee siempre el equipo cuando abandona la consola.

  • Desinstale o deshabilite las utilidades de la consola que ya no necesita o no usa.

  • Asegúrese de que el shell o el programa de acceso remoto, si está utilizando uno, no registren los comandos que se escriben.

  • Utilice técnicas para pasar parámetros que no se registren en el historial de comandos del shell. En el siguiente ejemplo, se muestra cómo puede escribir el texto del secreto en un archivo de texto, que después se transfiere al comando de AWS Secrets Manager y se destruye inmediatamente. Esto significa que el texto del secreto no se captura en el historial de shell habitual.

    En el siguiente ejemplo se muestran los comandos de Linux habituales (es posible que su shell necesite unos comandos ligeramente 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.

Después de ejecutar estos comandos, puede usar las flechas de dirección arriba y abajo para desplazarse por el historial de comandos y comprobar que el texto del secreto no se muestra en ninguna línea.

importante

De forma predeterminada, no puede realizar una técnica equivalente en Windows a menos que reduzca primero el tamaño del búfer del historial de comandos a 1.

Para configurar la ventana del símbolo del sistema de Windows de forma que solo tenga un búfer de historial de comandos de un comando
  1. Abra un símbolo del sistema de administrador (Run as administrator (Ejecutar como administrador)).

  2. Elija el icono en la parte superior izquierda y, a continuación, elija Properties (Propiedades).

  3. En la pestaña Opciones, establezca Tamaño del búfer y Número de búferes en 1, y después elija Aceptar.

  4. Siempre que tenga que escribir un comando que no desea que aparezca en el historial, escriba inmediatamente después otro comando como:

    echo.

    Esto garantiza la purga del comando confidencial.

Para el shell del símbolo del sistema de Windows, puede descargar la herramienta SysInternals SDelete y después utilizar comandos similares a los siguientes:

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.