SaltStack - Sistema di controllo accessi
Un sistema di controllo degli accessi fornisce a un utente le opzioni per consentire a un gruppo di eseguire un'attività con autorizzazioni. Un sistema di controllo degli accessi Salt viene utilizzato per configurare l'accesso alle interfacce di controllo non amministrative. È possibile applicare questo processo a tutti i sistemi. Questo controllo aiuta gli utenti non amministrativi a eseguire i comandi Salt.
Le interfacce Salt sono dei seguenti tre tipi:
- Sistema ACL del publisher
- Sistema di autenticazione esterno
- Sistema peer
Cerchiamo di capire in dettaglio ciascuna di queste interfacce.
Sistema ACL del publisher
Un sistema ACL di Publisher consente l'accesso agli utenti diversi da root per eseguire comandi Salt sui minion dal master. Il sistema ACL dell'editore viene configurato nel file di configurazione principale tramitepublisher_aclopzione di configurazione. È definito come segue:
publisher_acl:
user1:
- .*
user2:
- web*:
- test.*
- pkg.*
Qui,
user1 è autorizzato a eseguire qualsiasi cosa.
user2 è consentito l'uso test e pkg, ma solo sui minion "web *".
Sistema di autenticazione esterno
Il external auth system viene utilizzato per fornire l'accesso per eseguire comandi salt su minion specifici attraverso un sistema di autorizzazione esterno come PAM, LDAP, ecc. Questo file di configurazione è definito nel file principale come descritto di seguito.
external_auth:
pam:
user1:
- 'web*':
- test.*
- network.*
user2:
- .*
Qui,
user1 è autorizzato a eseguire funzioni in test e network modules sui servitori che corrispondono a web* bersaglio.
user2 è autorizzato a eseguire tutte le funzioni.
Abilita il sistema di autenticazione esterno in comando
Il server Salt fornisce un'opzione "–a" per abilitare l'autenticazione esterna.
salt -a pam web\* test.ping
Qui, il -a pamviene utilizzata per abilitare l'autenticazione esterna PAM. Salt Server chiederà i dettagli di autenticazione ogni volta che eseguiremo il comando. Per impedire a Salt Server di chiedere i dettagli di autenticazione solo per la prima volta, possiamo utilizzare l'opzione T. Questo-T option memorizza nella cache i dettagli di autenticazione per le successive 12 ore (impostazione predefinita) e lo utilizza per autenticare gli utenti.
salt -T -a pam web\* test.ping
Sistema peer
I minion del sale possono passare comandi utilizzando l'interfaccia peer. L'interfaccia peer viene configurata tramite il file di configurazione principale per consentire ai servitori di inviare comandi dal master utilizzando il filepeer sezione di configurazione o per consentire ai servitori di eseguire i corridori dal maestro usando il peer_run configurazione.
Cerchiamo di capire entrambe queste configurazioni in dettaglio.
Configurazione peer
La semplice configurazione da definire nel file master è la seguente:
peer:
.*:
- .*
Qui, consente la comunicazione per tutti i minion, ma è consigliato solo per ambienti molto sicuri.
Per assegnare minion a ID specifici, la configurazione deve essere definita come mostrato di seguito: peer -
.*domain.com:
- test.*
Configurazione peer_run
Questa configurazione consente ai minion di eseguire i runner dal master utilizzando l'opzione peer_run sul file master. Il seguente esempio serve per consentire l'accesso a tutti i servitori ea tutti i corridori.
peer_run:
.*:
- .*
Per assegnare i minion a un ID specifico, la configurazione deve essere definita come indicato di seguito:
peer_run:
.*domain.com:
- test.*
Come eseguire i comandi
Eseguire test.ping su tutti i servitori, usa il salt-call comando insieme al publish.publish modulo.
salt-call publish.publish \* test.ping
Eseguire runner, usa il comando salt-call insieme a publish.runner modulo.
salt-call publish.runner manage.up