【发布时间】:2017-10-01 10:20:56
【问题描述】:
我们正在尝试使用 AWS DynamoDB(使用 KMS 加密值)来存储我们的机密,而不是使用 Jenkins 凭证。这是我们的安全团队建议的。
我能够获取机密(git 用户名和密码)作为 Jenkins slave 上的变量,但不确定如何使用这些来checkout git 存储库。
这是我们现有的代码
stage('SCM Checkout') {
checkout([$class: 'GitSCM', branches: [[name: "*/${GIT_BRANCH}"]],
doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [],
userRemoteConfigs: [[credentialsId: 'GIT_PASSWORD', url: "${GIT_URL}"]]])
}
我想使用变量 GIT_USER 和 GIT_PASSWORD(从 AWS 获取)而不是使用 credentialsId
【问题讨论】:
-
您是否尝试过 URL 的
user:password@git.example.com语法? -
我认为使用 SSH 密钥会更容易。
-
@StephenKing 是的,这可行,但随后凭据在 Jenkins 作业的控制台中以纯文本形式公开
-
即使你使用 groovy 脚本,你也可以获得任何你想要的密码。如果您限制凭据插件,那么您不能在脚本中使用凭据
-
import jenkins.* import jenkins.model.* import hudson.* import hudson.model.* def jenkinsCredentials = com.cloudbees.plugins.credentials.CredentialsProvider.lookupCredentials(com.cloudbees.plugins.credentials .Credentials.class, Jenkins.instance, null, null); for (jenkinsCredentials 中的信用) { if(creds.id=="username") { println(creds.username) println(creds.password) break; } }