2016-10-04 2 views
1

Непонятно, как секреты можно лучше всего управлять с помощью шеф-повара надежным и предсказуемым способом.Управление секретами с шеф-поваром

То, что я пробовал, заключается в том, чтобы поместить все секреты в отдельную поваренную книгу, которая тогда зависит от всех кулинарных книг, которыми они управляют секретами.

Таким образом, я думал, что секреты могут обрабатываться последовательно в одном месте. Еще одно преимущество заключается в том, что мне не нужно менять существующие кулинарные книги.

Эта кулинарная книга секретов извлекает секреты из зашифрованных пакетов данных и использует их для установки паролей/секретных атрибутов. Чтобы запретить загрузку секретов на сервер Chef, я черным списком всех атрибутов, которые я не хочу загружать.

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

Так, например, если есть поваренная книга что-то вроде

execute 'change first install root password' do 
    # Add sensitive true when foodcritiC#233 fixed 
    command '/usr/bin/mysqladmin -u root password \'' + \ 
    node['mariadb']['server_root_password'] + '\'' 
    action :nothing 
    not_if { node['mariadb']['server_root_password_2'].empty? } 
end 

Что такое лучший способ превратить атрибут ['mariadb']['server_root_password'] в секрете и получить его значение из зашифрованного мешка данных? Я не хочу менять поваренную книгу, и я не хочу, чтобы пароль загружался на сервер.

Update

Я думаю, что вопросы результат ошибки в blacklist_node_attrs вызывающее черном списке атрибутов быть недоступны во время Chef бега.

Но весь атрибут подхода в сочетании с секретами в основном не развит в Шеф-поваре, кажется. Что удивительно.

Текущий статус: если вы хотите управлять секретами, вам придется изменить существующие кулинарные книги. Если вы попробуете атрибуты cookbook в файлах атрибутов и файлах рецептов, вы обнаружите, что результаты являются случайными. В некоторых ситуациях это будет работать, в других - нет.

ответ

2

Включение секретов в атрибуты узлов, скажем так, очень неразумно. Как вы отметили, они сохраняются на сервере Chef Server в ясном виде. Эта кулинарная книга должна быть обновлена, если вы не хотите, чтобы в итоге получилось очень хрупкое решение. Нет никакого общего решения, хотя я работаю над одним, возможно, выпущенным через месяц или два. У меня есть много слов об этом на coderanger.net, что я предполагаю, что вы запустили (поскольку название этого вопроса также является заголовком одной из моих сообщений в блоге). Пинг меня на Slack или IRC (я нахожусь в UTC + 11 еще несколько дней, а потом вернусь в UTC-7), и я могу попытаться дать вам что-то более приспособленное к вашему прецеденту. В целом короткая версия заключается в том, что это ужасно, и в настоящее время нет хороших ответов.

+0

Это сообщение, которое я думаю https://coderanger.net/chef-secrets/. Это ясный ответ на мой вопрос. – onknows

+0

Также проверьте связь, связанную с ней, она более актуальна на несколько лет и гораздо более подробно описывает варианты. У меня есть еще одна недавняя статья об использовании хранилища hashicorp с шеф-поваром, но пока это просто предложение. Будьте на связи? – coderanger

1

После изучения/экспериментирования с зашифрованными пакетами данных неизбежно должен быть сделан вывод, что у шеф-повара в настоящее время нет решения для управления секретами.

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

Дело в том, что зашифрованные пакеты данных и т. Д. Требуют от нас внести изменения в кулинарные книги. Не проблема, если поваренные книги являются вашими собственными, но если вы используете общественные кулинарные книги, не рекомендуется их менять.

Смежные вопросы