SaltStack - Zugangskontrollsystem

Ein Zugriffskontrollsystem bietet einem Benutzer Optionen für eine Gruppe, um eine Aufgabe mit Berechtigungen auszuführen. Ein Salt-Zugriffskontrollsystem wird verwendet, um den Zugriff auf nicht administrative Kontrollschnittstellen zu konfigurieren. Sie können diesen Prozess auf alle Systeme anwenden. Dieses Steuerelement hilft den nicht administrativen Benutzern, die Salt-Befehle auszuführen.

Es gibt drei Arten von Salzgrenzflächen:

  • Publisher-ACL-System
  • Externes Auth-System
  • Peer-System

Lassen Sie uns verstehen, gehen Sie jede dieser Schnittstellen im Detail durch.

Publisher-ACL-System

Ein Publisher-ACL-System ermöglicht den Zugriff auf andere Benutzer als root, um Salt-Befehle für Minions vom Master auszuführen. Das Publisher-ACL-System wird in der Master-Konfigurationsdatei über das konfiguriertpublisher_aclKonfigurationsoption. Es ist wie folgt definiert:

publisher_acl:
   user1:
      - .*

   user2:
      - web*:
         - test.*
         - pkg.*

Hier,

  • user1 darf alles ausführen.

  • user2 darf verwenden test und pkg, aber nur auf "Web *" - Schergen.

Externes Authentifizierungssystem

Das external auth system wird verwendet, um den Zugriff zum Ausführen von Salt-Befehlen für bestimmte Minions über ein externes Autorisierungssystem wie z PAM, LDAPusw. Diese Konfigurationsdatei wird in der Masterdatei wie unten beschrieben definiert.

external_auth:
   pam:
      user1:
         - 'web*':
            - test.*
            - network.*
      user2:
         - .*

Hier,

  • user1 darf Funktionen in der ausführen test und network modules auf die Schergen, die dem entsprechen web* Ziel.

  • user2 darf alle Funktionen ausführen.

Aktivieren Sie das externe Authentifizierungssystem im Befehl

Salt Server bietet die Option '–a', um die externe Authentifizierung zu aktivieren.

salt -a pam web\* test.ping

Hier das -a pamOption wird verwendet, um die externe PAM-Authentifizierung zu aktivieren. Salt Server fragt bei jeder Ausführung des Befehls nach Authentifizierungsdetails. Um zu verhindern, dass Salt Server nur zum ersten Mal nach den Authentifizierungsdetails fragt, können wir die Option T verwenden. Diese-T option speichert die Authentifizierungsdetails für die nächsten 12 Stunden zwischen (Standardeinstellung) und verwendet sie zur Authentifizierung der Benutzer.

salt -T -a pam web\* test.ping

Peer-System

Salt Minions können Befehle über die Peer-Schnittstelle übergeben. Die Peer-Schnittstelle wird entweder über die Master-Konfigurationsdatei konfiguriert, damit Minions Befehle vom Master über die senden könnenpeer Konfigurationsabschnitt oder um Minions zu ermöglichen, Läufer vom Master mit dem auszuführen peer_run Aufbau.

Lassen Sie uns diese beiden Konfigurationen im Detail verstehen.

Peer-Konfiguration

Die einfache Konfiguration, die in der Masterdatei definiert werden muss, lautet wie folgt:

peer:
   .*:
      - .*

Hier ermöglicht es die Kommunikation für alle Schergen, wird jedoch nur für sehr sichere Umgebungen empfohlen.

Um bestimmten IDs Minions zuzuweisen, muss die Konfiguration wie folgt definiert werden: peer -

.*domain.com:
   - test.*

peer_run Konfiguration

Diese Konfiguration soll es Minions ermöglichen, Läufer vom Master mit der Option peer_run in der Masterdatei auszuführen. Das folgende Beispiel soll den Zugriff auf alle Schergen und auf alle Läufer ermöglichen.

peer_run:
   .*:
      - .*

Um einer bestimmten ID Schergen zuzuweisen, muss die Konfiguration wie folgt definiert werden:

peer_run:
   .*domain.com:
      - test.*

Ausführen von Befehlen

Ausführen test.ping Verwenden Sie für alle Schergen die salt-call Befehl zusammen mit dem publish.publish Modul.

salt-call publish.publish \* test.ping

Ausführen runnerVerwenden Sie den Befehl salt-call zusammen mit dem Befehl publish.runner Modul.

salt-call publish.runner manage.up