run

1Passwordマニュアル|シークレットを安全に管理し、アプリケーションやスクリプトに環境変数として渡す方法を詳しく解説します。簡単で効率的なセキュリティー対策を実現しましょう。

シークレットを環境変数としてアプリケーションまたはスクリプトに渡します。

op run -- <command> <command>... [flags]

Flags

--env-file stringArray   Enable Dotenv integration with specific Dotenv files to
                         parse. For example: --env-file=.env.
--no-masking             Disable masking of secrets on stdout and stderr.

op run環境変数をスキャンしてシークレット参照を探し、1Password から対応するシークレットをロードし、サブプロセスの実行中はシークレットを環境変数として利用できるようにして、提供されたコマンドをサブプロセスで実行します。

承認されたターミナル セッション内のプロセスがアクセスできる 1Password アイテムを制限するには、使うアイテムをop run別の保管庫に移動し、その保管庫にのみアクセスできるサービス アカウントでコマンドを使用します。

サービス アカウントの詳細をご覧ください。

秘密の参照について詳しく紹介します。

シェルと環境ファイルの両方に同じ環境変数名が存在する場合は、環境ファイルが優先されます。

複数の環境ファイルに同じ環境変数名が存在する場合、最後の環境ファイルが優先されます。

stdout または stderr に出力される秘密は、デフォルトでは隠されています。 マスクをオフにするには、--no-maskingフラグを含めます。

secretの値を印刷:

export DB_PASSWORD="op://app-prod/db/password"
op run -- printenv DB_PASSWORD
<concealed by 1Password>
op run --no-masking -- printenv DB_PASSWORD
fX6nWkhANeyGE27SQGhYQ

環境ファイルを指定して使用します。

echo "DB_PASSWORD=op://app-dev/db/password" > .env
op run --env-file="./.env" -- printenv DB_PASSWORD
password

シークレット参照内の変数を使用して、さまざまな環境のさまざまなシークレット セットを切り替えます。

cat .env
DB_USERNAME = op://$APP_ENV/db/username
DB_PASSWORD = op://$APP_ENV/db/password
export APP_ENV="dev"
op run --env-file="./.env" -- printenv DB_PASSWORD
dev
export APP_ENV="prod"
op run --env-file="./.env" -- printenv DB_PASSWORD
prod

Last updated