Reduzieren Sie die Risiken, die mit der Verwendung von AWS CLI zur Aufbewahrung Ihrer AWS Secrets Manager Geheimnisse verbunden sind - AWS Secrets Manager

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Reduzieren Sie die Risiken, die mit der Verwendung von AWS CLI zur Aufbewahrung Ihrer AWS Secrets Manager Geheimnisse verbunden sind

Wenn Sie die AWS Command Line Interface (AWS CLI) verwenden, um AWS Operationen aufzurufen, geben Sie diese Befehle in einer Befehlsshell ein. Sie können beispielsweise unter anderem die Windows-Eingabeaufforderung oder Windows PowerShell oder die Bash- oder Z-Shell verwenden. Viele dieser Befehlszeilen enthalten Funktionalität, die darauf ausgelegt ist, die Produktivität zu steigern. Diese Funktionalität kann jedoch dazu verwendet werden, Ihre Secrets zu kompromittieren. Zum Beispiel können Sie in den meisten Shells die Pfeiltaste nach oben verwenden, um den zuletzt eingegebenen Befehl zu sehen. Der Befehlsverlauf kann von jedem Benutzer ausgenutzt werden, der auf Ihre ungesicherte Sitzung zugreift. Andere Hintergrund-Dienstprogramme haben möglicherweise ebenfalls Zugriff auf Ihre Befehlsparameter mit der Absicht, dass Sie Ihre Aufgaben effizienter erledigen können. Um solche Risiken zu minimieren, stellen Sie sicher, dass Sie die folgenden Schritte durchführen:

  • Sperren Sie Ihren Computer, wenn Sie die Konsole verlassen.

  • Deinstallieren oder deaktivieren Sie Konsolenprogramme, die Sie nicht benötigen oder nicht mehr verwenden.

  • Stellen Sie sicher, dass die Shell und das Remote-Zugriffsprogramm, falls Sie eines davon verwenden, keine eingetippten Befehle protokollieren.

  • Verwenden Sie Techniken, um Parameter zu übergeben, die nicht vom Shell-Befehlsverlauf erfasst wurden. Das folgende Beispiel zeigt, wie Sie den geheimen Text in eine Textdatei eingeben und die Datei dann an den AWS Secrets Manager Befehl übergeben und die Datei sofort löschen können. Dies bedeutet, dass der typische Shell-Verlauf den Secret-Text nicht erfasst.

    Das folgende Beispiel zeigt typische Linux-Befehle (Ihre Shell benötigt jedoch möglicherweise etwas andere Befehle):

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

Nachdem Sie diese Befehle ausgeführt haben, sollten Sie in der Lage sein, mit den Aufwärts- und Abwärtspfeilen durch die Befehlshistorie zu scrollen und zu sehen, dass der Secret-Text in keiner Zeile angezeigt wird.

Wichtig

Unter Windows gibt es standardmäßig keine gleichwertige Technik. Sie müssen erst die Größe des Befehlsverlaufspuffers auf 1 reduzieren.

So konfigurieren Sie die Windows-Eingabeaufforderung so, dass der Befehlsverlaufspuffer nur einen Befehl enthält
  1. Öffnen Sie eine Administrator-Eingabeaufforderung (Run as administrator (Als Administrator ausführen)).

  2. Wählen Sie das Symbol oben links und dann Eigenschaften aus.

  3. Setzen Sie auf der Registerkarte Options (Optionen) die Werte für Buffer Size (Puffergröße) und Number of Buffers (Anzahl der Puffer) auf 1 und wählen Sie dann OK aus.

  4. Wenn Sie einen Befehl eingeben, der nicht im Verlauf zu sehen sein soll, geben Sie direkt nach dem Befehl einen weiteren Befehl ein. Beispiel:

    echo.

    Dadurch wird sichergestellt, dass der sensible Befehl nicht mehr enthalten ist.

Für die Windows-Befehlszeilenshell können Sie das SysInternalsSDeleteTool herunterladen und dann Befehle verwenden, die den folgenden ähneln:

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.