1Password CLI 2にアップグレードする

1Passwordマニュアル|1Password CLI 2にアップグレードする方法を解説します。

1Password CLI 2にアップグレードする

以前のバージョンから1Password CLI 2にアップグレードしスクリプトを新しいコマンド構文に更新する方法を紹介します。

⚠️注意:1Password CLI 1 は非推奨です

1Password CLI 1 は、2024年10月1日をもって廃止されます。バージョン1を使うスクリプトや統合による停止を回避するには、1Password CLI 2にアップグレードしてください。

1Password CLI 2

1Password CLIのバージョン 2は 2022 年3月にリリースされました。それ以来、96%以上のユーザーが最新バージョンを採用しています。

1Password CLI 2には、ツールを使いやすくするためのスキーマへの多数の変更と、シークレットのプロビジョニングに役立つ新機能が含まれています。

新しいスキーマ

1Password CLI 2 では、操Create別ではなくトピック別にコマンドをグループ化する名詞-動詞コマンド構造が導入されています。 op --helpで利用可能な全トピックを検索でき、 op <topic> --helpで各トピックで利用可能なコマンドを確認できます。トピックには次のものがあります:

その他のスキーマの変更は次の通りです:

  • デフォルトの出力は、人間に分かりやすい表形式のスキーマになりました。 デフォルトの出力を JSON に変更する方法はここで学べます。

  • JSON出力スキーマに、より有用な情報が含まれるようになりました。

  • stdin処理が改善され、より多くのコマンドを連結できるようになりました。

  • 新しいスキーマでは、位置引数の代わりにフラグが使用されます。

シークレットのプロビジョニング

シークレットをローカルでプロビジョニングできるように、1Password CLI 2 では、環境変数や設定ファイルで 1Password から直接シークレットを読み込むことができます。シークレットのプロビジョニングにより、プレーンテキストのシークレットを 1PasswordにSaveされているシークレットへの参照に置き換え、スクリプト、アプリケーション、その他のワークフローで実行時に読み込むことができます。

1Password CLIを1Passwordデスクトップアプリと統合

1Passwordデスクトップ アプリに追加したアカウントを使って1Password CLI 2にサインインし、以後はコマンドラインで生体認証を使ってアカウントを認証できます。

シェルプラグイン

ワークフローを簡素化し、安全に保つために、1Password CLI 2では、生体認証を使ってサードパーティのコマンドラインツールを安全に認証できるシェルプラグインが導入されています。

パッケージマネージャーのインストール

1Password CLI 2は、Apt、Yum、Alpine、tarなどのパッケージ マネージャーを使った簡単なインストールをサポートしています。

全ての変更は変更履歴で確認できます。

フィードバックを共有するには、サポートコミュニティーフォーラムにアクセスしてください。

ステップ 1: アップグレード戦略を選ぶ

1Password CLI 2にアップグレードする方法は複数あります。ワークフローとツールチェーンに応じて、すぐにアップグレードすることも、段階的にアップグレードすることもできます。

即アップグレードする

1Password CLI 2にアップグレードする最も簡単な方法は、保存済みのインストールを上書きすることです。これは、各ローカルインストールを同時にアップグレードできる小規模なチームがある場合に適したオプションです。

  1. 現在のインストールのディレクトリーを取得するには、which op(Windowsの場合はGet-Command op.Path)を使います。

  2. 1Password CLI 2をダウンロードし、opコマンドを同じディレクトリーに移動して、保存済みのコピーを上書きします。

  3. インストールを確認するには、次のコマンドでバージョン番号を確認します。

$ op --version

チームの全員が1Password CLI 2にアップグレードしたことを確認してください。スクリプトを更新すると、以前のバージョンの1Password CLIでは動作しなくなります。

徐々にアップグレードする

すぐにアップグレードする準備ができていない場合は、Dockerを使って個々のプロジェクトをアップグレードするか、1Password CLIの両方のバージョンを並行して利用できます。バージョン2がリリースされた後も、バージョン1のサポートは1年間継続されます。

Dockerを使って個々のプロジェクトをアップグレードする

プロジェクトごとにアップグレードしたい場合は、ワークフローをDockerizeして、各チーム メンバーが特定のプロジェクトのDockerイメージ内の1Password CLIのバージョンを利用できるようにします。各チームメンバーがそれぞれのローカルインストールを更新する必要がないため、これは大規模なチームに適したオプションです。

  1. 1Password CLI Dockerイメージを使うか、独自のイメージを使ってCLIを追加します。Dockerfileは次のようになります。

FROM 1password/op:2

COPY ./your-script.sh /your-script.sh

CMD ["/your-script.sh"]

このアプローチにより、スクリプトをCI/CDパイプラインなどのヘッドレス環境に移動することもできます。

両方のバージョンの1Password CLIを使い続ける

スクリプトが各チームメンバーのマシン上のローカルインストールに依[Save]しており、段階的に移行したい場合は、これが最適なオプションです。

各チームメンバーは次のことを行う必要があります。

  1. 以前のバージョンの1Password CLIの名前をop1に変更します。

  2. op1が出現する場所を全部検索してopに置き換えます。

  3. 1Password CLI 2を、$PATH内にインストールします。

⚠️注意

macOSの場合、1Password CLI 2は正確に /usr/local/bin/op に移動する必要があります。 Linuxの場合は、/usr/local/bin/opに移動することをお勧めします。

  1. スクリプトを1つずつ新しいopコマンドをように更新してください。現在のスクリプトをop1としてインストールされている以前のバージョンの1Password CLIで引き続き使用できます。

  2. 全スクリプトを更新し、アップグレードの準備ができたら、以前のバージョンの 1Password CLIをアンインストールします。

  3. スクリプト内でop1が出現する場所を全部検索してopに置き換えます。

ステップ2:自分のスクリプトを更新する

スクリプトで以前のバージョンの1Password CLIを使っていた場合は、スクリプトを新しい構文に更新する必要があります。

1Password CLI 2をインストールしたら、次の表を使ってスクリプトを更新します。この表には更新された全コマンドと、関連する引数またはフラグの変更が表示されています。

旧コマンド

CLI 2コマンド

注記

create vault

vault create

get vault

vault get

edit vault

vault edit

--travel-mode=on/offフラグが導入されました

delete vault

vault delete

[-]引数が指定されている場合はパイプ入力を許可します

list vaults

vault list

  • デフォルトでは、読み取りアクセス権を持つ保管庫がリストされます

  • 管理できる全ての保管庫を表示するには、--permission manageを追加してください

list users --vault

vault user list

add group

vault group grant

  • 付与する権限を指定するには--permissionフラグを使う必要があります

  • allow_viewing、allow_editing、allow_managingを付与することは、全権限を付与することと同じです

  • 引数groupとvaultがフラグ--groupと--vaultに変更されました

remove group

vault group revoke

  • 取り消す権限を指定するには--permissionフラグを使う必要があります

  • allow_viewing、allow_editing、allow_managingを取り消すことは、全権限を取り消すことと同じです

  • 引数groupとvaultがフラグ--groupと--vaultに変更されました

add user <user> <vault>

vault user grant

  • 付与する権限を指定するには--permissionフラグを使う必要があります

  • allow_viewing、allow_editing、allow_managingを付与することは、全権限を付与することと同じです

  • 引数userとvaultがフラグ--userと--vaultに変更されました

remove user <user> <vault>

vault user revoke

  • 取り消す権限を指定するには--permissionフラグを使う必要があります

  • allow_viewing、allow_editing、allow_managingの取り消しは、全権限を取り消すことと同じです

  • 引数userとvaultがフラグ--userと--vaultに変更されました

signin <url>

account add

  • アカウント/URL(複数)用

  • eメール、アドレス、秘密鍵がフラグ経由で提供されていれば、パスワードをパイプで渡せます

signin --list

account list

account listは、選択した出力形式(JSON形式または人間が読める形式) に基づいて出力をフォーマットします

forget account

account forget

全アカウントを消去するための新しい-—allフラグが追加されました

get account

account forget

confirm user

user confirm

-引数が指定されている場合はパイプ入力を許可します

create user

user provision

引数emailとnameがフラグ--emailと--nameに変更されました

delete user

user delete

-引数が指定されている場合はパイプ入力を許可します

edit user

user edit

-引数が指定されている場合はパイプ入力を許可します

reactivate user

user reactivate

-引数が指定されている場合はパイプ入力を許可します

suspend user

user suspend

--deauthorize-devices-afterフラグは秒だけでなく任意の期間単位を受け入れます

list users

user list

get user

user get

  • 現在認証されているユーザーを取得するための--meフラグを追加しました

  • –publickeyを—public-keyに変更しました

create connect server

connect server create

関連サーバーを指定するために引数を使う代わりに--serverフラグを追加します

delete connect server

connect server delete

-引数が指定されている場合はパイプ入力を許可します

edit connect server

connect server edit

list connect servers

connect server list

-

connect server get

create connect token

connect token create

delete connect token

connect token delete

edit connect token

connect token edit

引数名がjtiからtokenに変更されました

list connect tokens

connect token list

ConnectVault.ACLが小文字とアンダースコアで表示されるようになりました

add connect server

connect vault grant

引数serverとvaultがフラグ--serverと--vaultに変更されました

remove connect server

connect vault revoke

引数serverとvaultがフラグ--serverと--vaultに変更されました

manage connect add group

connect group grant

引数serverとgroupがフラグ--serverと--groupに変更されました

manage connect remove group

connect group revoke

引数serverとgroupがフラグ--serverと--groupに変更されました

create item

item create

  • アイテムテンプレートファイルを指定する--templateフラグが、引数としてエンコードアイテムを置き換えます

  • 引数categoryがフラグ--categoryに変更されました

  • テンプレートの JSON 形式が変更されました。新しい形式の詳細をご覧ください。

delete item

item delete

-引数が指定されている場合はパイプ入力を許可します

edit item

item edit

新しい--tags、--title、​--urlフラグ

get item

item get

list items

item list

list templates

item template list

get template

item template get

create group

group create

delete group

group delete

-引数が指定されている場合はパイプ入力を許可します。

edit group

group edit

-引数が指定されている場合はパイプ入力を許可します。

list groups

group list

get group

group get

add user <user> <group>

group user grant

引数userおよびgroupがフラグ--userと--groupに変更されました

remove user <user> <group>

group user revoke

引数userとgroupがフラグ--userと--groupに変更されました

op list users --group <group>

group user list

op list users --group GROUPはまだ機能します

delete trash

-

非推奨

create document

document create

--filenameフラグが--file-nameフラグに変更されました

edit document

document edit

--filenameフラグが--file-nameフラグに変更されました

list documents

document list

get document

document get

delete document

document delete

create integration events-api

events-api create

list events

-

代わりにEvents Reporting APIを使ってください。

encode

-

非推奨。create item --template=file.jsonを代わりに使ってください

付録:デフォルトの出力をJSONにする

1Password CLI 2のデフォルトの出力形式は、人間が判読しやすい表形式のスキーマです。デフォルトを機械が判読しやすいなJSONに変更するには、次の2つの方法があります。

  • コマンドで1度だけ指定する場合は、--format jsonフラグをコマンドに含めます。 例:

op item get <name> --format json。

  • 常にJSONをデフォルトにするには、環境変数$OP_FORMATをjsonに設定します。

付録:アイテムJSONテンプレート

1Password CLI 2のアイテムJSONテンプレートでは、いくつかの書式設定の改善とフィールド名の変更ができます。

旧テンプレート

新テンプレート

{

"fields": [

{

"designation": "username",

"name": "username",

"type": "T",

"value": ""

},

{

"designation": "password",

"name": "password",

"type": "P",

"value": ""

}

],

"notesPlain": "",

"passwordHistory": [],

"sections": []

}

{

"title": "",

"category": "LOGIN",

"fields": [

{

"id": "username",

"type": "STRING",

"purpose": "USERNAME",

"label": "username",

"value": ""

},

{

"id": "password",

"type": "CONCEALED",

"purpose": "PASSWORD",

"label": "password",

"value": ""

},

{

"id": "notesPlain",

"type": "STRING",

"purpose": "NOTES",

"label": "notesPlain",

"value": ""

}

]

}

1Password CLI 1テンプレートの各フィールドは1Password CLI 2と次のように対応します。

アイテム

1Password CLI 1

1Password CLI 2

注記

uuid

templateUuid

category

details

-

sections、fieldsにに置き換えられる

セクション

1Password CLI 1

1Password CLI 2

注記

name

id

title

label

fields

-

分離される

フィールド

1Password CLI 1

1Password CLI 2

n

id

k

type

t

label

v

value

-

section

ヘルプを受ける

1Password CLI 2へのアップグレードに関してサポートが必要な場合は、1Passwordサポートにお問い合わせいただくか、Developer Slack ワークスペースに参加して#cliチャネルで質問してください。

さらに詳しく知るには