SaltStack - Система контроля доступа

Система контроля доступа предоставляет пользователю возможность группы выполнить задачу с разрешениями. Система управления доступом Salt используется для настройки доступа к неадминистративным интерфейсам управления. Вы можете применить этот процесс ко всем системам. Этот элемент управления помогает пользователям без прав администратора выполнять команды Salt.

Солевые интерфейсы бывают следующих трех типов -

  • Система ACL издателя
  • Внешняя система аутентификации
  • Одноранговая система

Давайте разберемся, подробно рассмотрим каждый из этих интерфейсов.

Система ACL издателя

Система ACL издателя позволяет пользователям, кроме root, выполнять команды Salt на миньонах от мастера. Система ACL издателя настраивается в главном файле конфигурации черезpublisher_aclвариант конфигурации. Это определяется следующим образом -

publisher_acl:
   user1:
      - .*

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

Вот,

  • user1 разрешено выполнять что угодно.

  • user2 разрешено использовать test и pkg, но только для миньонов «паутины *».

Внешняя система аутентификации

В external auth system используется для предоставления доступа для выполнения команд соли на определенных миньонах через внешнюю систему авторизации, например PAM, LDAPи т. д. Этот файл конфигурации определяется в главном файле, как описано ниже.

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

Вот,

  • user1 разрешено выполнять функции в test и network modules на миньонов, которые соответствуют web* цель.

  • user2 разрешено выполнять все функции.

Включить внешнюю систему аутентификации в команде

Сервер Salt предоставляет параметр «–a» для включения внешней аутентификации.

salt -a pam web\* test.ping

Здесь -a pamопция используется для включения внешней аутентификации PAM. Salt Server будет запрашивать данные аутентификации всякий раз, когда мы выполняем команду. Чтобы запретить Salt Server запрашивать данные аутентификации только в первый раз, мы можем использовать опцию T. Этот-T option кэширует данные аутентификации на следующие 12 часов (настройка по умолчанию) и использует их для аутентификации пользователей.

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

Одноранговая система

Миньоны соли могут передавать команды через одноранговый интерфейс. Одноранговый интерфейс настраивается через главный файл конфигурации, чтобы позволить миньонам отправлять команды от мастера, используяpeer раздел конфигурации или позволить миньонам запускать бегунов от мастера, используя peer_run конфигурация.

Давайте разберемся с обеими этими конфигурациями подробно.

Конфигурация пира

Простая конфигурация, которая должна быть определена в главном файле, выглядит следующим образом:

peer:
   .*:
      - .*

Здесь он позволяет общаться всем миньонам, но рекомендуется только для очень безопасных сред.

Чтобы назначить миньонов определенным идентификаторам, необходимо определить конфигурацию, как показано ниже: peer -

.*domain.com:
   - test.*

peer_run Конфигурация

Эта конфигурация позволяет миньонам запускать бегунов от мастера, используя параметр peer_run в главном файле. В следующем примере разрешается доступ всем миньонам и всем бегунам.

peer_run:
   .*:
      - .*

Чтобы назначить миньонов конкретному идентификатору, конфигурация должна быть определена, как указано ниже -

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

Как выполнять команды

Выполнить test.ping на всех миньонов используйте salt-call команда вместе с publish.publish модуль.

salt-call publish.publish \* test.ping

Выполнить runnerиспользуйте команду salt-call вместе с publish.runner модуль.

salt-call publish.runner manage.up