需要屏蔽詹金斯中的敏感信息
Need to Mask the sensitive information in jenkins
我有一个场景,当我们 运行 Jenkins 构建时,我们从 s3 存储桶下载敏感数据,我们下载的信息被设置为环境变量。但是下载的信息被吐出来了,我需要屏蔽整个舞台!有什么办法可以屏蔽整个舞台吗?
我尝试查看 Jenkins 的掩码密码插件 (https://wiki.jenkins.io/display/JENKINS/Mask+Passwords+Plugin),但没有找到要点。
stage('create secrets') {
steps {
script {
def propMap = readProperties file: "environments/test/envs"
def properties = propMap.collect { key, value -> return key + '=' + value }
if (testenv()) {
withAWS([role: "${propMap['ASSUME_ROLE_ARN']}", region: "${propMap['REGION']}"]) {
withEnv(properties) {
sh '''
aws s3 cp s3://${test-BUCKET}/ssl-certs/ . --recursive
export SSL_KEY="$(cat ./server.key | base64 -w 0) "
export SSL_CERT="$(cat ./server.cert | base64 -w 0)"
export SQL_ALCH="$(echo -n $SQL_ALCH | base64 -w 0)"
export SUPER_USER_GROUP="$(echo -n $SUPER_USER_GROUP | base64 -w 0)"
'''
}
}
}
当我 运行 Jenkins 使用上述阶段时,它会显示用户组的敏感信息,控制台输出中的其他所有内容都需要屏蔽整个信息。
您可以在 aws s3 之前输入 "set +x"... 并在执行输出机密的命令后输入 "set -x"。这将禁用结果回显到控制台。
sh '''
set +x
aws s3 cp s3://${test-BUCKET}/ssl-certs/ . --recursive
export SSL_KEY="$(cat ./server.key | base64 -w 0) "
export SSL_CERT="$(cat ./server.cert | base64 -w 0)"
export SQL_ALCH="$(echo -n $SQL_ALCH | base64 -w 0)"
export SUPER_USER_GROUP="$(echo -n $SUPER_USER_GROUP | base64 -w 0)"
set -x
'''
我有一个场景,当我们 运行 Jenkins 构建时,我们从 s3 存储桶下载敏感数据,我们下载的信息被设置为环境变量。但是下载的信息被吐出来了,我需要屏蔽整个舞台!有什么办法可以屏蔽整个舞台吗?
我尝试查看 Jenkins 的掩码密码插件 (https://wiki.jenkins.io/display/JENKINS/Mask+Passwords+Plugin),但没有找到要点。
stage('create secrets') {
steps {
script {
def propMap = readProperties file: "environments/test/envs"
def properties = propMap.collect { key, value -> return key + '=' + value }
if (testenv()) {
withAWS([role: "${propMap['ASSUME_ROLE_ARN']}", region: "${propMap['REGION']}"]) {
withEnv(properties) {
sh '''
aws s3 cp s3://${test-BUCKET}/ssl-certs/ . --recursive
export SSL_KEY="$(cat ./server.key | base64 -w 0) "
export SSL_CERT="$(cat ./server.cert | base64 -w 0)"
export SQL_ALCH="$(echo -n $SQL_ALCH | base64 -w 0)"
export SUPER_USER_GROUP="$(echo -n $SUPER_USER_GROUP | base64 -w 0)"
'''
}
}
}
当我 运行 Jenkins 使用上述阶段时,它会显示用户组的敏感信息,控制台输出中的其他所有内容都需要屏蔽整个信息。
您可以在 aws s3 之前输入 "set +x"... 并在执行输出机密的命令后输入 "set -x"。这将禁用结果回显到控制台。
sh '''
set +x
aws s3 cp s3://${test-BUCKET}/ssl-certs/ . --recursive
export SSL_KEY="$(cat ./server.key | base64 -w 0) "
export SSL_CERT="$(cat ./server.cert | base64 -w 0)"
export SQL_ALCH="$(echo -n $SQL_ALCH | base64 -w 0)"
export SUPER_USER_GROUP="$(echo -n $SUPER_USER_GROUP | base64 -w 0)"
set -x
'''