Estratégia para gerenciar o acesso SSH de indivíduos no hub Ansible

Estratégia para gerenciar o acesso SSH de indivíduos no hub Ansible

Minha equipe possui um hub Ansible, a partir do qual gerenciamos vários nós. Para fazer isso, fazemos ssh para o hub e sudo para um usuário "ansible" compartilhado. Este usuário possui um par de chaves ssh, que todos os nós possuem em seu arquivoauthorized_keys.

Isso funciona, mas significa que todos têm acesso a todos os nós o tempo todo.

O que eu gostaria é de alguma abordagem que nos permita restringir os usuários para que eles possam acessar apenas determinados nós. Poderíamos adicionar/remover chaves individuais das chaves_autorizadas de cada nó conforme necessário, mas isso parece muito para gerenciar. Gostaria de algo que fosse fácil de gerenciar, para que possamos autorizar/desautorizar rapidamente um usuário para diferentes nós.

Alguém tem uma estratégia como essa? eu estava pensando em usarchaves ssh assinadaspara conceder acesso temporário, mas ainda não o explorei.

Responder1

Você tem o Ansible - então há uma solução rápida - use o Ansible para isso...

Se todos os usuários no hub tiverem uma chave pública, você poderá usar essas chaves públicas e o usuário ansible para publicar a chave pública do usuário nos hosts de destino.

Se você deseja restringir o acesso por máquina, você pode configurar a lista de usuários por host ou grupo de hosts e preencher apenas as chaves públicas para os hosts desse grupo. Também é fácil remover um usuário de um host de destino, usando um mapa e um modelo (em vez de anexar a chave pública) ou criando uma lista negativa.

Assim, o usuário pode pular do hub para a máquina de destino diretamente, sem o usuário Ansible.

informação relacionada