calidaedev.authorized_keys

Erlaubte Schlüssel

Verwalten Sie SSH-erlaubte Schlüssel über das Ansible-Modul authorized_key.

Rollenvariablen

Standardvariablen:

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

authorized_keys_present kann verwendet werden, um die erlaubten Schlüssel für jeden Benutzer auf jedem Host anzugeben. Standardmäßig enthält es den Benutzer root ohne Schlüssel.

authorized_keys_banned kann verwendet werden, um eine Reihe von erlaubten Schlüsseln für beliebige Benutzer in authorized_keys_present zu entfernen. Es kann verwendet werden, um Schlüssel in der gesamten Inventarliste zu entfernen, sobald sie rotiert oder kompromittiert wurden oder wenn deren Aussteller alle Zugriffe widerrufen haben. Standardmäßig entfernt es alle hier aufgeführten Schlüssel für den Benutzer root.

Wenn eine genaue und präzise Kontrolle benötigt wird, verwenden Sie authorized_keys_exclusive. Es installiert die angegebenen Schlüssel und entfernt auch alle zusätzlichen Schlüssel, die auf dem Server gefunden werden, um eine konsistente Zugriffskontrolle trotz konfigurationsbedingter Abweichungen zu gewährleisten. Wenn die Schlüsselliste leer ist, wird diese Option nicht alle Schlüssel für einen bestimmten Benutzer entfernen, um zu verhindern, dass der gesamte SSH-Zugriff verloren geht.

Beispiel-Playbook

Ein einfaches Beispiel:

# 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..(einige Bytes ausgelassen)..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: [] # dies wird keinen Schlüssel für diesen Benutzer hinzufügen oder entfernen!

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

Fortgeschrittenes Beispiel:

Legen Sie Ihre öffentlichen Schlüssel in ein Verzeichnis für Dateien einer benutzerdefinierten Rolle ab, die von calidae.authorized_keys abhängt. Geben Sie authorized_keys_banned als Rollenvariable an (nicht als Standard), um es schwer zu überschreiben. Verwenden Sie entweder authorized_keys_present oder authorized_keys_exclusive, um Schlüssel je nach benötigter Kontrolle für jeden Host hinzuzufügen.

# 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..(einige Bytes ausgelassen)..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..(einige Bytes ausgelassen)..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

Lizenz

BSD

Autoreninformationen

Calidae https://www.calidae.com

Über das Projekt

Manage ssh authorized keys

Installieren
ansible-galaxy install calidaedev.authorized_keys
GitHub Repository
Lizenz
Unknown
Downloads
9.4k
Besitzer
Calidae Digital Craftsmanship