0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1Password CLIを使ってみる

Last updated at Posted at 2024-11-03

はじめに

1PasswordをCLIで使用する方法について記載します。

もともと、GUIでは1Password、CLIではPassを使用していたのですが、分かれているの嫌だなと思い、今回1Passwordに統一しました。

インストール

パッケージマネージャーを使用しないでのインストールは以下になります。

ARCH="amd64"; \
OP_VERSION="v$(curl https://app-updates.agilebits.com/check/1/0/CLI2/en/2.0.0/N -s | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+')"; \
curl -sSfo op.zip \
https://cache.agilebits.com/dist/1P/op2/pkg/"$OP_VERSION"/op_linux_"$ARCH"_"$OP_VERSION".zip \
&& unzip -od /usr/local/bin/ op.zip \
&& rm op.zip

私の場合は、インストールをMakefileでおこなっているので次のように定義しています。

ARCH := $(shell uname -m)
BIN_DIR := $(HOME)/.local/bin
COMPLETION_DIR := $(HOME)/.local/share/zsh-completion/completions

$(BIN_DIR)/op:
	mkdir -p /tmp/op
	$(eval DL_ARCH := $(shell if [ "$(ARCH)" = "x86_64" ]; then echo "amd64"; else echo "arm64"; fi))
	$(eval VERSION := $(shell curl https://app-updates.agilebits.com/check/1/0/CLI2/en/2.0.0/N -s | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+'))
	curl -fsLS -o /tmp/op/op.zip https://cache.agilebits.com/dist/1P/op2/pkg/v$(VERSION)/op_linux_$(DL_ARCH)_v$(VERSION).zip
	unzip /tmp/op/op.zip -d /tmp/op
	mv /tmp/op/op $(BIN_DIR)/op
	rm -rf /tmp/op
	$(BIN_DIR)/op completion zsh > $(COMPLETION_DIR)/op.zsh

※ インストールと合わせて入力補完用ファイルの生成も合わせておこなっています。

サービスアカウントの発行

CLIからでもID/Passwordでのサインインが可能ですが、都度パスワードの入力を求められてしまうので、サービスアカウントを発行して使用しています。

  1. 1Passwordにログイン
  2. サイドバーから「Developer Tools」を選択
  3. 「Directory」タブを選択し、「Service Account」を選択
  4. 「Service account name」に任意の名前を入力
  5. 「Choose vaults」から参照するVaultを選択
    • DefaultのVaultを指定することはできなので、CLI用のVaultを作成するのが良いかと思います。
  6. 「Service account token」が発行されるので記録しておいてください

使ってみる

まずは、サインインの設定です。
whoamiコマンドで情報が取得できればサインインできています。

# 環境変数にサービスアカウントトークンを設定
$ export OP_SERVICE_ACCOUNT_TOKEN=${Service account token}
# サインインアカウントの情報を確認
$ op whoami
URL:               https://your_url
Integration ID:    your_integration_id
User Type:         SERVICE_ACCOUNT

Vaultの一覧表示

$ op vault list
ID                            NAME
xxxxxxxxxxxxxxxxxxxxxxxxxx    CLI

保存されているアイテム一覧

$ op item list
ID                            TITLE                  VAULT            EDITED
yyyyyyyyyyyyyyyyyyyyyyyyyy    ChatGPT API Key        CLI              4 minutes ago

特定のアイテムを取得

$ op item get oom2m6lj676ll6axyeyfag6p24 --vault CLI
ID:          yyyyyyyyyyyyyyyyyyyyyyyyyy
Title:       ChatGPT API Key
Vault:       CLI (xxxxxxxxxxxxxxxxxxxxxxxxxx)
Created:     8 minutes ago
Updated:     6 minutes ago by miya10kei
Favorite:    false
Version:     2
Category:    LOGIN
Fields:
  password:    [use 'op item get yyyyyyyyyyyyyyyyyyyyyyyyyy --reveal' to reveal]

※ アイテムを取得する場合は--vaultオプションを付与して取得先のVaultを指定してください

フィールドを絞りたい場合

$ op item get oom2m6lj676ll6axyeyfag6p24 --vault CLI --fields password --reveal
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

※ パスワードフィールドの場合は--revealオプションを付与することで確認可能です

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?