1Password CLI 2にアップグレードする
1Passwordマニュアル|1Password CLI 2にアップグレードする方法を解説します。
1Passwordマニュアル|1Password CLI 2にアップグレードする方法を解説します。
、を新しいコマンド構文に更新する方法を紹介します。
1Password CLIのバージョン 2は 2022 年3月にリリースされました。それ以来、96%以上のユーザーが最新バージョンを採用しています。
1Password CLI 2には、ツールを使いやすくするためのスキーマへの多数の変更と、シークレットのプロビジョニングに役立つ新機能が含まれています。
新しいスキーマ
1Password CLI 2 では、操Create別ではなくトピック別にコマンドをグループ化する名詞-動詞コマンド構造が導入されています。 op --helpで利用可能な全トピックを検索でき、 op <topic> --helpで各トピックで利用可能なコマンドを確認できます。トピックには次のものがあります:
その他のスキーマの変更は次の通りです:
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などのパッケージ マネージャーを使った簡単なインストールをサポートしています。
1Password CLI 2にアップグレードする方法は複数あります。ワークフローとツールチェーンに応じて、すぐにアップグレードすることも、段階的にアップグレードすることもできます。
1Password CLI 2にアップグレードする最も簡単な方法は、保存済みのインストールを上書きすることです。これは、各ローカルインストールを同時にアップグレードできる小規模なチームがある場合に適したオプションです。
現在のインストールのディレクトリーを取得するには、which op(Windowsの場合はGet-Command op.Path)を使います。
インストールを確認するには、次のコマンドでバージョン番号を確認します。
$ op --version
チームの全員が1Password CLI 2にアップグレードしたことを確認してください。スクリプトを更新すると、以前のバージョンの1Password CLIでは動作しなくなります。
すぐにアップグレードする準備ができていない場合は、Dockerを使って個々のプロジェクトをアップグレードするか、1Password CLIの両方のバージョンを並行して利用できます。バージョン2がリリースされた後も、バージョン1のサポートは1年間継続されます。
Dockerを使って個々のプロジェクトをアップグレードする
プロジェクトごとにアップグレードしたい場合は、ワークフローをDockerizeして、各チーム メンバーが特定のプロジェクトのDockerイメージ内の1Password CLIのバージョンを利用できるようにします。各チームメンバーがそれぞれのローカルインストールを更新する必要がないため、これは大規模なチームに適したオプションです。
FROM 1password/op:2
COPY ./your-script.sh /your-script.sh
CMD ["/your-script.sh"]
このアプローチにより、スクリプトをCI/CDパイプラインなどのヘッドレス環境に移動することもできます。
両方のバージョンの1Password CLIを使い続ける
スクリプトが各チームメンバーのマシン上のローカルインストールに依[Save]しており、段階的に移行したい場合は、これが最適なオプションです。
各チームメンバーは次のことを行う必要があります。
以前のバージョンの1Password CLIの名前をop1に変更します。
op1が出現する場所を全部検索してopに置き換えます。
⚠️注意
macOSの場合、1Password CLI 2は正確に /usr/local/bin/op に移動する必要があります。 Linuxの場合は、/usr/local/bin/opに移動することをお勧めします。
全スクリプトを更新し、アップグレードの準備ができたら、以前のバージョンの 1Password CLIをアンインストールします。
スクリプト内でop1が出現する場所を全部検索してopに置き換えます。
スクリプトで以前のバージョンの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に変更されました
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
-
encode
-
非推奨。create item --template=file.jsonを代わりに使ってください
1Password CLI 2のデフォルトの出力形式は、人間が判読しやすい表形式のスキーマです。デフォルトを機械が判読しやすいなJSONに変更するには、次の2つの方法があります。
コマンドで1度だけ指定する場合は、--format jsonフラグをコマンドに含めます。 例:
op item get <name> --format json。
常にJSONをデフォルトにするには、環境変数$OP_FORMATを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
デフォルトの出力は、人間に分かりやすい表形式のスキーマになりました。
全てできます。
フィードバックを共有するには、にアクセスしてください。
、opコマンドを同じディレクトリーに移動して、保存済みのコピーを上書きします。
か、独自のイメージを使って。Dockerfileは次のようになります。
2. 1Password CLI 2にアップグレードした後、新しいコマンド構文を使うように
を、$PATH内にインストールします。
を1つずつ新しいopコマンドをように更新してください。現在のスクリプトをop1としてインストールされている以前のバージョンの1Password CLIで引き続き使用できます。
テンプレートの JSON 形式が変更されました。
代わりにを使ってください。
では、いくつかの書式設定の改善とフィールド名の変更ができます。
1Password CLI 2へのアップグレードに関してサポートが必要な場合は、1Passwordサポートにお問い合わせいただくか、に参加して#cliチャネルで質問してください。