需要屏蔽詹金斯中的敏感信息

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
   '''