1Password Connectサーバーを使い始める

1Passwordマニュアル|1Password Connectサーバーの設定と使用方法を詳しく解説し、Secrets Automationワークフローを効率化する手順をご紹介します。

1Password Connect サーバーは、会社のアプリやクラウド インフラストラクチャ内の 1Password アイテムや保管庫に安全にアクセスできるようにするSecrets Automation ワークフローの一種です。

必要条件

1Password Secrets Automation ワークフローを Connect サーバーとしてCreateする前に、前提条件となるタスクを完了していることを確認してください。タスクは、展開方法によって異なります。

Deployment

1Password Connect サーバーを展開するには、次の手順に従います。

ステップ 1: Secrets AutomationワークフローCreate

1Password.com ダッシュボードまたは 1Password CLI からConnect Server Secrets Automation ワークフローをCreateできます。次の手順に従うと、以下がCreateされます。

①1Password.com のアカウントにサインインします。

②サイドバーからDeveloper Toolsを選択します。

③「インフラストラクチャ シークレット管理」で、「その他」を選択します。

Create a Connect serverを選択します。

⑤画面の指示に従って1password-credentials.jsonファイルと接続トークンをCreateします。

  • 1Password CLI

  • 1Password CLI op connect commandを使用して、Connect サーバーで Secrets Automation ワークフローを設定できます。

  • ①マシンに 1Password CLI の最新バージョンがインストールされていることを確認してください。

  • ②1password-credentials.json をCreateするディレクトリに切り替えます。

  • Connect サーバーをCreateすると、現在のディレクトリに 1password-credentials.json ファイルが自動的に生Createされます。このファイルには、Connect サーバーを展開するために必要な認証情報が含まれています。 1password-credentials.json ファイルが現在のディレクトリに既に存在する場合、1Password CLI はそれを上書きするかどうかを尋ねます。

  • ③Connect サーバーをCreateし、op connect server create commandを使用して共有コンテナーへのアクセスを許可します。

  • $ op connect server create <serverName> --vaults <vaultName>

ヒント

コンテナーへのアクセスを許可せずに Connect サーバーをCreateするには、--vaults フラグを省略します。後で op connect vault Grant コマンドを使用して、Connect サーバーに共有コンテナーへのアクセスを許可できます。

Connect サーバーまたはボルトの名前に 1 つ以上のスペースが含まれている場合は、名前を引用符で囲みます (例: 「My Server Name」)。文字列にスペースが含まれていない場合 (例: myServerName)、文字列を引用符で囲む必要はありません。

op connect server create "My Server Name" --vault "My Vault Name"

op connect token create commandを使用して、Connect サーバーのトークンをCreateします。

$ op connect token create <tokenName> --server <serverName|serverID> --vault <vaultName|vaultID>

ヒント

Connect サーバーをその ID で検索する方が、Connect サーバーの名前を使うより効率的です。 「固有の識別子 (ID)」を参照してください。

op connect server list を実行すると、Connect サーバーの ID を見つけることができます。

Create功すると、1Password CLI は、Connect サーバー REST API での認証にアプリケーションまたはサービスで使用できるトークン文字列を返します。後で追加のトークンを発行できます。

⑤トークンを紛失しないように 1PasswordにSaveしてください。

同じ Connect サーバーに対して複数のトークンを持つことができますが、各 Connect サーバーは独自の異なるトークンのセットを持ちます。 op connect token command referenceを参照してください。

ヒント

Connect サーバー トークンを環境変数としてエクスポートします。Kubernetes InjectorKubernetes Operator、その他の統合などの別のツールを構成する場合、これを行うと便利です。ただし、Kubernetes で Connect サーバー トークンを使うには、Kubernetes Secret として使うことが推奨されることに注意してください。

$ export OP_CONNECT_TOKEN=<token>

ステップ2: Deploy 1Password Connect Server

  • Docker

Docker Composeファイルを使用して Connect サーバーをデプロイするには、次の 2 つの Docker イメージを起動する必要があります。

情報

DockerやDocker Composeに詳しくない場合は、Docker Composeのドキュメントを参照してください。詳細についてはこちらをご覧ください。

  • DockerおよびDocker Composeがあなたのマシン上であることを確認してください。

  • ②Docker Compose ファイルをCreateして、1password-credentials.json ファイルをSaveしたディレクトリに 1Password Connect Server コンテナをデプロイします。サンプルdocker-compose.yamlファイルを使うこともできます。

  • 資格情報ファイルが他のディレクトリにある場合は、正しい資格情報ファイルの場所を指すようにvolumesセクションを更新します。

  • ヒント 各コンテナに環境属性を追加することで、docker-compose.yamlファイル内のConnectサーバーの環境変数を設定できます。これにより、1password-credentials.jsonファイルの場所、ログレベル、HTTPポートなどを指定できます。Docker環境属性のドキュメントを参照してください。詳細についてはこちらをご覧ください。

  • ③Dockerが実行中であることを確認してください。Dockerデーモンが実行中かどうか確認できます。ターミナル アプリケーションでdocker infoコマンドを実行します。

  • ④Docker Compose を使用して Docker コンテナを起動します。docker-compose.yamlファイルのあるディレクトリで次のコマンドを実行します。

  • $ docker compose up

  • ヒント -detachフラグまたは-dフラグを使用してコンテナをバックグラウンドで実行できます。詳細についてはdocker compose up参照を参照してください。

  • デフォルトでは、ローカル ホストの8080ポートを介して Connect REST API にアクセスできます。詳細については、1Password Connect サーバー API リファレンスを参照してください。

Test the Connect Server REST API

curl コマンド、1Password Connect サーバー API エンドポイントの 1 つ、およびCreateしたトークンを使用して、ConnectサーバーのREST API にアクセスできることを確認できます。

  • ①Connect サーバー トークンを環境変数としてエクスポートします。これは、手順 1でCreateしたトークンと同じです。または、curlリクエスト内のトークン文字列を$OP_API_TOKENに置き換えることもできます。

  • ヒント トークンを忘れた場合は、op connect token createコマンドを使用して別のトークンをCreateできます。

  • $ export OP_API_TOKEN="<token>"

  • ②Connectサーバーに接続されているデータ保管庫を一覧表示するには、次の例のcurlコマンドを使用します。

  • $ curl \

  • -H "Accept: application/json" \

  • -H "Authorization: Bearer $OP_API_TOKEN" \

  • http://localhost:8080/v1/vaults

Docker コンテナを停止するには、 docker compose downを実行します。

  • Kubernetes

Kubernetes を使用して Connect サーバーをデプロイできます。これを行う最も簡単な方法は、1Password Connect and Operator Helm chartを使うことです。

注意

開始する前に、Kubernetes クラスターをデプロイしておく必要があります。クラスターをまだ持っていない場合は、 minikube を使用してローカルにクラスターをCreateするか、Play with Kubernetes プレイグラウンドを使用できます。

①マシンに Docker がインストールされ、実行されていることを確認してください。

②最新のHelmリリースをインストールします。

③1Password Helm チャート リポジトリを追加します。

次のコマンドは、1Password Helm chart repositoryを Helm のローカル インスタンスに追加します。これにより、1Password の GitHub リポジトリから全てのチャートをダウンロードしてインストールできるようになります。

$ helm repo add 1password https://1password.github.io/connect-helm-charts/

④Helm を使用して 1Password Connect サーバーをインストールします。

次のコマンドは、1password-credentials.json ファイルを使用して 1Password Connect サーバーをデプロイします。

ヒント

1password-credentials.json ファイルは、Connect サーバーをCreateしたディレクトリにあります。

$ helm install connect 1password/connect --set-file connect.credentials=1password-credentials.json

他のデプロイ方法

Connect サーバーを Kubernetes クラスターにデプロイする方法をいくつか紹介します。

Helm なしでデプロイする

Helm チャートを使用せずに Connect サーバーを Kubernetes クラスターにデプロイできます。 cert-managerを使用して外部ドメインの TLS (トランスポート層セキュリティ) 証明書をプロビジョニングする、1Password の GitHub 上の sample Kubernetes deploymentを参照してください。

Kubernetes Operator と一緒にデプロイする

1Password Connect Kubernetes Operator は、 Kubernetes Secrets を 1Password と統合します。また、1Password アイテムが更新されると、展開が自動的に再起動されます。 Learn more about the Kubernetes Operator

ステップ3: 1Password から情報を取得するためのアプリケーションとサービスをセットアップする

アプリケーションとサービスは、Connect サーバーへの REST API リクエストを通じて 1Password から情報を取得します。リクエストはアクセス トークンで認証されます。使うアプリケーションまたはサービスごとに新しいトークンをCreateします。

言語

Go

Node.js

Python

プラグイン

Terraform プロバイダー

Kubernetes 統合

Hashicorp Vault バックエンド

Ansibleコレクション

言語またはプラットフォームがリストされていない場合は、1Password Connect Server REST API を使用して独自のクライアントを構築できます。

また、 Connect サーバーで1Password CLI を使用して、コマンド ラインでシークレットをプロビジョニングし、アイテム情報を取得することもできます。

ヘルプを受ける

トークンがアクセスできる保管庫を変更するには、新しいトークンを発行します

ヘルプを受けたりフィードバックを共有したりするには、 1Password サポート コミュニティでのディスカッションに参加してください。

Last updated