Как автоматически предоставить узлам доступ chef_vault в рецепте?

У меня есть рецепт, для которого требуются учетные данные от chef_vault.

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

Я думал о том, чтобы рецепт помечал узел, а затем запускал обновление хранилища ножей из рецепта, но даже если это работает, это немного уродливо.

Есть ли элегантное решение для этого, которое не требует, чтобы я что-либо делал вручную, и чтобы рецепты, которым нужны кредиты хранилища, назначали их для меня?


person red888    schedule 11.09.2016    source источник


Ответы (1)


Вы не можете сделать это (безопасно), это нарушает модель безопасности и весь смысл использования асимметричной системы предварительного шифрования, такой как chef-vault.

person coderanger    schedule 12.09.2016
comment
Как именно нарушает систему шифрования я запутался. Потому что любой узел, к которому вы применяете рецепт, имеет доступ, и это угроза безопасности? - person red888; 12.09.2016
comment
У меня есть 30 минут, чтобы поговорить об этом на coderanger.net/talks/secrets. но tl;dw заключается в том, что вещь, генерирующая асим-зашифрованные копии, нуждается в доступе к секрету в открытом виде, обычно это делается внутриполосным человеком, имеющим доступ к дешифрованию через опцию -A в хранилище. Из-за модели безопасности Chef использование флага -S с хранилищем в настоящее время небезопасно (см. начало coderanger.net/chef-and-vault, хотя речь идет о другом инструменте). Вы можете предоставить одному серверу доступ к каждому хранилищу и запускать knife vault refresh из cron, но это очень рискованно. - person coderanger; 12.09.2016