LoginSignup
20
11

More than 5 years have passed since last update.

pipelineで秘匿したい文字列を扱う

Last updated at Posted at 2017-07-12

課題

Backlogなどからファイルをwgetで落とそうとすると、APIキーがモロ出しになるのをどうにかしたい。

対応方法

Credentialsを使う

手順

Credential登録

まず Credentialを登録する為、下記へ移動する
Jenkins -> リポジトリ名/チーム名 -> 認証情報 -> Folder -> グローバルドメイン
認証情報の追加 から認証情報を追加する。

今回隠したいのはAPIキーなので、
種別 Secret text とし、SecretにAPIキーを入力し、その他は適当に決める
1.png

スクリプトを取得

Jenkins -> リポジトリ名/チーム名 ->Pipeline Syntax へ移動し、
withCredentialsの項目を確認する。

追加ボタンから秘密テキストを選択し、認証情報から、先程登録したBackLogKeyを選択する。
変数名をApiKeyとし、その後Generate Pipeline Script ボタンを押下する

押下すると、以下のようなPipeline用のGroovyスクリプトが表示される。

withCredentials([string(credentialsId: 'BackLogKey', variable: 'ApiKey')]) {
    // some block
}

Jenkinsfileの更新

あとはあなたのJenkinsfileに追加するだけです。

withCredentials([string(credentialsId: 'BackLogKey', variable: 'ApiKey')]) {
    sh "wget -q https://hoge.backlog.jp/api/v2/projects/PROJECT/files/0123456?apiKey=$ApiKey -O ./hogefuga"
}

そうすると、ログとしては下記のような形で出力されます。

+ wget -q https://hoge.backlog.jp/api/v2/projects/PROJECT/files/0123456?apiKey=**** -O ./hogefuga

APIキーが****になってる!やったね!
ユーザIDやパスワードにも使えるようですので、使っていくと良いと思います。

20
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
11