Безопасно ли передает файлы?

Я использую Ansible 2.2 для управления некоторыми облачными серверами с моего ноутбука. Я хочу перенести закрытый ключ OpenSSL в определенное место на одном из серверов, который будет использоваться nginx для завершения TLS. Естественно, это файл, который должен храниться в секрете, поэтому я зашифровал его с помощью Ansible Vault. Но Vault защищает только файл на диске на управляющей машине. Он не вступает в игру при передаче данных с управляющего компьютера на управляемый узел.

Я хочу быть уверен, что закрытый ключ не будет взломан при передаче кем-то, кто отслеживает сетевой трафик. Там нет конкретного упоминания о том, что я ищу, что я могу увидеть в документах для copy модуль. Насколько я знаю, все мое общение с управляемыми узлами осуществляется через SSH. Это безопасное предположение? Включает ли это передачу файлов?

2 ответа

Решение

Ответ зависит от типа соединения.

Есть плагин Ansible copy, который привязывается к соединению. Исходный код для плагина здесь:

https://github.com/ansible/ansible/blob/bc66faa328b1413646ec249cd2753de5e09f1a35/lib/ansible/plugins/action/copy.py

Это откладывает копии ActionBase._transfer_file который затем зависит от Connection.put_file,

Существует много различных реализаций соединений, некоторые из которых являются безопасными, а некоторые - нет. Если вы используете SSH-соединение, тогда оно использует либо scp, либо sftp для фактического копирования и является безопасным.

Это можно увидеть в источнике ssh здесь:

https://github.com/ansible/ansible/blob/442af3744ebd60c7ffcaae22b61fb762ccc7c425/lib/ansible/plugins/connection/ssh.py

Какие делегаты put_file в _file_transport_command который затем может использовать scp, sftp, "smart" или pipe. Смарт определяет, какой из трех других лучше всего использовать.

Примечание. Существует модуль копирования Ansible, который копирует файлы только локально и не нуждается в безопасном копировании. Это то, на что мой предыдущий ответ ошибочно указал, поэтому я удалил его.

Вы правы, все общение с управляемым узлом безопасно осуществляется через ssh. Ваше хранилище расшифровывается на контроллере, незашифрованный закрытый ключ отправляется через безопасное ssh-соединение и сбрасывается на целевой узел.

Закрытый текстовый ключ может стать незащищенным на целевом узле, в зависимости от того, кто может войти в систему, владельцы, членство в группах, права доступа и т. Д. Это зависит от вас, чтобы настроить их безопасно.

Другие вопросы по тегам