Packer: El par de claves temporal del empaquetador no se eliminó de ~ / .ssh / allowed_keys (AWS AMI)

Creado en 3 ago. 2016  ·  3Comentarios  ·  Fuente: hashicorp/packer

Después de crear una AMI con empaquetador basado en la AMI de Amazon Linux, si lanzo una instancia de esa AMI y ssh, veo el par de claves del empaquetador temporal en el archivo ~/.ssh/authorized_keys , que es un agujero de seguridad. Esperaba que ese archivo se eliminara antes de que se guardara la AMI.

Pude solucionar esto eliminando explícitamente ~/.ssh/authorized_keys en la plantilla del empaquetador (detalles a continuación)

Versión del empaquetador

Packer v0.10.0

Plataforma de host

Versión de CentOS Linux 7.2.1511 (Core)

Salida del registro de depuración de PACKER_LOG=1 packer build template.json .

Aquí está la salida del empaquetador:

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

Lo siento, no hice PACKER_LOG = 1, pero puedo volver a ejecutarlo si es necesario

La _plantilla de ejemplo más simple y los scripts_ necesarios para reproducir el error

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

Texto:
Usando el complemento Jenkins Packer y pasando variables al empaquetador a través de:

-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}'

Solución alterna

Agregué el siguiente aprovisionador a la plantilla del empaquetador:

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

y después de lanzar la AMI, solo contenía la clave elegida en el asistente de "instancia de lanzamiento" de AWS, y no el par de claves temporal del empaquetador.

buildeamazon invalid

Comentario más útil

Gracias por tomarse el tiempo para informar esto.

Así es como funciona AWS o, más específicamente, cómo funciona cloud-init. Lo que describe como una solución alternativa es en realidad lo que debe hacer.

Todos 3 comentarios

Gracias por tomarse el tiempo para informar esto.

Así es como funciona AWS o, más específicamente, cómo funciona cloud-init. Lo que describe como una solución alternativa es en realidad lo que debe hacer.

Lamento revivir un hilo muerto, sin embargo, como lo encontré y luego encontré más información de Amazon, pensé en contribuir aquí para otros:

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

En resumen, recomiendan ejecutar lo siguiente como root para eliminar todos los archivos autorizados_keys:

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

Precaución: El comando en la página vinculada usa una combinación de guiones normales (-) y algo más que devolverá errores. Escribir el comando manualmente o copiar el que está directamente arriba debería funcionar.

Voy a bloquear este problema porque ha estado cerrado durante _30 días_ ⏳. Esto ayuda a nuestros mantenedores a encontrar y concentrarse en los problemas activos.

Si ha encontrado un problema que parece similar a este, abra un nuevo problema y complete la plantilla de problema para que podamos capturar todos los detalles necesarios para investigar más a fondo.

¿Fue útil esta página
0 / 5 - 0 calificaciones