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。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | --- 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 答案的小修改):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | --- 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 |