Неоценимым ресурсом, который я часто использую о безопасности, является NIST. У них есть хорошие руководства (Специальные Публикации), которые идут от укрепляющихся серверов до политик о некомпьютерном материале. Репозиторий контрольного списка также довольно хорош.
Также важно заметить, что большинство утечек действительно не связано с технологией, они более связаны с раздраженным сотрудником, у которого есть законный доступ к информации. Поскольку они говорят, что "Раздраженный сотрудник может удалить правительство". Используя технологию для фиксации утечек необходимо, но иногда проблема идет далеко от этого в область политик и даже человеческих ресурсов.
На первый вопрос: да , марионетка
может сделать это, используя шаблоны в сочетании с hiera
и / или facter
. Этот процесс полностью абстрагируется от программного обеспечения с использованием шаблонного файла.
Например, у вас может быть шаблон для server.xml
с таким разделом:
<Connector address="<%= @ipaddress_eth0 %>"
executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<% = @ ipaddress_eth0%>
часть - это то, что вы в настоящее время называете «токеном», и марионетка знает, как заменить ее для любого данного хоста, используя facter
:
# facter ipaddress_eth0
10.0.0.2
Вы можете иметь настраиваемые факты , если они вам тоже нужны.
Тема иерархических данных немного сложнее и потребует от вас чтения некоторой документации, чтобы увидеть, как она может помочь вам при развертывании. Это очень хорошее представление его возможностей.
По сути, его цель - предоставить средства для разделения кода и данных (ваших «токенов») и сохранить эти данные в знакомом, простом в обслуживании формате (YAML или JSON). Вариант использования, описанный выше (определение пользовательского порта для tomcat
), является классическим шаблоном использования hiera
:
В модуле tomcat
вы ' d иметь что-то вроде:
class tomcat (
$port
){
#rest of the module
}
В шаблоне (скажем, server.xml.erb
):
<Ajp12Connector port="<%= port %>" ajpidFile="conf/ajp12_2.id" />
И часть ваших иерархических данных, соответствующих этому коду, будет выглядеть примерно так:
tomcat::port = 8080
Второй вопрос, ответ тоже да, в некоторой степени. Вы можете использовать коллектив марионеток (фактически, часть предложения марионеточных лабораторий), чтобы отправлять изменения в безагентную ферму серверов. Однако вам нужно будет установить клиентов (не совсем то же самое, поскольку эти клиенты пассивны, в отличие от марионеточных
агентов, которые активно запрашивают свои каталоги у кукловода
). Опять же, необходимо, чтобы вы прочитали документацию , чтобы лучше понять детали его функций.