permitindo que o usuário execute o playbook sem fornecer senha

permitindo que o usuário execute o playbook sem fornecer senha

Eu tenho um manual ansible que gostaria de permitir que um usuário comum execute para instalar um aplicativo em um servidor centos, mas não quero necessariamente fornecer a eles as credenciais de login. Eu sei que você pode usar o ansible vault para armazenar dados criptografados, mas pelo que sei, você também pode descriptografar esses dados com bastante facilidade. Alguma idéia se isso é possível e como alcançá-lo?

Responder1

A maioria dos métodos de instalação de software requer um usuário privilegiado.

Os princípios de menor privilégio e responsabilidade implicam que os logins devem ser feitos com um usuário pessoal menos privilegiado e receber privilégios quando necessário. Ansible pode ajudar a se tornar plug-ins que executam coisas como outro usuário para você, com doas ou sudo ou qualquer outra coisa.

As senhas são um método de autenticação lixo em geral. Baixa entropia, práticas historicamente ruins e inconvenientes para automatizar. Alguns métodos executados como outro usuário solicitam sua senha pessoal, o que reduz a necessidade de credenciais compartilhadas. Ansible pode solicitar ao usuário essa senha com--ask-become-pass

O ansible-vault (e plug-ins de pesquisa do sistema de segurança) protege apenas os dados em repouso, não quando em uso. A pessoa que executa o Ansible terá acesso ao segredo em texto simples. Pode ser visível com a depuração detalhada habilitada.

Dado tudo isso, uma solução decente pode ser configurar sem senhas. ssh usando uma chave ou certificado, mas use o Become para executar uma tarefa de pacote como root. No entanto, o que eles fazem como root não pode ser restringido. Ansible gera scripts temporários para executar módulos, e não existe uma boa regra sudo para restringir comandos que se parecem com/bin/sh -c '/usr/bin/python3 ~/.ansible/tmp/ansible-tmp-1628781435.871488-116497-130276452381107/AnsiballZ_setup.py'

Execute manuais privilegiados para usuários. Incentive-os a dar sugestões sobre o que fazer, mas não lhes dê credenciais para fazê-lo. Coloque esses manuais no controle de versão e aceite solicitações de alteração. Execute as jogadas como quiser:

  • corredor ansible agendado no cron.
  • De um pipeline acionado por mesclagens até a ramificação de produção no controle de versão.
  • Os trabalhos são executados a partir de uma interface de usuário do AWX.

informação relacionada