Назад | Перейти на главную страницу

Может ли марионеточный агент получить от мастера какой-либо файл марионеток?

Мой мастер марионеток содержит некоторые конфиденциальные файлы. Я хочу, чтобы каждый марионеточный агент имел доступ только к тем файлам, которые представляют интерес для этого конкретного агента. Другими словами:

Не знаю, имеет ли это значение, но я управляю пассажиром (а все мои агенты и хозяин - 2.7.6 из squeeze-backports).

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

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

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

Вы также можете настроить собственные «крепления», указывающие на определенные места. В документации приведен пример того, как создать [частный] монтировать для раздачи приватных ключей SSH. Имя хоста используется как часть пути монтирования, поэтому данный хост может видеть только файлы, которые ему принадлежат.

У меня нет точных данных по этому поводу. Однако из того, что я читал здесь и там, мне кажется, что любой агент может получить любой файл от мастера, если этот файл находится внутри дерева файлового сервера Puppet, а конфигурация файлового сервера Puppet позволяет агенту получить доступ к дереву. Мне также кажется, что функции file (), template () и extlookup () выполняются на главном сервере, когда он компилирует конфигурацию агента, прежде чем он отправит ее агенту.

Следовательно, должно быть достаточно безопасно хранить конфиденциальные файлы вне дерева файлового сервера Puppet и использовать file () для доступа к ним. Таким образом, они должны быть доступны только тому агенту, для которого они предназначены.

«Если вы не хотите хранить важные файлы на марионеточном сервере, что вы предлагаете вместо этого?»

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

Таким образом, типичным сценарием может быть ssh в поле, захват файла марионетки из известного безопасного удаленного или локального местоположения и использование его для установки всех зависимых модулей (и / или файлов конфигурации) перед запуском ручного запуска марионетки. Я полагаю, вы можете легко автоматизировать этот набор задач с помощью capistrano или аналогичных инструментов.

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

Однако обычно не рекомендуется хранить «защищенные» файлы на марионеточном сервере.

Надеюсь это поможет!