1Password から CircleCI にシークレットをロードする

1Passwordマニュアル|CircleCI統合で1Password Secrets Orbを活用し、シークレットを安全に管理・読み込みする方法を詳しく解説します。

CircleCI用の1Password Secrets Orbを使用、シークレット参照を使用して、1Password から CircleCI CI/CD パイプラインにシークレットを安全に読み込むことができます。シークレット参照は 1Password と自動的に同期され、コード内のプレーンテキストのシークレットが公開されるリスクがなくなります。

CircleCI orbsはYAML 構成ファイルを含むパッケージです。Orb を使うと、1 行のコードでこれらの構成を参照できます。

INFO

1Password Secrets orb for CircleCIによって公式にサポートおよび管理されていますが、コミュニティからの貢献も歓迎します。

Orb は、1Password Connect Serverまたは1Password Service Accountで使用できます。CircleCI および Docker で 1Password Service Account を使う方法の簡単な紹介については、以下のビデオをご覧ください。

https://www.youtube.com/watch?embeds_referring_euri=https%3A%2F%2Fdeveloper.1password.com%2Fdocs%2Fci-cd%2Fcircle-ci%2F&source_ve_path=Mjg2NjQsMTY0NTAz&v=xnv5qBjfisU&feature=youtu.be

Requirements

1Password for CircleCI orb の使用を開始するための必要条件は、サービス アカウントを使うか Connect サーバーを使うかによって異なります。

Service account

サービス アカウントで CircleCI 用の 1Password を使う前に、次の操Createを行う必要があります。

Connect

注意

接続資格情報はサービス アカウント資格情報よりも優先されます。

OP_CONNECT_HOSTまたはOP_CONNECT_TOKEN環境変数を と一緒に設定した場合OP_SERVICE_ACCOUNT_TOKEN、Connect 認証情報は提供されたサービス アカウント トークンよりも優先されます。アクションがサービス アカウント トークンを使うようにするには、Connect 環境変数を設定解除する必要があります。

Get started

Service account

  • サービスアカウント

  • ①CircleCI でサービス アカウント トークン環境変数を設定します。 CircleCIの設定ページで、OP_SERVICE_ACCOUNT_TOKENシークレットをロードするために使うサービス アカウントのトークンに環境変数を設定します。

  • ②CircleCI 構成ファイルを編集し、次の更新を行います。

    • 1Password for CircleCI orb を使うにはCircleCIconfig.ymlファイルを更新する。

    • バージョン番号を指定するか、volatile最新のバージョン番号を使用します。

  • config.ymlファイルにonepassword/secrets orb を追加します。

config.yml

プロジェクトで最新バージョンの 1Password Secrets orb を使うには、volatileバージョン番号として設定します。

config.yml

③1password/install-cliコマンドを使用して、CircleCI ジョブの最初のステップとして1Password CLI バージョン2.18.0 以降をインストールします。1Password CircleCI orb が機能するには、パイプラインに CLI をインストールする必要があります。1Password CLI の以前のバージョンでは、サービス アカウントはサポートされていません。

1Password CLI リリース ノートで最新のバージョン番号を確認してください。

config.yml

④パイプラインの後続のステップで 1Password CLI コマンドを使用します。

次のサンプル ファイルを参照してください。1Password CLI バージョン 2.18.0 以降にconfig.yml更新してください。2.x.x

Example 1

Example 2

config.yml

description: Install 1Password CLI within a job and make it useable for all the commands following the installation.

usage:

version: 2.1

orbs:

1password: onepassword/[email protected]

jobs:

deploy:

machine:

image: ubuntu-2204:current

steps:

- 1password/install-cli:

version: 2.x.x

- checkout

- run: |

docker login -u $(op read op://company/docker/username) -p $(op read op://company/docker/password)

docker build -t company/app:${CIRCLE_SHA1:0:7} .

docker push company/app:${CIRCLE_SHA1:0:7}

workflows:

deploy:

jobs:

- deploy

Connect

①CircleCI で Connect サーバー環境変数を設定します。

CircleCIの設定ページで、Connect サーバーがシークレットをロードするために使うOP_CONNECT_HOSTおよび環境変数を設定します。OP_CONNECT_TOKEN

  • OP_CONNECT_TOKENConnect サーバー トークンに設定します。

  • OP_CONNECT_HOSTConnect サーバーのホスト名または IP アドレスを設定します。

②CircleCI 構成ファイルを編集します。

1Password for CircleCI orb を使うためにCircleCIconfig.ymlファイルを更新します。必ずバージョン番号を指定するか、volatile最新のバージョン番号を使用してください。

config.ymlファイルにonepassword/secrets orb を追加します。

プロジェクトで最新バージョンの 1Password Secrets orb を使うには、volatileバージョン番号として設定します。

①1Password CLI をインストールします。

1Password CircleCI orb が機能するには、パイプラインに1Password CLI をインストールする必要があります。

  • 1password/install-cli コマンドを使用して、CircleCI ジョブの最初のステップとして CLI をインストールします。

  • パイプラインの後続のステップで 1Password CLI コマンドを使用します。

次のサンプルconfig.ymlファイルを参照してください。

Example 1

例1

Example 2

config.yml

description: Install 1Password CLI within a job and make it useable for all the commands following the installation.

usage:

version: 2.1

orbs:

1password: onepassword/[email protected]

jobs:

deploy:

machine:

image: ubuntu-2204:current

steps:

- 1password/install-cli

- checkout

- run: |

docker login -u $(op read op://company/docker/username) -p $(op read op://company/docker/password)

docker build -t company/app:${CIRCLE_SHA1:0:7} .

docker push company/app:${CIRCLE_SHA1:0:7}

workflows:

deploy:

jobs:

- deploy

Reference

次のセクションでは、1Password for CircleCI orbコマンドシークレット参照構文について説明します。

Commands

Orb を設定するときに使うコマンドは 3 つあります: 1password/install-cli、1password/exec、および 1password/export。

注意

一部のコマンドのみがシークレットをマスクします。

1password/execorb コマンドとシェル ラッパーは両方とも、op runCircleCI ログ出力からシークレットを自動的にマスクします。シークレットが誤ってログに記録された場合、1Password はそれを に置き換えます<concealed by 1Password>。1password/exportコマンドはシークレットをマスクしません。

Secret reference syntax

シークレット参照構文を使用して環境にシークレットへの参照を含めることで、CircleCI ジョブとステップでシークレットを利用できるようになります。シークレット参照構文は、保管庫名、アイテム名、セクション名、フィールド名を指定して特定の 1Password シークレットを指す 1Password URI です。

シークレット参照構文のドキュメントにアクセスして例にアクセスし、シークレットの参照について詳しく学習してください。

Usage examples

1Password CircleCI orb の具体的な使用例については、次のセクションをご覧ください。

Load secrets with the exec command

1password/exec コマンドを使用してシークレットをロードするには:

①1password/install-cliを使用して 1Password CLI をインストールします。サービス アカウントを使用している場合は、 1Password CLI のバージョン2.18.0を以降に設定してください。

②1password/execコマンドを使用して、必要に応じてシークレットをロードし、シークレットを必要とするコマンドを実行します。

ジョブのステップとして1password/execコマンドを追加すると、ジョブの後続のステップでシークレットにアクセスできるようになります。

次の例は、 1password/execコマンドを使用してジョブ レベルで変数を解決する方法を示しています。このexecコマンドは、誤ってログに記録される可能性のある秘密情報や機密値を自動的にマスクします。

Load secrets with the export command

1password/export コマンドを使用してシークレットをロードするには:

①1password/install-cliを使用して 1Password CLI をインストールします。サービス アカウントを使用している場合は、 1Password CLI のバージョン2.18.0を以降に設定してください。

②1password/exportコマンドを使用して、環境にエクスポートされたシークレット参照を読み込みます。

③ジョブの後続のステップでシークレットにアクセスします。

次の例は、 1password/exportコマンドを使用してジョブ レベルで変数を解決する方法を示しています。

config.yml

Last updated