Как можно настроить политику ACL, чтобы пользователь мог запускать задание только в Rundeck?

Может ли кто-нибудь помочь мне в настройке пользователя в Rundeck на
1) только запускать задание
2) запретить изменение / удаление существующего задания
3) запретить создание новых заданий

Я полагаю, мне нужно установить эту конфигурацию в файле aclpolicy.yaml, но я не могу найти подробных инструкций о том, как это сделать.

заранее спасибо


person Max    schedule 06.04.2016    source источник


Ответы (2)


Ага .. Рад помочь.

Я предполагаю, что у вас уже есть проект и работа. Скажем, проект "Тестирование" и "Задание" тестовое задание. Я предполагаю, что вы создали роль / группу в файле WEB.xml как testrole, и у вас есть .aclpolicy как test.aclpolicy. Вышеупомянутые материалы содержат подробную документацию по Rundeck, однако, правда, у них нет лучшей документации по различным вариантам использования rd-acl.

В вашем случае, если вы хотите, чтобы ваш пользователь "testuser" просто запускал / читал / прекращал выполнение задания, используйте приведенный ниже test.aclpolicy.

---
for:
  job:
  - allow:
    - runAs
    - killAs
    - kill
    - read
    - run
    equals:
      name: testjob
  node:
  - allow:
    - read
    - run
  adhoc:
  - deny:
    - read
    - run
  resource:
  - allow: read
    equals:
      kind: event
description: generated
context:
  project: Test
by:
  group: testrole

---
 for:
  project:
  - allow: read
    equals:
      name: Test
description: generated
context:
  application: rundeck
by:
  group: testrole

В случае, если вы хотите предоставить одинаковые привилегии нескольким заданиям в одном проекте для одного и того же пользователя, просто замените «равно» на «совпадение» и в параметре имени введите свои задания, разделяя вертикальную черту «|» как "testjob1 | testjob2" ..

person Leo Prince    schedule 18.05.2016

Если вам нужен пользователь с разрешением на выполнение всех заданий во всех проектах, вы можете настроить следующую политику (небольшая модификация из ответа Лео):

---
description: 'Allow group runjob to run all jobs'
for:
  job:
  - allow:
    - runAs
    - killAs
    - kill
    - run
    - read
    match:
      name: '.*'
  node:
  - allow:
    - read
    - run
  adhoc:
  - deny:
    - read
    - run
  resource:
  - allow: read
    equals:
      kind: event
context:
  project: '.*'
by:
  group: runjob

---
description: 'Allow '
for:
  project:
  - allow: read
    match:
      name:  '.*'
context:
  application: rundeck
by:
  group: runjob
person Oriol Tauleria    schedule 23.02.2017
comment
Это правда. Но acl всегда предназначен для сужения уровней доступа. Если необходимо иметь роль с пользователями для работы над всеми заданиями, лучше скопируйте политику acl пользователя admin с отдельным именем пользователя. - person Leo Prince; 23.02.2017