【1Password移行②】なぜ1Passwordを選んだか

2026.05.08 09:00
2026.05.09 11:44
【1Password移行②】なぜ1Passwordを選んだか

前回は「なぜディスクから機密情報を消すか」という話をしました。
今回は、移行先として1Passwordを選んだ理由を書いていきます。

ちなみに最初から1Password一択だったわけじゃなくて、いくつか候補を比較しながら決めました。

何を求めていたか

「ただパスワードを管理したい」だけなら、どのツールでも大差ありません。
でも今回の目的は「開発環境の機密情報をディスクから消す」こと。
そうなると、求める要件がちょっと変わってきます。

自分が求めていた要件はこんな感じです。

  • CLI対応:ターミナルからシークレットを取り出せる
  • SSH agent:SSHキーをパスワードマネージャー側で管理できる
  • 環境変数注入op run のように、シークレットを環境変数として注入できる
  • シークレット参照:設定ファイルに値を直書きせず、参照形式で書ける
  • Mac / Linux対応:macOS と Linux で動く

特に「SSH agent」と「環境変数注入」は必須でした。
これができないと、SSHキーと .env の移行ができないので。

候補として挙がったもの

macOS Keychain

Mac標準なので追加コストゼロ。
ただ、CLIからのアクセスが security コマンド経由でちょっと複雑だし、SSH agentとしては使えません。
Macオンリーなのも気になりました。

Bitwarden

オープンソースで無料プランもある、コスパの良いパスワードマネージャーです。
CLI(bw)もあって使いやすい。

ただ、SSH agentとしての機能はなく、op run のような環境変数注入の仕組みも持っていません。
「パスワード管理」は得意だけど「開発ツール統合」はやや弱い印象でした。

HashiCorp Vault

エンタープライズ向けのシークレット管理ツール。
機能は申し分ないんですが、自前でサーバーを立てる必要があって、個人や小規模チームには正直オーバースペックでした。
「管理するためのインフラを管理する」のが大変すぎる。

direnv + .envrc

ディレクトリごとに環境変数を切り替えられる便利ツールです。
でも結局 .envrc に値を書くことになるので、「ディスクから消す」という目的は達成できません。
あくまで環境変数を使いやすくするツールで、シークレット管理ではないですね。

1Passwordを選んだ理由

比較した結果、1Passwordが一番「開発ツールとの統合」が手厚かったです。

決め手になったのはこの4つ。

① SSH agent が使える

1PasswordのデスクトップアプリがSSH agentとして動いてくれます。
秘密鍵を1Passwordに保存しておけば、~/.ssh/ に鍵ファイルを置かなくてもSSH接続できます。
GitHubへのpushも、サーバーへのSSHも全部1Password経由になります。

② op run で環境変数を注入できる

op run -- コマンド の形で実行すると、1Passwordのシークレットを環境変数として注入してくれます。

op run -- node server.js

設定ファイルには op://Vault名/アイテム名/フィールド名 という参照形式で書いておけば、実行時に値が展開されます。
.env ファイルに値を書かずに済むので、ディスクから消せます。

③ CLI(op)が使いやすい

1Passwordの公式CLIツール op は、シェルスクリプトやMakefile、CI/CDとの統合がしやすいです。
シークレットを取り出したり、アイテムを管理したりが全部ターミナルでできます。

④ 有料だけど払う価値があった

月額 $2.99(個人プラン)です。
無料で使えるBitwardenと比べると高いんですが、SSH agent と op run の機能だけで元が取れると判断しました。

「パスワード管理ツール」ではなく「開発環境のインフラ」として考えると、この価格は安いです。

次回:Vault設計

ツールが決まったら、次は「どう整理するか」の設計です。
1PasswordにはVaultという概念があって、アイテムをグループ分けできます。

次回 A-3「Vault設計」では、どう分けると後が楽になるかを書いていきます。

今回は以上です!