SaltStack - Sistema de Controle de Acesso

Um sistema de controle de acesso fornece opções para um usuário de um grupo executar uma tarefa com permissões. Um sistema de controle de acesso Salt é usado para configurar o acesso a interfaces de controle não administrativas. Você pode aplicar este processo a todos os sistemas. Este controle ajuda os usuários não administrativos a executar os comandos do Salt.

Interfaces de sal são dos seguintes três tipos -

  • Sistema ACL do editor
  • Sistema de autenticação externa
  • Sistema par

Vamos entender cada uma dessas interfaces em detalhes.

Sistema ACL do editor

Um sistema Publisher ACL permite acesso a outros usuários além do root para executar comandos Salt em lacaios do mestre. O sistema ACL do editor é configurado no arquivo de configuração principal por meio dopublisher_aclopção de configuração. É definido da seguinte forma -

publisher_acl:
   user1:
      - .*

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

Aqui,

  • user1 tem permissão para executar qualquer coisa.

  • user2 tem permissão para usar test e pkg, mas apenas em minions “web *”.

Sistema de autenticação externo

o external auth system é usado para fornecer acesso para executar comandos salt em lacaios específicos através de um sistema de autorização externo como PAM, LDAP, etc. Este arquivo de configuração é definido no arquivo mestre conforme descrito abaixo.

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

Aqui,

  • user1 tem permissão para executar funções no test e network modules nos lacaios que combinam com o web* alvo.

  • user2 tem permissão para executar todas as funções.

Habilite o Sistema de Autenticação Externa no Comando

O servidor Salt fornece uma opção '–a' para habilitar a autenticação externa.

salt -a pam web\* test.ping

Aqui o -a pamopção é usada para habilitar a autenticação externa PAM. O Salt Server pedirá detalhes de autenticação sempre que executarmos o comando. Para restringir o Salt Server de solicitar os detalhes de autenticação apenas pela primeira vez, podemos usar a opção T. este-T option armazena em cache os detalhes de autenticação pelas próximas 12 horas (configuração padrão) e usa-o para autenticar os usuários.

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

Sistema de Pares

Os salt minions podem passar comandos usando a interface de mesmo nível. A interface do par é configurada através do arquivo de configuração mestre para permitir que os lacaios enviem comandos do mestre usando opeer seção de configuração ou para permitir que lacaios executem runners do mestre usando o peer_run configuração.

Vamos entender essas duas configurações em detalhes.

Configuração de pares

A configuração simples a ser definida no arquivo mestre é a seguinte -

peer:
   .*:
      - .*

Aqui, ele permite a comunicação para todos os lacaios, mas só é recomendado para ambientes muito seguros.

Para atribuir lacaios a IDs específicos, a configuração precisa ser definida conforme mostrado abaixo: par -

.*domain.com:
   - test.*

Configuração peer_run

Esta configuração permite que os lacaios executem runners a partir do mestre usando a opção peer_run no arquivo mestre. O exemplo a seguir é para permitir o acesso a todos os lacaios e a todos os runners.

peer_run:
   .*:
      - .*

Para atribuir lacaios a um ID específico, a configuração precisa ser definida conforme abaixo -

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

Como executar comandos

Executar test.ping em todos os lacaios, use o salt-call comando junto com o publish.publish módulo.

salt-call publish.publish \* test.ping

Executar runner, use o comando salt-call junto com o publish.runner módulo.

salt-call publish.runner manage.up