2016-04-06 2 views
1

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

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

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

ответ

1

Да, да.

Предполагаю, что у вас уже есть проект и работа там. Скажите проект Test и job testjob. Я предполагаю, что вы создали роль/группу в файле 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» ..

1

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

--- 
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 
+0

Это правда. Но acl всегда предназначен для сужения уровней доступа. Если необходимо, чтобы роль пользователя работала над всеми заданиями, лучше скопируйте политику acl администратора admin с отдельным именем пользователя. –