メインコンテンツまでスキップ

ビルドでの暗号化ファイルの使用

Bitriseでは、暗号化ファイルを簡単かつ安全に使用できます。必要な作業は、コンピューター上でファイルを暗号化し、Generic File Storage にアップロードする、そして必要なときに復号するためにDecrypt file Step または独自のカスタム復号ソリューションを使用することだけです。

GPG 暗号化

Decrypt file Step は、GPG で暗号化されたファイルのみを復号できます。他の暗号化ソフトウェアを使用している場合、Step を使ってファイルを復号することはできません。もちろん、Script Step で独自の復号ソリューションを設定することもできます。

ファイルの暗号化Click to copy link​

この例では、パスワード生成ツールの pwgen と、暗号化ソフトウェアの GPG を使ってファイルを暗号化します。

  1. ターミナル/コマンドラインを開きます。

  2. 暗号化用に32文字のパスフレーズを作成します。

    パスフレーズを保管する

    このパスフレーズは、Bitrise 上でファイルを復号する際に必要になります。

    pwgen -s 32 1
  3. ファイルを暗号化します。この例では、ファイル名を my_secret_file とします。

    gpg -c my_secret_file

    任意で、ファイルを非対話形式で暗号化することもできます。

    gpg --batch --passphrase <passphrase> -c my_secret_file

ビルド中にファイルを復号してダウンロードするClick to copy link​

ファイルの暗号化が完了したら、それを Bitrise にアップロードし、ビルド中に復号できるようにする必要があります。この手順では、ファイルの復号に Decrypt file Step を使用します。

GPG 暗号化

Decrypt file Step は、GPG で暗号化されたファイルのみを復号できます。他の暗号化ソフトウェアを使用している場合、Step を使ってファイルを復号することはできません。もちろん、Script Step で独自の復号ソリューションを設定することもできます。

  1. Bitrise にアクセスして Log in、左側の Bitrise CI を選択し、プロジェクトを選択します。

  2. メインページの Workflows ボタンをクリックします。

  3. Secrets タブに移動し、復号用のパスフレーズを Secret として追加します。

  4. ファイルを Bitrise にアップロードします

  5. アップロードしたファイルの名前の下にある環境変数(Env Var)をコピーします。この Env Var には、ファイルのダウンロード用 URL が保存されています。

  6. Workflows タブに移動します。

  7. Workflow Editor を開きます。

  8. Workflow に Decrypt file Step を追加します。

  9. ファイルの Env Var を Encrypted file path 入力欄に貼り付けます。

  10. Output file path 入力欄で、復号したファイルを配置するパスを指定します。以降の Steps は、このパスでファイルにアクセスできるようになります。

    入力値として Env Var を使用する

    ファイルパスを入力欄に直接指定する代わりに、App Env Var に保存することもできます。こうすることで、他の Steps でも Env Var を通じてファイルを参照でき、毎回パスを指定する必要がなくなります。

    たとえば、パスを BITRISEIO_MY_FILE_LOCAL_PATH Env Var に保存しておけば、それを入力値としてのパスに使用できるほか、以降のすべての Step でファイルにアクセスする際にも使用できます。

ファイルの復号に関する bitrise.yml の例
---
format_version: '11'
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
project_type: macos
workflows:
secret:
steps:
- activate-ssh-key@4: {}
- git-clone@6: {}
- decrypt-file@0:
inputs:
- encrypted_file_path: "./secret.txt.gpg"
- output_file_path: "./secret/"
- decrypt_passphrase: "$PASSWORD_FOR_ENCRYPT"
- deploy-to-bitrise-io@2: {}