Учебники

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

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

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

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

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

Издатель ACL System

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

publisher_acl:
   user1:
      - .*

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

Вот,

  • Пользователь1 может выполнять что угодно.

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

Пользователь1 может выполнять что угодно.

user2 разрешено использовать test и pkg , но только на миньонах «web *».

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

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

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

Вот,

  • Пользователь user1 может выполнять функции в тестовом и сетевом модулях миньонов, которые соответствуют цели web * .

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

Пользователь user1 может выполнять функции в тестовом и сетевом модулях миньонов, которые соответствуют цели web * .

Пользователь user2 может выполнять все функции.

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

Солевой сервер предоставляет опцию ‘-a’ для включения внешней аутентификации.

salt -a pam web\* test.ping

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

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

Система сверстников

Миньоны соли могут передавать команды, используя одноранговый интерфейс. Интерфейс однорангового узла настраивается через главный файл конфигурации либо для того, чтобы миньоны могли отправлять команды от мастера, используя раздел конфигурации однорангового узла, либо чтобы миньоны могли выполнять бегунов от мастера, используя конфигурацию 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 .