0


Rundeck(四)安全配置

自动化运维工具rundeck

GitHub - rundeck 是java开发的开源自动化服务,具有 Web 控制台、命令行工具和 WebAPI。它使您可以轻松地跨一组节点运行自动化任务,适合运维自动化管理、自动发布管理、运维数据分析等

  • 网站:https://www.rundeck.com
  • 最新文档:Rundeck | Process Automation Documentation
  • 新手引导:Rundeck | tutorial
  • 最佳实践:Rudeck | howto

系统环境

#环境要求:
    https://docs.rundeck.com/docs/administration/install/system-requirements.html

测试环境:
    openjdk version "11.0.22"
    CentOS Linux release 7.4.1708 (Core) 
    rundeck-5.2.0.20240410-1
    Database:mysql Server

内置的认证模块

jaas-loginmodule.conf --加载---> realm.properties

realm.properties 文件定义了用户/密码、权限以及acl策略的管理

realm.properties 文件是自动加载的不需要重启服务

配置文档:
Authenticating Users

内置的role

内置的role 有:

普通用户(默认)

超级管理员role:

admin

系统管理员role:

ops_admin

应用管理员 role:

app_admin
认证模式

sso 单点认证需要企业版本支持

这里讨论jaas模块和Preauthenticated预认证模块

jaas模块

支持ldap、PAM

realm.properties 是动态加载的;

jaas-loginmodule.conf 控制是否热加载,函数功能测试与官方文档说明有出入

realm.properties配置文件格式:

<username>: <password>[,<rolename> ...]

#// rundeck-config.properties
#安全参数
#rundeck.security.jaasRolePrefix:添加到通过JAAS 身份验证确定的每个角色的前缀字符串。默认值:无。
#rundeck.security.requiredRole: roleName。如果设置此属性,则所有用户都必须是指定角色的成员。
#rundeck.login.localLogin.enabled:  false为禁止本地用户登录
添加其他用户

密码尽量避免使用明文,推荐使用bcrypt加密, 配置有见有说明可以使用哪些加密方式,

工具自带了生产密码的方法, md5类型 不是密码直接md5加密

[root@tserver121 bootstrap]# su - rundeck
-bash-4.2$ cd /var/lib/rundeck/bootstrap/
-bash-4.2$ java -jar rundeck-5.2.0-20240410.war  --encryptpwd Jetty
Required values are marked with: * 
Username (Optional, but necessary for Crypt encoding):
readonly     <-----username
*Value To Encrypt (The text you want to encrypt):
*********    <-----password

==ENCRYPTED OUTPUT==
bcrypt: BCRYPT:$2a$10$ohiX0erHSnGlpJk7lTWJx.MX5BSAQNLhrgr1SDmfd5RTO3yS7MZY6
obfuscate: OBF:1ua11u2y1qhg1wgk1ltu1w9j19pz1nc81ndi19qf1w871lq41wfe1qju1u2c1u9h
md5: MD5:47d96eab402994bbdab1a691e0118501
crypt: CRYPT:re/1M9PpjIm4k

配置文件中realm.properties添加
readonly: MD5:47d96eab402994bbdab1a691e0118501,user

新添加的readonly普通用户权限

LDAP

第 1 步:设置 LDAP 登录模块配置文件

创建/etc/rundeck/jaas-ldap.conf 文件

步骤2:指定登录模块

#// /etc/rundeck/profile
#添加
JAAS_LOGIN=true
LOGIN_MODULE=ldap
JAAS_CONF=/etc/rundeck/jaas-ldap.conf

**第 3 步:重新启动 rundeckd 与尝试登录 **Authenticating Users

Preauthenticated预认证模块

预认证的好处是,多个系统集成在一个平台之后 只要平台认证过后之后,各个系统之间就通过认证了。

类似于有一个代理 提前将你的身份进行验证,比sso简单

undeck.security.authorization.preauthenticated.enabled=true
rundeck.security.authorization.preauthenticated.attributeName=REMOTE_USER_GROUPS
rundeck.security.authorization.preauthenticated.delimiter=,
rundeck.security.authorization.preauthenticated.userNameHeader=X-Forwarded-Uuid
rundeck.security.authorization.preauthenticated.userRolesHeader=X-Forwarded-Roles

#sync user info headers
rundeck.security.authorization.preauthenticated.userSyncEnabled=true
#these are the default headers for passing user details
rundeck.security.authorization.preauthenticated.userFirstNameHeader=X-Forwarded-User-FirstName
rundeck.security.authorization.preauthenticated.userLastNameHeader=X-Forwarded-User-LastName
rundeck.security.authorization.preauthenticated.userEmailHeader=X-Forwarded-User-Email
ACL-访问控制策略

ACL授予用户和用户组某些权限,以针对 项目、作业、节点、命令和 API等执行操作。用户请求的每项操作都会进行记录下来以用于报告和审计。

语法格式
ACLPOLICY

文件与热加载

配置文件生成:

/etc/rundeck/*.aclpolicy

,默认有admin.aclpolicy、与 apitoken.aclpolicy

配置文件是热加载的不需要重新启动

也可以通过页面添加和编辑

客户端命令 -rd-acl

企业版本提供了很好GUI,社区版本可以使用rd-acl帮助创建、测试和验证语法。

rd-acl 使用方法:
rd acl

授权规范 - 语法选项

可以参考:Access Control Policy

标签: 安全 linux ci/cd

本文转载自: https://blog.csdn.net/qq_56676115/article/details/138195849
版权归原作者 勤不了一点 所有, 如有侵权,请联系我们删除。

“Rundeck(四)安全配置”的评论:

还没有评论