繁体   English   中英

如何设置ACL策略以允许用户仅在Rundeck上运行作业?

[英]How can be set an ACL policy to allow a user to only run a job on Rundeck?

有人可以帮助我如何在Rundeck中配置用户以
1)只做一份工作
2)拒绝修改/删除现有工作
3)拒绝创造新工作

我想我需要在aclpolicy.yaml文件中设置此配置,但是我找不到有关如何执行此操作的详细说明。

提前致谢

是的。很乐意提供帮助。

我假设您已经有一个项目和一份工作。 说项目测试和工作测试工作。 我假设您已经在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

如果要为同一用户为同一项目中的多个作业赋予相同的特权,只需将“ equals”替换为“ match”,然后在name参数下输入分隔管道“ |”的作业即可 例如“ testjob1 | testjob2”。

如果您需要一个有权执行所有项目中的所有作业的用户,则可以配置下一个策略(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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM