Packer: Временная пара ключей упаковщика не удалена из ~ / .ssh / authorized_keys (AWS AMI)

Созданный на 3 авг. 2016  ·  3Комментарии  ·  Источник: hashicorp/packer

После создания AMI с упаковщиком на основе AMI Amazon Linux, если я запускаю экземпляр этого AMI и ssh, я вижу временную пару ключей упаковщика в файле ~/.ssh/authorized_keys , что является дырой в безопасности. Я ожидал, что этот файл будет удален до сохранения AMI.

Мне удалось обойти это, явно удалив ~/.ssh/authorized_keys в шаблоне упаковщика (подробности ниже)

Версия упаковщика

Пакер v0.10.0

Хост-платформа

Выпуск CentOS Linux 7.2.1511 (Core)

Вывод журнала отладки из PACKER_LOG=1 packer build template.json .

Вот результат пакера:

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

Извините, я не делал PACKER_LOG = 1, но при необходимости могу запустить его повторно.

_Простейший пример шаблона и сценариев_, необходимых для воспроизведения ошибки

Шаблон: https://github.com/couchbase/build/blob/2afdc7329faaa6a2f25befda59509b70a4a38349/scripts/jenkins/mobile/ami/sync-gateway.json

Сценарий:
Использование плагина Jenkins Packer и передача переменных в упаковщик через:

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

Обходной путь

Я добавил в шаблон упаковщика следующий провайдер:

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

и после запуска AMI он содержал только ключ, выбранный в мастере запуска AWS, а не временную пару ключей упаковщика.

buildeamazon invalid

Самый полезный комментарий

Спасибо, что нашли время сообщить об этом.

Так работает AWS или, более конкретно, как работает cloud-init. То, что вы описываете как обходной путь, на самом деле вам и следует делать.

Все 3 Комментарий

Спасибо, что нашли время сообщить об этом.

Так работает AWS или, более конкретно, как работает cloud-init. То, что вы описываете как обходной путь, на самом деле вам и следует делать.

Извините за возрождение мертвой темы, однако, поскольку я нашел ее, а затем нашел дополнительную информацию от Amazon, я подумал, что внесу ее сюда для других:

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

Короче говоря, для удаления всех файлов authorized_keys они рекомендуют запустить следующее от имени пользователя root:

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

Внимание! В команде на связанной странице используются обычные дефисы (-) и что-то еще, что будет возвращать ошибки. Набрав команду вручную или скопировав команду, указанную выше, должно работать.

Я собираюсь заблокировать этот выпуск, потому что он был закрыт _30 дней_ ⏳. Это помогает нашим специалистам по сопровождению находить активные проблемы и сосредоточиться на них.

Если вы обнаружили проблему, похожую на эту, откройте новую проблему и заполните шаблон проблемы, чтобы мы могли зафиксировать все сведения, необходимые для дальнейшего расследования.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги