Я новичок в Ansible. Большинство руководств по настройке VPS, которые я видел до сих пор, делают следующее:
ssh
(не пароль)wheel
группа, с sudo без пароля разрешениеЯ понимаю (1) и (2), но не (3).
Конечно без пароля sudo
это похоже на вход как root
? Я понимаю выгоду (удобство), но разве это не небезопасно?
Я понимаю, что администраторы управляют своими сетями по-разному, и поэтому это можно назвать «субъективным», но это ОЧЕНЬ распространенная практика, она даже показана в различных официальных доступных документах, а также в руководствах, опубликованных хостинговыми компаниями. Это противоречит здравому смыслу. Какая логика за этим?
Если учетная запись службы может выполнять sudo без пароля, вам необходимо защитить доступ к этой учетной записи.
Имея аккаунт не иметь пароль и использовать только ключи ssh для входа в систему, при условии, что вы также можете защитить закрытый ключ ssh.
Новый пользователь, созданный в (2), может войти в систему только с ключом SSH, без пароля. Ключ SSH дает косвенный root-доступ. Таким образом, это эквивалентно простому разрешению входа в систему root с помощью ключа.
Поскольку у учетной записи нет пароля, невозможно sudo
спросить пароль. Также Ansible должен иметь возможность выполнять команды. Наличие дополнительного пароля в том же месте, что и ключ, не повысит безопасность.
Проблема в том, что ansible предназначен для администраторов и автоматизации, поэтому, если вам нужно ввести пароль для запуска скрипта, это не лучший способ. Также небезопасно хранить пароль для sudo в файле или базе данных и получать его каждый раз при запуске playbook. Таким образом, комбинация sudo без пароля и аутентификации с помощью ключей ssh - лучший метод обеспечения безопасности и отсутствия правильных проблем при запуске playbook. Также вы администратор и знаете, что программируете в playbook. Таким образом, playbook не может уничтожить ваши серверы.