使用 credentials
许多三方网站和应用可以与Jenkins交互,如Artifact仓库,基于云的存储系统和服务等
此类应用的系统管理员可以在应用程序中配置 credentials 供Jenkins使用,通常将访问控制应用于这些 credentials,以“锁定”Jenkins可用的应用程序功能区域。一旦Jenkins管理员(即管理Jenkins站点的用户)在Jenkins中添加/配置这些 credentials,Pipeline项目就可以使用 credentials 与三方应用交互
注意: 在当前和相关页面描述的Jenkins credentials功能由 Credentials Binding 插件提供。
存储在Jenkins中的credentials可以被使用:
适用于Jenkins的任何地方 (即全局 credentials),
通过特定的Pipeline项目/项目 (在处理 credentials和 使用Jenkinsfile部分了解更多信息),
由特定的Jenkins用户 (如Pipeline 项目中创建 Blue Ocean的情况).
Jenkins可以存储以下类型的credentials:
Secret text - API token之类的token (如GitHub个人访问token),
Username and password - 可以为独立的字段,也可以为冒号分隔的字符串:
username:password
(更多信息请参照处理 credentials),Secret file - 保存在文件中的加密内容
SSH Username with private key -SSH 公钥/私钥对,
Certificate - a PKCS#12 证书文件 和可选密码
Docker Host Certificate Authentication credentials.
Credential 安全
为了最大限度地提高安全性,在Jenins中配置的 credentials 以加密形式存储在Jenkins 主节点上(用Jenkins ID加密),并且只能通过credentials ID在Pipeline项目中获取
这最大限度地减少了向Jenkins用户公开credentials真实内容的可能性,并且阻止了将credentials复制到另一台Jenkins实例
配置 credentials
本节介绍在Jenkins中配置 credentials 的过程
Jenkins用户可以把credentials添加到Jenkins中,该用户具有 Credentials > Create 权限 (通过 基于Matrix的安全设置 )。这些权限可以由具有 管理员 权限的用户配置. Read more在授权 部分的安全管理中了解更多信息
如果Jenkins的 配置全局安全性 的 授权 设置为默认值,那么任何Jenkins用户都可以添加和配置credentials,设置页面将被置为默认: 登录用户可以执行任何设置 或者 任何人都可以执行任何设置
添加新的global credentials
要向Jenkins实例添加新的全局credentials
如果需要,请确保您已经登录到Jenkins (作为拥有Credentials > Create 权限的用户).
从Jenkins主页(即Jenkins经典UI的仪表板)点击左侧的 Credentials > System 。
在 System 中, 点击 Global credentials (无限制) 链接以访问默认域。
点击左侧的 添加 Credentials 。注意: 如果此默认域中没有 credentials,你也可以点击 添加某些 credentials 链接 (与点击 添加Credentials 相同).
在 Kind 字段中,选择要添加的credentials类型 。
在 Scope 字段中,选择:
Global - 如果要添加的credential用于管道项目/项目,选择此项将crendential应用于管道项目/项目“对象”及其所有子对象
System - 如果要添加的credential用于Jenkins实例本身与系统管理功能(例如电子邮件认证,代理连接等)交互。选择此选项会将crendential的应用于单个对象。
- 将credentials 本身添加到所选择的credentials类型的相应字段中:
Secret text - 复制加密文本到 Secret 字段中
Username and password - 在对应字段指定credential 的 Username 和 Password
Secret file - 点击 File 字段旁边的 Choose file 按钮以选择要上传到Jenkins的加密文件
SSH Username with private key - 在对应字段中指定 Username,Private Key 和 可选的 Passphrase 。注意:**直接 选择 回车** 可以让您复制私钥的文本并将其粘贴到生成的秘钥文本框中
Certificate - 指定 证书 和可选的 密码 。选择上传 PKCS#12 证书 ,您可以通过 上传证书 按钮将证书作为文件上传
Docker Host Certificate Authentication - 将相应的详细信息复制到c Client Key, Client Certificate 和 Server CACertificate 字段。.
在 ID 字段中,指定一个有意义的credential ID - 例如
jenkins-user-for-xyz-artifact-repository
。您可以使用大写或小写字母作为凭证ID,也可以使用任何有效的分隔符。但是,为了Jenkins实例上所有用户利益,最好使用统一的约定来指定credential ID注意: 该字段是可选的。 如果您没有指定值, Jenkins 则Jenkins会分配一个全局唯一ID(GUID)值。请记住,一旦设置了credential ID,就不能再进行更改。为credential指定可选的 说明 。
点击 OK 保存 credentials.