calidaedev.authorized_keys

Clés Autorisées

Gérez les clés SSH autorisées grâce au module Ansible authorized_key.

Variables de Rôle

Variables par défaut :

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

authorized_keys_present peut être utilisé pour indiquer les clés autorisées pour chaque utilisateur sur chaque hôte. Par défaut, il inclut l'utilisateur root sans clés.

authorized_keys_banned peut être utilisé pour supprimer un ensemble de clés autorisées pour tout utilisateur dans authorized_keys_present. Il peut être utilisé pour retirer des clés dans toute l'inventaire une fois qu'elles ont été renouvelées ou compromises, ou si leurs émetteurs ont été révoqués d'accès. Par défaut, cela supprimera toutes les clés listées ici pour l'utilisateur root.

Si un contrôle plus granulaire et précis est nécessaire, utilisez authorized_keys_exclusive. Cela installera les clés indiquées et supprimera également toute clé supplémentaire trouvée sur le serveur, garantissant ainsi un contrôle d'accès cohérent malgré les écarts de configuration. Si la liste des clés est vide, cette option ne supprimera pas toutes les clés pour un utilisateur donné afin d'éviter de perdre tout accès SSH.

Exemple de Playbook

Exemple 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..(quelques octets omis)..bCRkh7ReBbpx daisy@office'

- hosts: db_servers
  roles:
    - calidae.authorized_keys
  vars:
    authorized_keys_exclusive:
      root:
        - '{{ lookup("file", "public_keys/alice") }}'
        - '{{ lookup("file", "public_keys/emilie") }}'
      ubuntu: [] # cela n'ajoutera ni ne supprimera aucune clé pour cet utilisateur !

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

Exemple Avancé :

Mettez vos clés publiques dans un répertoire de fichiers d'un rôle personnalisé dépendant de calidae.authorized_keys. Déclarez authorized_keys_banned comme une variable de rôle (et non par défaut) pour qu'elle soit difficile à remplacer. Utilisez soit authorized_keys_present soit authorized_keys_exclusive pour ajouter des clés en fonction du contrôle dont vous avez besoin pour chaque hôte.

# 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..(quelques octets omis)..bCRkh7ReBbpx daisy@office'
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..(quelques octets omis)..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

Licence

BSD

Informations sur l'Auteur

Calidae https://www.calidae.com

À propos du projet

Manage ssh authorized keys

Installer
ansible-galaxy install calidaedev.authorized_keys
Licence
Unknown
Téléchargements
9.4k
Propriétaire
Calidae Digital Craftsmanship