Безопасно ли передает файлы?
Я использую Ansible 2.2 для управления некоторыми облачными серверами с моего ноутбука. Я хочу перенести закрытый ключ OpenSSL в определенное место на одном из серверов, который будет использоваться nginx для завершения TLS. Естественно, это файл, который должен храниться в секрете, поэтому я зашифровал его с помощью Ansible Vault. Но Vault защищает только файл на диске на управляющей машине. Он не вступает в игру при передаче данных с управляющего компьютера на управляемый узел.
Я хочу быть уверен, что закрытый ключ не будет взломан при передаче кем-то, кто отслеживает сетевой трафик. Там нет конкретного упоминания о том, что я ищу, что я могу увидеть в документах для copy
модуль. Насколько я знаю, все мое общение с управляемыми узлами осуществляется через SSH. Это безопасное предположение? Включает ли это передачу файлов?
2 ответа
Ответ зависит от типа соединения.
Есть плагин Ansible copy, который привязывается к соединению. Исходный код для плагина здесь:
Это откладывает копии ActionBase._transfer_file
который затем зависит от Connection.put_file
,
Существует много различных реализаций соединений, некоторые из которых являются безопасными, а некоторые - нет. Если вы используете SSH-соединение, тогда оно использует либо scp, либо sftp для фактического копирования и является безопасным.
Это можно увидеть в источнике ssh здесь:
Какие делегаты put_file
в _file_transport_command
который затем может использовать scp, sftp, "smart" или pipe. Смарт определяет, какой из трех других лучше всего использовать.
Примечание. Существует модуль копирования Ansible, который копирует файлы только локально и не нуждается в безопасном копировании. Это то, на что мой предыдущий ответ ошибочно указал, поэтому я удалил его.
Вы правы, все общение с управляемым узлом безопасно осуществляется через ssh. Ваше хранилище расшифровывается на контроллере, незашифрованный закрытый ключ отправляется через безопасное ssh-соединение и сбрасывается на целевой узел.
Закрытый текстовый ключ может стать незащищенным на целевом узле, в зависимости от того, кто может войти в систему, владельцы, членство в группах, права доступа и т. Д. Это зависит от вас, чтобы настроить их безопасно.