calidaedev.authorized_keys

Claves Autorizadas

Administra las claves SSH autorizadas a través del módulo authorized_key de Ansible.

Variables del Rol

Variables predeterminadas:

authorized_keys_present: {root: []}
authorized_keys_banned: []
authorized_keys_exclusive: {}

authorized_keys_present se puede usar para declarar las claves autorizadas para cada usuario en cada host. Por defecto, incluye al usuario root sin claves.

authorized_keys_banned se puede usar para eliminar un conjunto de claves autorizadas para cualquier usuario en authorized_keys_present. Se puede usar para quitar claves en toda la inventario una vez que hayan sido rotadas o comprometidas, o si sus emisores han revocado todo acceso. Por defecto, eliminará todas las claves listadas aquí para el usuario root.

Si necesitas un control más detallado y preciso, usa authorized_keys_exclusive. Esta opción instalará las claves especificadas y también eliminará cualquier clave adicional que se encuentre en el servidor, proporcionando un control de acceso consistente a pesar de las desviaciones en la configuración. Si la lista de claves está vacía, esta opción no eliminará todas las claves de un usuario determinado para evitar perder todo acceso SSH.

Ejemplo de Playbook

Ejemplo simple:

# example.yml

- hosts: web_servers
  roles:
    - calidae.authorized_keys
  vars:
    authorized_keys_present:
      root:
        - '{{ lookup("file", "public_keys/alice") }}'
      ubuntu:
        - '{{ lookup("file", "public_keys/alice") }}'
        - '{{ lookup("file", "public_keys/beth") }}'
    authorized_keys_banned:
      - '{{ lookup("file", "public_keys/alice_old") }}'
      - '{{ lookup("file", "public_keys/claire") }}'
      - 'ssh-rsa AAAAB3Nza..(algunos bytes omitidos)..bCRkh7ReBbpx daisy@oficina'

- hosts: db_servers
  roles:
    - calidae.authorized_keys
  vars:
    authorized_keys_exclusive:
      root:
        - '{{ lookup("file", "public_keys/alice") }}'
        - '{{ lookup("file", "public_keys/emilie") }}'
      ubuntu: [] # esto no agregará ni eliminará ninguna clave para ese usuario.

ansible-playbook example.yml --diff --check

Ejemplo Avanzado:

Coloca tus claves públicas en un directorio de archivos de un rol personalizado que dependa de calidae.authorized_keys. Declara authorized_keys_banned como una variable del rol (no como predeterminada) para que sea difícil de sobrescribir. Usa authorized_keys_present o authorized_keys_exclusive para agregar claves dependiendo del control que necesites para cada host.

# roles/myorg.authorized_keys/meta/main.yml
dependencies:
  - calidae.authorized_keys
# roles/myorg.authorized_keys/vars/main.yml
alice: '{{ lookup("file", "public_keys/alice") }}'
beth: '{{ lookup("file", "public_keys/beth") }}'
claire: '{{ lookup("file", "public_keys/claire") }}'
daisy: 'ssh-rsa AAAAB3Nza..(algunos bytes omitidos)..bCRkh7ReBbpx daisy@oficina'
emilie: '{{ lookup("file", "public_keys/emilie") }}'
authorized_keys_banned:
  - '{{ daisy }}'
# group_vars/web_servers.yml
authorized_keys_present:
  root:
    - '{{ alice }}'
  ubuntu:
    - '{{ beth }}'
    - '{{ claire }}'
# group_vars/sftp.yml
authorized_keys_present:
  root:
    - '{{ alice }}'
    - '{{ emilie }}'
  customer:
    - 'ssh-rsa AAAAB3Nza..(algunos bytes omitidos)..t1F0Q5Y2AN customer@somesystem'
# group_vars/db_servers.yml
authorized_keys_exclusive:
  root:
    - '{{ alice }}'
# plays/site.yml
- hosts: all
  roles:
    - myorg.authorized_keys

ansible-playbook plays/site.yml

Licencia

BSD

Información del Autor

Calidae https://www.calidae.com

Acerca del proyecto

Manage ssh authorized keys

Instalar
ansible-galaxy install calidaedev.authorized_keys
Licencia
Unknown
Descargas
9.4k
Propietario
Calidae Digital Craftsmanship