秘密
シークレットは特定のタイプの環境変数です。それらはbitrise.ymlに表示されず、その値はビルドログに公開されません。
シークレットは特定のタイプの環境変数です。シークレットは暗号化された形式で情報を非表示にし、その値はビルドログに公開されません。それらはに表示されません bitrise.yml
構成のいずれか。パスワードやAPIキーなどの機密情報をシークレットとして保存できます。
環境変数と同様に、シークレットはステップ入力の値として使用できます。 ステップ入力でのEnv変数の使用
秘密を設定する
すべてのEnvVar値は文字列です
環境変数またはシークレットの値は文字列のみにすることができます。数値(たとえば7)を設定しても、文字列として渡されます。
ワークフローエディタのグラフィカルUIで新しいシークレットを作成する方法は2つあります。最初の手順では、[シークレット]タブを使用しています。
Secrets page
Step inputs
-
でアプリを開きます ビットライズ。
-
クリック ワークフロー メインページのボタン。
-
に移動します 秘密 タブ。
-
クリック 新しく追加する ボタン。
-
EnvVarキーをに入力します 鍵 入力フィールドと値を 価値 入力フィールド。
$文字を使用する
あなたは使用することができます
$
Env VarまたはSecretの値(パスワードなど)に文字が含まれていますが、その場合は常に 入力の変数を置き換えますか? 非アクティブに切り替えます。変数のキーを入力の値に置き換えると、Bitrise CLIはその値を別の環境変数として扱います。これは、$
キャラクター。 -
Optionally, you can replace the key of your Secret with its value in inputs: check the Replace variables in inputs option.
-
Optionally, you can expose your Secret to pull requests by selecting the option.
In most cases, we strongly recommend not to expose Secrets.
-
シークレットの下の右側で、 保存する ボタン。
-
でアプリを開きます ビットライズ。
-
クリック ワークフロー メインページのボタン。
-
ワークフローを選択し、構成するステップを見つけます。
-
変更する機密入力を見つけます。
-
入力フィールドをクリックします。
-
下 新しいシークレット環境変数を作成する ラベルを付けて、新しいシークレットのキーと値を指定します。
-
Optionally, you can replace the key of your Secret with its value in inputs by checking the option.
-
クリック 新しく追加する ボタン。
既存のシークレットの編集
新しいシークレットEnvVarを追加したら 秘密 タブをクリックすると、いつでも戻ってきたり、コンテンツを変更したり、好奇心旺盛な目から保護したりできます。
-
でアプリを開きます ビットライズ。
-
クリック ワークフロー メインページのボタン。
-
に移動します 秘密 タブ。
-
クリック 編集 あなたの秘密の価値の隣。
-
必要に応じてコンテンツを変更します。
-
シークレットの下の右側で、 保存する ボタン。
秘密の価値を守る
通常、あなたはすることができます 見せる と 隠れる をクリックしてシークレットの値 目 アイコン。この機能は、秘密のenv変数のリストが長い場合に便利です。 秘密 そして、他の値を非表示にしたまま、1つのシークレットの値のみをチェックしたいとします。値が非表示の場合、その値は 消した目 アイコン。
ただし、シークレットを保護することで、シークレットの値を永続的に非表示にすることができます。そうすると、自分自身を含め、誰も値を変更したり、値を再度表示したりすることができなくなります。
シークレットの保護は元に戻せません
シークレットを保護することは元に戻せません。値を変更する必要がある場合は、シークレットを削除して新しいシークレットを作成する必要があります。
-
でアプリを開きます ビットライズ。
-
クリック ワークフロー メインページのボタン。
-
に移動します 秘密 タブ。
-
クリック 編集 あなたの秘密の価値の隣。
-
クリック 保護する。
-
ポップアップウィンドウは、プロセスが元に戻せないことを警告します。クリック 保護する。
それでおしまい。シークレットの価値を表示することはできなくなりました。
リクエストをプルするためのシークレットの公開
デフォルトでは、プルリクエストはシークレットの値にアクセスできません。これは、リポジトリのフォークから開かれたプルリクエストがビルドをトリガーした場合、そのビルドはアプリのシークレットを使用できないことを意味します。
プルリクエストビルドに特定のシークレットへのアクセスを許可する必要がある場合は、そのシークレットをプルリクエストに公開できます。ただし、公開されている場合でも、その値はログに表示されません。[編集済み]として表示されます。
保護された秘密は公開できません
秘密がされたら 保護された、プルリクエストビルドに公開することはできません。
公開アプリ
アプリが公開アプリの場合、アプリのシークレットをプルリクエストビルドに公開することはできません。
-
でアプリを開きます ビットライズ。
-
クリック ワークフロー メインページのボタン。
-
に移動します 秘密 タブ。
-
クリック 編集 あなたの秘密の価値の隣。
-
トグル プルリクエストを公開しますか? トグル。
シークレットが公開されると、プルリクエストビルドがシークレットにアクセスできるようになります。
中央の場所からの秘密の管理
デフォルトでは、すべてのシークレットはアプリレベルで処理されます。対応する値がアプリごとに異なる場合でも、複数のBitriseアプリでシークレットキーを再利用できます。
ただし、すべてのアプリに同じ値を保持するシークレットを設定し、そのシークレットを1つの場所から管理することは可能です。たとえば、すべてのアプリが同じAPIにアクセスする必要がある場合、APIキーを含むシークレットを中央の場所に保存することは理にかなっています。 APIキーが変更された場合は、その1つの場所で変更するだけで、変更はすべてのBitriseアプリに適用されます。
There are two ways to achieve this:
-
Managing your Secrets from a Workspace. This is only available on Enterprise plans.
-
Managing secrets from a central location such as a vault or database and pulling it with a Step.
Managing Secrets on a Workspace level
On Enterprise plans, you can store Secrets on a Workspace level. This means that the same Secret is accessible to all apps owned by that Workspace. This means increased security: only Workspace Owners and Managers can access these Secrets.
Downgrading
If you downgrade from an Enterprise plan, Workspace Secrets will be converted to app level Secrets.
When passing Secrets to your build, app level Secrets take precedence over Workspace level Secrets in the availability order. This also means that if you have two Secrets with the same key, the app level Secret will be used during the build.
To add a new secret:
-
On the Bitrise main page, select Settings on the navigation menu on the left. It takes you to the Workspace settings page.
-
On the Workspace settings page, select Shared resources.
-
Click the Add new button.
-
Add a key and a value.
-
Configure the usage details of the Secret:
-
Replace variables in inputs: This passes the value of the Secret as a string to the build. Use this for embedded Secrets or Environment Variables: when the value of your Secret is the key of another Secret or Environment Variable. For most use cases, you don't need this checked.
-
Expose for pull requests: Exposing a Secret to a PR means that the Secret is available to use in pull request builds. Depending on your repository's privacy settings, this is a potential security risk!
-
Protected: The value cannot be changed or viewed again. This setting is irreversible once saved.
-
-
When you're ready, click Done.
Managing Secrets from a central vault or database
このようなシークレット(または複数のシークレット)を設定するには、次の2つのことが必要です。
-
シークレットを保存するための中央のボールトまたはデータベース(HashiCorpやDopplerなど)。 CLI経由でアクセスできる必要があります。
-
NS 脚本 中央のボールト/データベースにアクセスする手順を実行し、シークレットをプルして、Bitriseで機密に設定します。
新しいシークレットを作成し、ビルド中に中央の場所に保存するには:
-
シークレットを保存するボールトまたはデータベースに、キーと値のペアとして追加します。
-
追加する 脚本 シークレットを使用するすべてのワークフローに進みます。
-
ボールトにアクセスしてシークレットをプルするために必要なコマンドを追加します。正確なコマンドは、使用しているサービスによって異なります。
-
使用
envman
シークレットを機密としてマークするツール。 envmanツールの構文は次のとおりです。envman add --key KEY --value value --sensitive
。 -
ステップでビルドログにシークレットの値が表示されていないことを確認してください。これを行うには、削除します
set -x
ステップからcontent
。
秘密の編集
シークレットの編集をオフにしている場合、シークレットは編集されないため、その値は引き続きログに表示されることに注意してください。
あなたが持っているとしましょう HashiCorp Vault と呼ばれるインスタンス secret/hello
。このボールトインスタンスには2つのシークレットがあります。 foo
値で world
と foo2
値で world2
。 Bitriseビルドでこれらのシークレットを使用するには、次のことを行う必要があります。
-
Vaultインスタンスからそれらをエクスポートします。
-
それらを繰り返し処理し、両方を機密としてマークします。
このスクリプトを使用して、次の両方を実現できます。
# Exporting the Secrets vault kv get --format=json secret/hello | jq -r '.data.data | to_entries[] | [.key, .value] | @tsv' | # Iterating over the Secrets and marking them as sensitive while IFS=$'\t' read -r key value; do envman add --key "$key" --value "$value" --sensitive done
秘密の編集
Bitrise CLIは、Secret EnvVarsを自動的に編集して印刷します [REDACTED]
キーの後に改行を入れて、ビルドログにシークレット環境変数が表示されないようにします。これは、プライベートアプリとパブリックアプリの両方に適用されます。
シークレットをログに表示する必要がある場合でも、いつでもこれをオフにすることができます。
警告
これは潜在的なセキュリティリスクです。シークレット編集をオフにしないことを強くお勧めします。
-
でアプリを開きます ビットライズ。
-
クリック ワークフロー メインページのボタン。
-
に移動します 秘密 タブ。
-
クリック 新しく追加する 登録するには
BITRISE_SECRET_FILTERING
偽の値を持つ秘密の環境変数。 -
クリック 変更を保存 右上隅にあります。