Как использовать Salt для безопасного копирования конфиденциального файла (криптографического ключа) от одного конкретного миньона к другому конкретному миньону? Я не хочу, чтобы другие миньоны могли прочитать файл.
В Соляная шахта кажется логичным местом для начала, но в документации сказано:
Соляная шахта используется для сбора произвольных данных от миньонов и сохранения их на Мастере. Затем эти данные становятся доступными для всех миньонов через
salt.modules.mine
модуль.
Я не хочу, чтобы данные были доступны всем миньонам, а только одному. Кроме того, мне не нужно периодическое обновление - мне нужно, чтобы файл читался каждый раз, когда я запускаю state.highstate
для миньона назначения.
cp.push
?Соль cp.push
кажется хорошим способом передать файл мастеру, за исключением:
salt.transport.Channel.send()
метод, который не гарантируется конфиденциальностьcp.push
глобальные разрешения на чтение в файловой системе мастераЯ мог бы написать нестандартная внешняя стойка который каким-то образом читает файл из исходного миньона (как?), а затем делает содержимое файла доступным через столп второму миньону. Кажется, это требует больших усилий для поведения, которое должно быть встроено.
Это только полуответ, но, возможно, это поможет.
Вы написали:
как только файл находится на мастере, не очевидно, как передать его конечному миньону
и:
Я мог бы написать собственный внешний столб, который каким-то образом ... сделает содержимое файла доступным через столб второму миньону.
Эта способность ( file_tree внешняя опора) по состоянию на 2015.5.0. Посмотри это Вопросы-Ответы.
Что касается того, как передать файл от миньона-источника к мастеру, то соляная парадигма больше подходит для того, чтобы мастер был источником данных. Ты можешь: