You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Rundeck ACL限制跨项目密钥的使用权限?

解决Rundeck跨项目密钥访问的ACL配置方案

针对你遇到的USER_2跨项目调用密钥的安全问题,可以通过系统级ACL控制密钥可见性+项目级ACL限制密钥引用的组合配置来解决,具体步骤如下:

1. 系统级ACL配置:限制USER_2查看PRG_A的密钥

编辑Rundeck系统ACL文件(默认路径:/etc/rundeck/system.aclpolicy),添加以下规则(若用角色管理用户,可将users替换为roles):

description: "Lock down cross-project key visibility"
context:
  project: 'PRG_A'
for:
  # 拒绝USER_2查看PRG_A的密钥
  resource:
    - equals:
        kind: 'key'
      deny: ['read']
      users: ['USER_2']
  # 保留USER_2在PRG_A的作业执行权限
  job:
    - allow: ['run', 'read']
      users: ['USER_2']
context:
  project: 'PRG_B'
for:
  # 赋予USER_2 PRG_B的密钥全权限
  resource:
    - equals:
        kind: 'key'
      allow: ['create', 'read', 'update', 'delete']
      users: ['USER_2']
  # 赋予USER_2 PRG_B的作业全权限
  job:
    - allow: ['create', 'read', 'update', 'delete', 'run']
      users: ['USER_2']
context:
  project: '*'
for:
  # 赋予USER_1所有项目的全权限
  resource:
    - equals:
        kind: 'key'
      allow: ['create', 'read', 'update', 'delete']
      users: ['USER_1']
  job:
    - allow: ['create', 'read', 'update', 'delete', 'run']
      users: ['USER_1']

2. 项目级ACL配置:限制PRG_B作业仅使用本项目密钥

编辑PRG_B项目的ACL文件(默认路径:/var/rundeck/projects/PRG_B/etc/acls/acls.yaml),添加规则拦截跨项目密钥引用:

description: "Restrict PRG_B jobs to local project keys only"
context:
  project: PRG_B
for:
  job:
    - rule:
        allow: create,update
        # 仅允许引用PRG_B项目的密钥
        condition:
          all:
            # 检查节点步骤的密码选项(引用密钥的常见场景)
            - match:
                node: job
                property: "config.nodeStep.pluginConfig.passwordOption"
                value: "^keys/PRG_B/.*$"
            # 检查作业脚本中是否包含PRG_A密钥路径
            - match:
                node: job
                property: "config.nodeStep.pluginConfig.script"
                value: "(?!.*keys/PRG_A/.*)"
            # 检查工作流步骤中的密钥引用
            - match:
                node: job
                property: "config.workflow.steps[*].pluginConfig.passwordOption"
                value: "^keys/PRG_B/.*$"

3. 生效与验证

  1. 重启Rundeck服务加载新配置:
    sudo systemctl restart rundeckd
    
  2. 验证USER_2权限:
    • 进入PRG_A:无法查看密钥列表,但可正常执行作业。
    • 进入PRG_B:尝试创建引用PRG_A密钥的作业,系统会拒绝保存。
  3. 验证USER_1权限:两个项目的密钥、作业操作均不受限制。

内容的提问来源于stack exchange,提问作者user2025149

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 13:52:57