Рейтинг:0

позволяя пользователю запускать playbook, не сообщая им пароль

флаг ma

У меня есть ansible playbook, который я хотел бы разрешить обычному пользователю запускать для установки приложения на сервере centos, но я не обязательно хочу предоставлять им учетные данные для входа. Я знаю, что вы можете использовать ansible vault для хранения зашифрованных данных, но, насколько я могу судить, вы также можете довольно легко расшифровать эти данные. Любые идеи о том, возможно ли это и как этого достичь?

Michael Hampton avatar
флаг cz
Это одна из проблем, которую решает AWX/Ansible Tower, например. с [работой](https://docs.ansible.com/ansible-tower/latest/html/userguide/jobs.html#job-details-playbook-run).
jldiets avatar
флаг ma
@MichaelHampton, я надеялся на что-то более открытое, если это возможно.
Michael Hampton avatar
флаг cz
AWX _is_ с открытым исходным кодом.
Рейтинг:1
флаг cn

Для большинства методов установки программного обеспечения требуется привилегированный пользователь.

Принципы наименьшей привилегии и подотчетности подразумевают, что вход в систему должен осуществляться с менее привилегированным личным пользователем и при необходимости должен предоставляться привилегия. Ansible может помочь стать плагинами, которые запускают вещи от имени другого пользователя для вас, с помощью doas, sudo или чего-то еще.

Пароли - это мусорный метод аутентификации в целом. Низкая энтропия, исторически плохие практики и неудобная автоматизация. Некоторые методы, запускаемые как другие пользовательские методы, запрашивают ваш личный пароль, что снижает потребность в общих учетных данных. Ansible может запросить у пользователя такой пароль с помощью --ask-становиться-пасс

ansible-vault (и подключаемые модули поиска системы безопасности) защищают данные только в состоянии покоя, а не во время их использования. Человек, использующий Ansible, будет иметь доступ к секрету открытого текста. Это может быть видно при включенной достаточно подробной отладке.

Учитывая все вышесказанное, достойным решением может стать настройка без паролей. ssh для использования ключа или сертификата, но используйте для запуска задачи пакета от имени пользователя root. Однако то, что они делают как root, не может быть ограничено. Ansible генерирует временные сценарии для запуска модулей, и нет хорошего правила sudo для ограничения команд, которые выглядят как /bin/sh -c '/usr/bin/python3 ~/.ansible/tmp/ansible-tmp-1628781435.871488-116497-130276452381107/AnsiballZ_setup.py'

Запуск привилегированных игр для пользователей. Поощряйте их вносить свой вклад в то, что нужно делать, но не давайте им полномочий для этого. Поместите такие книги в систему контроля версий и принимайте запросы на изменение. Управляйте пьесами, как вам нравится:

  • Ансибл-бегун запланировано в cron.
  • От конвейера, запускаемого слияниями, к производственной ветке в системе контроля версий.
  • Задания выполняются из пользовательского интерфейса AWX.

Ответить или комментировать

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