permitir al usuario ejecutar el libro de jugadas sin darles una contraseña

permitir al usuario ejecutar el libro de jugadas sin darles una contraseña

Tengo un manual de estrategias ansible que me gustaría permitir que un usuario normal ejecute para instalar una aplicación en un servidor centos, pero no necesariamente quiero darles las credenciales de inicio de sesión. Sé que puedes usar Ansible Vault para almacenar datos cifrados, pero por lo que puedo decir, también puedes descifrar estos datos con bastante facilidad. ¿Alguna idea sobre si esto es posible y cómo lograrlo?

Respuesta1

La mayoría de los métodos de instalación de software requieren un usuario privilegiado.

Los principios de responsabilidad y privilegios mínimos implican que los inicios de sesión deben realizarse con un usuario personal con menos privilegios y recibir privilegios cuando sea necesario. Ansible puede ayudar a convertirse en complementos que ejecuten cosas como otro usuario por usted, con doas o sudo o lo que sea.

Las contraseñas son un método de autenticación basura en general. Baja entropía, malas prácticas históricas e inconveniente de automatizar. Algunos se ejecutan cuando otro usuario solicita su contraseña personal, lo que reduce la necesidad de credenciales compartidas. Ansible puede solicitar al usuario dicha contraseña con--ask-become-pass

ansible-vault (y los complementos de búsqueda del sistema de seguridad) solo protegen los datos en reposo, no cuando están en uso. La persona que ejecuta Ansible tendrá acceso al secreto de texto sin formato. Puede ser visible con la depuración suficientemente detallada habilitada.

Teniendo en cuenta todo lo anterior, una solución decente podría ser configurarlo sin contraseñas. ssh para usar una clave o certificado, pero use convert para ejecutar una tarea de paquete como root. Sin embargo, lo que hacen como root no se puede restringir. Ansible genera scripts temporales para ejecutar módulos y no existe una buena regla sudo para restringir comandos que parecen/bin/sh -c '/usr/bin/python3 ~/.ansible/tmp/ansible-tmp-1628781435.871488-116497-130276452381107/AnsiballZ_setup.py'

Ejecute guías privilegiadas para los usuarios. Anímelos a dar su opinión sobre qué hacer, pero no les dé credenciales para hacerlo. Coloque dichos manuales en control de versiones y acepte solicitudes de cambio. Ejecuta las jugadas como quieras:

  • corredor-ansible programado en cron.
  • Desde una canalización activada por fusiones hasta la rama de producción en el control de versiones.
  • Los trabajos se ejecutan desde una interfaz de usuario de AWX.

información relacionada