【1Password移行①】AIにディスクを読まれる前に──なぜ機密情報をディスクから消すか
Claude Codeを使い始めてから、めちゃくちゃ便利でついついなんでも頼んでいたんですが、ある日ふと気づいてしまいました。
「あれ、こいつ……~/.ssh も .env も全部読めるじゃん」
Claude CodeはAIアシスタントとしてファイルシステムへのアクセス権限を持っています。
ということは、ホームディレクトリ以下のファイルも、プロジェクトの .env ファイルも、理論上は全部読めるわけです。
もちろん Claude Code 自体が悪意を持って動いているわけじゃないんですが、「読めてしまう」という事実は変わりません。
で、ちょっと焦りました。
目次
自分のマシンを棚卸ししてみた
試しに自分のマシンを棚卸ししてみたら、機密情報がファイルとしてめちゃくちゃ残っていました。
代表的なものを挙げると、こんな感じです。
~/.ssh/id_rsa、~/.ssh/id_ed25519— SSH秘密鍵.env、.env.local— APIキーやDBパスワード~/.config/配下のトークンファイル — GitHub CLI、Google Cloud SDK等- 自作スクリプト内にハードコードされた認証情報
「どうせローカルだし」と思って雑に置いていたものが、結構ありました。
自分でも引くくらいには。
ファイルに置いておくと何が怖いのか
「ローカルファイルなんて大丈夫でしょ」と思いがちですが、3つの脅威があります。
① AIツールが読める
Claude Codeに限らず、CursorやGitHub Copilot Workspaceなど、ファイルシステムにアクセスできるAIツールは同様です。
意図せず機密情報が会話に含まれてしまう可能性があります。
実際に「このプロジェクトのセットアップを手伝って」と頼んだとき、.env の中身がプロンプトに含まれてしまうケースがあります。
② 不正アクセス・マルウェア
PCに侵入されたとき、ファイルに書いてあったら一発でアウトです。
パスワードマネージャーに保存されていれば、マスターパスワードがないと取り出せません。
③ 端末紛失・盗難
MacはFileVaultで暗号化されていても、ログイン後の状態で盗まれたらファイルは読まれます。
「ロック画面があるから大丈夫」は過信です。
考え方の転換:「書いてある = 読まれる可能性がある」
今回のシリーズの出発点はここです。
どんなに便利でも、ファイルとして平文で置いておく限りリスクはゼロにはなりません。
逆に言うと、「ファイルに書かない仕組み」を作れれば、かなりのリスクをまとめて消せます。
AIツールが普及したことで、「ローカルだから安全」という前提が崩れてきました。
ちょうどいい機会なので、この機に整理しておこうと思いました。
対策の方向性
ディスク上のファイルから機密情報を消して、必要なときだけ安全に参照できる場所へ移す。
具体的には、1Passwordを使います。
パスワード管理ツールとして有名ですが、開発ツールとの統合が厚くて、CLIからも使えて、SSHエージェントまで兼ねてくれます。
このシリーズでは、以下の3つを順番に移行していきます。
- Series A(思想・設計編):なぜやるか、どう設計するか
- Series B(SSH移行編):SSHキーを1Passwordに移行する
- Series C(Credential移行編):APIキーや環境変数を移行する
次回 A-2「なぜ1Passwordか」では、他のツールと比較しながら選んだ理由を書いていきます。
今回は以上です!