Je suis nouveau à Ansible. La plupart des guides d'approvisionnement VPS que j'ai vus jusqu'à présent font ceci:
- désactiver la connexion de root
- créer un nouvel utilisateur qui ne peut se connecter qu'avec
ssh
(pas un mot de passe) - ajouter le nouvel utilisateur au
wheel
groupe, avec l' autorisation sudo sans mot de passe
Je comprends (1) et (2), mais pas (3).
Sûrement sans mot de passe, sudo
c'est comme se connecter en tant que root
? Je comprends l'avantage (commodité), mais n'est-ce pas très précaire?
Je me rends compte que les administrateurs gèrent leurs réseaux de différentes manières, et cela pourrait donc être considéré comme "subjectif", mais c'est une pratique TRÈS courante, elle est même montrée dans divers documents officiels ansibles ainsi que dans des guides publiés par les sociétés d'hébergement. Cela va à l'encontre du bon sens. Quelle est la logique derrière cela?
Réponses:
Si le compte de service peut exécuter sudo sans mot de passe, vous devez protéger l'accès à ce compte.
Le fait de ne pas avoir de mot de passe pour le compte et d'utiliser uniquement des clés ssh pour s'y connecter, permet de le faire, à condition que vous puissiez également garder la clé privée ssh en sécurité.
la source
Le nouvel utilisateur créé en (2) ne peut se connecter qu'avec la clé SSH, pas de mot de passe. La clé SSH donne un accès root indirect. Cela revient donc à autoriser simplement la connexion root avec une clé.
Le compte n'ayant pas de mot de passe, il n'est pas possible d'avoir
sudo
demandé un mot de passe. Ansible doit également pouvoir exécuter des commandes. Avoir un mot de passe supplémentaire à fournir au même endroit que la clé n'augmenterait pas la sécurité.la source
Le problème est qu'ansible est destiné aux administrateurs et à l'automatisation, donc si vous avez besoin d'entrer un mot de passe pour exécuter un script, ce n'est pas vraiment la meilleure façon. De plus, il n'est pas sûr de stocker le mot de passe de sudo dans un fichier ou une base de données et de l'obtenir à chaque fois qu'il exécute le playbook. Ainsi, la combinaison de sudo sans mot de passe et de l'authentification avec les clés ssh est la meilleure méthode pour garantir la sécurité et aucun problème correct en exécutant le playbook. Vous êtes également administrateur et savez ce que vous programmez dans le playbook. Le playbook ne peut donc pas détruire vos serveurs.
la source