jenkins角色权限与凭证管理

jenkins角色权限与凭证管理

权限管理

安装权限管理插件

  • 在插件管理界面,安装role-based authorization strategy插件实现rbac的权限管理;

  • 安装后,选择授权策略为rbs

  • 选择后,会出现manage 和 assign role界面

    image-20201208154157262

创建role

  • 管理role界面,默认3类role
    • global 全局生效,默认admin的role是绑定到管理员的role
    • item 项目访问的role,支持pattern匹配正则,匹配的是该role能访问到的项目名
    • node Jenkins配置集群时需要的role

image-20201208152847000

创建role:

  • 一个全局的role,对所有项目的读权限
  • 2个项目级别的role,分别对java开头和go开头的项目有一定权限

image-20201208154658749

创建用户

  • 创建allread、gouser、javauser3个用户

image-20201208155011349

分配role给用户

  • allread用户分配了all-read角色;
  • gouser分配了user2角色;
  • javauser分配了user1角色;

image-20201208155338519

测试用户的权限

一开始登陆,看不到,因为gouser和javauser还需授予全局角色all-read才可以;

gouser和javauser登陆,分别只可以看到go开头和java开头的项目;

image-20201208160426769

凭证管理

Jenkins凭证类型

Jenkins的凭证,存储了用户名和密码、api token、密钥对等信息,和gitlab,docker仓库等组件交互时,提供的认证信息,用于证实身份,有5类,常用的前2种,靠插件实现

  • 用户密码型
  • ssh密钥对型
  • 证书类型
  • secret file
  • secret text:加密的文本串,如github的api token

安装插件

安装如下插件,安装后出现凭证管理选项,2.236.1版本安装后是在创建项目时选中git仓库,才出现创建凭证选项;

image-20201208172910979

image-20201208165355073

用户密码型凭证

1、Jenkins上安装git插件、主机上安装git命令

[root@jenkins-1 ~]# yum install -y git

2、创建一个job,选择git类型仓库,并填入gitlab的repo地址,填入后会报错无法连接,此时创建凭证、创建后使用该凭证即可连接;

image-20201208175903032

3、创建后,点击立刻构建:查看控制台输出

image-20201208174657553

4、查看Jenkins主机上,工作目录下的构建目录,已经将目标仓库拉取了下来;

[user1@jenkins-1 ~]$ ll /var/lib/jenkins/workspace/test-auth
total 4
-rw-r--r-- 1 jenkins jenkins 31 Dec  8 17:43 README.md

ssh密钥对型凭证

注意:用户密码型的凭证,git仓库地址要是http协议的!ssh密钥对的需要git开头的仓库地址,否则协议不匹配是不会通的;

和用户密码凭证流程一致,只是创建凭证时填入的是Jenkins主机上某linux用户的密钥对;

updatedupdated2020-12-172020-12-17
加载评论