如何配置Rundeck使API触发作业时不暴露脚本内容?
如何通过API触发Rundeck作业且不暴露脚本内容
你遇到的问题是Rundeck触发作业的API响应会把脚本内容放在description字段返回,这里有几个可行的解决方法:
调整作业配置(最直接方案)
Rundeck默认会原样返回作业description字段的内容,因此你需要把脚本从作业的description字段移到执行步骤的脚本输入框中。作业的description仅填写用于说明的文本(比如"测试执行作业"),这样API响应里的description就只会显示你设置的说明文字,不会包含脚本内容。精细化权限控制
创建API令牌时,仅授予该令牌触发作业的权限,不授予查看作业详情的权限:- 在Rundeck权限管理中,针对目标作业(或所属项目),给令牌分配
job_run权限 - 移除
job_read或project_job_read权限
配置后触发作业的API响应只会返回执行ID等基础信息,不会包含作业的详细配置(包括description字段)。
- 在Rundeck权限管理中,针对目标作业(或所属项目),给令牌分配
反向代理过滤响应字段
如果无法调整作业配置或权限,可以通过反向代理(如Nginx)处理API响应,移除或替换description字段。以Nginx为例,使用sub_filter模块添加以下配置:location /api/ { proxy_pass https://RUNDECKSERVER.COM/api/; # 将description字段替换为自定义文本 sub_filter '"description": "[^"]*"' '"description": "已隐藏"'; sub_filter_once off; }也可以调整正则表达式直接移除
description字段(注意处理JSON格式的语法正确性)。
内容的提问来源于stack exchange,提问作者Senkel
相关产品推荐
相关产品推荐

