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

Как правильно использовать «ключ проверки» Chef-сервера?

Мне кажется, что рекомендуемый способ добавления клиентов на сервер шеф-повара - или мое понимание этого - ошибочен.

из документов:

При запуске chef-client проверяет, есть ли у него клиентский ключ. Если ключ клиента не существует, он затем пытается «позаимствовать» удостоверение клиента проверки, чтобы зарегистрироваться на сервере. Для этого закрытый ключ клиента проверки необходимо скопировать на хост и поместить в /etc/chef/validation.pem.

Таким образом, «ключ проверки» - это в основном учетные данные суперпользователя, позволяющие любому, кто владеет им, получить полный доступ к серверу Chef? Я правильно читаю?

Несомненно, правильная модель для клиентов - создать свою собственную пару ключей и отправить открытый ключ на сервер шеф-повара. Клиентам никогда не потребуется доступ к этому «ключу проверки» суперпользователя.

Как я могу сделать это более безопасным способом?

Это не так уж и небезопасно. Ключ проверки можно использовать только для пары операций, необходимых для добавления узла.

Например, если я попытаюсь удалить узел с помощью ключа проверки Chef:

$ knife node delete -y foo \
    -u chef-validator \
    -k ~/.chef/chef-validator.pem \
    -s http://chef-server:4000

ERROR: You authenticated successfully to http://chef-server:4000 as chef-validator but you are not authorized for this action
Response:  You are not the correct node (auth_user name: chef-validator, params[:id]: foo), or are not an API administrator (admin: false).

Лучше всего удалить файл validation.pem после того, как узел присоединится к серверу Chef.

Чтобы действительно ответить на вопрос, вы можете создать клиентские ключи, используя knife client create команда, но вы должны передать эти ключи клиентам.

Безопасное распространение ключей - сложная проблема.