K8s部署Rundeck对接Active Directory后aclpolicy文件不生效问题求助
排查步骤
- 补全AD适配的JAAS LDAP参数
你当前的JAAS配置缺少AD专属的属性映射配置,Rundeck默认LDAP规则无法正确识别AD侧的用户、组关联关系,需追加以下环境变量:
RUNDECK_JAAS_LDAP_USERIDATTRIBUTE=sAMAccountName RUNDECK_JAAS_LDAP_ROLEOBJECTCLASS=group RUNDECK_JAAS_LDAP_ROLENAMEATTRIBUTE=cn RUNDECK_JAAS_LDAP_ROLEMEMBERATTRIBUTE=member
上述参数指定AD侧用户登录ID字段、组对象类、组名字段、组成员关联字段,配置完成后Rundeck才能正确拉取用户所属的rundeck-adm组。
- 校验ACL文件挂载权限与扫描路径
- 首先确认Rundeck ACL扫描路径包含你挂载的目录:3.3.11版本默认扫描路径为
/etc/rundeck,你挂载到/home/rundeck/etc路径的话,需要追加配置RUNDECK_SECURITY_AUTHORIZATION_PROVIDER_FILE_DIRECTORY=/home/rundeck/etc,否则系统不会加载你配置的ACL策略。 - 检查挂载文件的权限:Secret挂载的文件默认权限可能不符合Rundeck要求,需在volume配置中添加
defaultMode: 420(对应644权限),配置参考:
volumes: - name: aclpolicy secret: secretName: rundeck-adm-policy defaultMode: 420 items: - key: rundeck-admin-role.yaml path: rundeck-adm.aclpolicy
验证ACL策略加载状态
如果你保留了Rundeck本地admin账号,可使用本地账号登录后进入「系统设置」-「访问控制」页面,查看rundeck-adm.aclpolicy是否出现在策略列表中、是否有语法报错提示。如果列表中无该策略,说明路径配置或挂载规则错误。验证AD组查询权限
确认JAAS配置的bind账号myrundeckuser@mybrand.mydomain拥有OU=RundeckRoles,OU=Users,OU=MYBRAND,DC=corp,DC=MYDOMAIN路径下的组读取权限,可通过ldapsearch工具手动执行组查询验证:
ldapsearch -x -H ldap://你的AD地址 -D "myrundeckuser@mybrand.mydomain" -w "foo" -b "OU=RundeckRoles,OU=Users,OU=MYBRAND,DC=corp,DC=MYDOMAIN" "(cn=rundeck-adm)" member
查询结果中如果包含你的用户DN,说明权限正常,否则需要给bind账号授权AD对应OU的读取权限。
内容的提问来源于stack exchange,提问作者Vader
相关产品推荐
相关产品推荐

