Packer: Packer temporäres Schlüsselpaar nicht aus ~/.ssh/authorized_keys (AWS AMI) entfernt

Erstellt am 3. Aug. 2016  ·  3Kommentare  ·  Quelle: hashicorp/packer

Nachdem ich ein AMI mit Packer basierend auf dem Amazon Linux AMI erstellt habe, sehe ich, wenn ich eine Instanz dieses AMI starte und ssh-in, das temporäre Packer-Schlüsselpaar in der ~/.ssh/authorized_keys Datei, was eine Sicherheitslücke darstellt. Ich hatte erwartet, dass diese Datei gelöscht wird, bevor das AMI gespeichert wurde.

Ich konnte dies umgehen, indem ich ~/.ssh/authorized_keys in der Packer-Vorlage explizit löschte (Details unten).

Packer-Version

Packer v0.10.0

Host-Plattform

CentOS Linux-Version 7.2.1511 (Kern)

Debug-Protokollausgabe von PACKER_LOG=1 packer build template.json .

Hier ist die Packer-Ausgabe:

https://gist.github.com/tleyden/4cc13b530f08bcaef04f5233bf43daee

Tut mir leid, ich habe PACKER_LOG=1 nicht gemacht, kann aber bei Bedarf erneut ausführen

Die _einfachste Beispielvorlage und die Skripte_, die benötigt werden, um den Fehler zu reproduzieren

Vorlage: https://github.com/couchbase/build/blob/2afdc7329faaa6a2f25befda59509b70a4a38349/scripts/jenkins/mobile/ami/sync-gateway.json

Skript:
Verwenden des Jenkins Packer-Plugins und Übergeben von Variablen an den Packer über:

-var 'source_ami=${source_ami}' -var 'ssh_username=${ssh_username}' -var 'couchbase_server_package_name=${couchbase_server_package_name}' -var 'couchbase_server_package_url=${couchbase_server_package_url}' -var 'couchbase_sync_gateway_package_base_url=${couchbase_sync_gateway_package_base_url}' -var 'couchbase_sync_gateway_package=${couchbase_sync_gateway_package}' -var 'couchbase_server_version=${couchbase_server_version}' -var 'couchbase_sync_gateway_version=${couchbase_sync_gateway_version}' -var 'couchbase_server_edition=${couchbase_server_edition}' -var 'sync_gateway_edition=${sync_gateway_edition}'

Problemumgehung

Ich habe der Packer-Vorlage den folgenden Provisioner hinzugefügt:

    {
        "type": "shell",
        "inline": [
        "rm /home/ec2-user/.ssh/authorized_keys"
        ]
    }

und nach dem Starten des AMI enthielt es nur den Schlüssel, der im AWS-Assistenten "Instanz starten" ausgewählt wurde, und nicht das temporäre Schlüsselpaar des Packers.

buildeamazon invalid

Hilfreichster Kommentar

Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu melden.

So funktioniert AWS oder genauer gesagt, wie cloud-init funktioniert. Was Sie als Problemumgehung beschreiben, ist eigentlich das, was Sie tun sollten.

Alle 3 Kommentare

Vielen Dank, dass Sie sich die Zeit genommen haben, dies zu melden.

So funktioniert AWS oder genauer gesagt, wie cloud-init funktioniert. Was Sie als Problemumgehung beschreiben, ist eigentlich das, was Sie tun sollten.

Entschuldigung, dass ich einen toten Thread wiederbeleben muss, aber da ich ihn gefunden und dann weitere Informationen von Amazon gefunden habe, dachte ich, ich würde ihn hier für andere beitragen:

https://aws.amazon.com/articles/how-to-share-and-use-public-amis-in-a-secure-maner/

Kurz gesagt, sie empfehlen, Folgendes als Root auszuführen, um alle authorisierten_keys-Dateien zu entfernen:

find / -name "authorized_keys" -exec rm -f {} \;

Achtung: Der Befehl auf der verlinkten Seite verwendet eine Mischung aus normalen Bindestrichen (-) und etwas anderem, das Fehler zurückgibt. Das manuelle Eingeben des Befehls oder das Kopieren des obigen Befehls sollte funktionieren.

Ich werde dieses Problem sperren, da es seit _30 Tagen_ geschlossen ist ⏳. Dies hilft unseren Betreuern, die aktiven Probleme zu finden und sich darauf zu konzentrieren.

Wenn Sie ein ähnliches Problem gefunden haben, öffnen Sie bitte ein neues Problem und füllen Sie die Problemvorlage aus, damit wir alle Details erfassen können, die für die weitere Untersuchung erforderlich sind.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen