Estrategia para gestionar el acceso SSH de las personas desde Ansible Hub

Estrategia para gestionar el acceso SSH de las personas desde Ansible Hub

Mi equipo tiene un centro Ansible, desde el cual gestionamos varios nodos. Para hacerlo, nos conectamos por ssh al hub y sudo a un usuario "ansible" compartido. Este usuario tiene un par de claves ssh, que todos los nodos tienen en su archivo autorizado_keys.

Esto funciona, pero significa que todos tienen acceso a todos los nodos en todo momento.

Lo que me gustaría es algún enfoque que nos permita restringir a los usuarios para que solo puedan acceder a ciertos nodos. Podríamos agregar/eliminar claves individuales de las claves_autorizadas de cada nodo según sea necesario, pero esto parece mucho que administrar. Me gustaría algo que sea fácil de administrar, para que podamos autorizar/desautorizar rápidamente a un usuario para diferentes nodos.

¿Alguien tiene una estrategia como esta? Estaba pensando en usarclaves ssh firmadaspara otorgar acceso temporal, pero realmente no lo he explorado.

Respuesta1

Tienes Ansible, así que hay una solución rápida: usa Ansible para eso...

Si todos los usuarios del centro tienen una clave pública, puede usar esas claves públicas y el usuario ansible para publicar la clave pública del usuario en los hosts de destino.

Si desea restringir el acceso por máquina, puede configurar la lista de usuarios por host o grupo de hosts y solo completar las claves públicas de esos hosts en ese grupo. También es fácil eliminar a un usuario de un host de destino, ya sea usando un mapa y una plantilla (en lugar de agregar la clave pública) o creando una lista negativa.

De modo que el usuario puede saltar desde el concentrador a la máquina de destino directamente sin el usuario de Ansible.

información relacionada