Puncte:0

permițând utilizatorului să ruleze playbook fără a le oferi parola

drapel ma

Am un manual pe care aș dori să permit unui utilizator obișnuit să ruleze pentru a instala o aplicație pe un server centos, dar nu vreau neapărat să le dau acreditările de conectare. Știu că poți folosi Ansible Vault pentru a stoca date criptate, dar din câte îmi pot da seama, poți și decripta aceste date destul de ușor. Aveți idei despre dacă acest lucru este posibil și cum se poate realiza?

Michael Hampton avatar
drapel cz
Aceasta este una dintre problemele pe care le rezolvă AWX/Ansible Tower, de ex. cu un [job](https://docs.ansible.com/ansible-tower/latest/html/userguide/jobs.html#job-details-playbook-run).
jldiets avatar
drapel ma
@MichaelHampton, speram la ceva mai deschis, dacă este posibil.
Michael Hampton avatar
drapel cz
AWX _este_ open source.
Puncte:1
drapel cn

Most methods of installing software require a privilaged user.

Least privilage and accountability principles imply logins should be with a less-privilaged personal user, and be granted privilaged where necessary. Ansible can help with become plugins that run things as another user for you, with doas or sudo or whatever.

Passwords are a garbage auth method in general. Low entropy, poor practices historically, and inconvenient to automate. Some run as another user methods ask for your personal password, which reduces the need for shared credentials. Ansible can prompt the user for such a password with --ask-become-pass

ansible-vault (and security system lookup plugins) only protect data at rest, not when in use. The person running Ansible will have access to the plaintext secret. It may be visible with verbose enough debugging enabled.

Given all the above, a decent solution might be configuring become without passwords. ssh in using a key or certificate, but use become to run a package task as root. However, what they do as root cannot be restricted. Ansible generates temporary scripts to run modules, and there is no good sudo rule to restrict commands that look like /bin/sh -c '/usr/bin/python3 ~/.ansible/tmp/ansible-tmp-1628781435.871488-116497-130276452381107/AnsiballZ_setup.py'

Run privilaged playbooks for users. Encourage them give input on what to do, but do not give them credentials to do it. Put such playbooks in version control and accept change requests. Run the plays however you like:

  • ansible-runner scheduled in cron.
  • From a pipeline triggered by merges to the production branch in version control.
  • Jobs run from an AWX user interface.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.