我们正在尝试使用AWS DynamoDB(带有KMS加密值)来存储我们的机密而不是使用Jenkins凭据。我们的安全团队建议这样做。
我可以在Jenkins从属设备上获取秘密(git用户名和密码)作为变量,但不知道如何使用这些秘密来使用 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
答案 0 :(得分:1)
好的,我终于通过SSH Key提出了一个解决方案。在我的服务器启动脚本(AWS user data)中,我已经(从DynamoDB)获取了我的Git存储库(AWS CodeCommit)的密钥和用户名,并将它们存储在struct
和~/.ssh/sshkey
个文件中分别
这是我的~/.ssh/config
文件
~/.ssh/config
而且,这是 checkout git存储库的阶段。
Host git-codecommit.<my_aws_region>.amazonaws.com
User <my_user>
StrictHostKeyChecking no
IdentityFile ~/.ssh/sshkey
PreferredAuthentications publickey
这不是我在首发时所寻求的,但解决了我的问题。