Jenkins ビルドを実行すると、機密データが s3 バケットからダウンロードされ、ダウンロードした情報が環境変数として設定されるというシナリオがあります。しかし、ダウンロード情報が吐き出され、ステージ全体をマスクする必要があります。ステージ全体をマスクする方法はありますか?
Jenkins のmask passwords プラグイン ( 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 を実行すると、ユーザー グループの機密情報が表示され、コンソール出力内の他のすべての情報で情報全体をマスクする必要があります。