在Jenkins机器上存储密码,SSH私钥和AWS access_keys / secret_keys的最简单方法是什么?
我已将所有密码从Git存储库中移出,但是现在已经提供了一些access_keys / secret_keys作为环境变量,以便管道仍然可以使用。
我正在寻找一种简单,简单,不太复杂的解决方案,该解决方案将为我们提供一种存储机密的基本安全性,它比将密码保存为环境变量更安全。
答案 0 :(得分:0)
您可以定义以下类型的凭据:
请确保将“ ID”和“描述”字段设置为“易于阅读”。
一旦定义了这些内容,就可以通过Jenkinsfile这样的安全方式对其进行访问:
“带密码的用户名”类型凭据
withCredentials([usernamePassword(credentialsId: "<human-readable CredID>", passwordVariable: 'p_password', usernameVariable: 'p_username')]) {
//do something useful with "${p_username}" and "${p_password}"
}
这是获取Jenkins凭证并将其组件即时放入命名环境变量中的过程,这些变量又可以在withCredentials
子句中引用和使用。
答案 1 :(得分:0)
您可以使用凭据插件将凭据存储在Jenkins中。有了此插件后,您应该能够在Jenkins中添加以下类型的凭据,并在管道中使用凭据ID:
示例和用法:
pipeline { agent any environment{ SOME_CREDS = credentials('some_cred_id') //Credential can directly be used in the url ex: PYPI = "https://${SOME_CREDS}@artifactory.com/artifactory/api/pypi/PyPi/simple" } stages { stage('Init') { steps { script{ //User and password env variables will be populated automatically: println "user: ${env.SOME_CREDS_USR}" println "pass: ${env.SOME_CREDS_PSW}" } } } } }
script { sshagent(['some_cred_id']) { sh(script: 'git fetch origin master') } }