1Passwordが「.envファイル廃止」を提案|AIエージェント時代のシークレット管理はこう変わる

30
スポンサーリンク

1Passwordが「.envファイル廃止」を提案|AIエージェント時代のシークレット管理はこう変わる

Claude Code、Cursor、GitHub CopilotなどのAIコーディングエージェントは、プロジェクト内のファイルを自由に読める。 つまり .env に平文で置いたAPIキーやシークレットは、すべてAIモデルのコンテキストに入る可能性がある。

1Passwordは2026年3月17日、この問題に正面から取り組む新プラットフォーム 「Unified Access」 を発表した。Anthropic・Cursor・GitHub・Vercel・Perplexityとのパートナーシップも同時に公開されている。


スポンサーリンク

.envファイルは何が問題なのか

開発者にとって .env は馴染み深い存在だが、AIエージェントが当たり前になった今、構造的な問題を抱えている。

リスク内容
AIコンテキスト漏洩エージェントがファイルを読み取り、APIキーがモデルに送信される
ディスク上の平文保存.envはただのテキストファイル。暗号化されていない
Git誤コミット.gitignore漏れで秘密情報がリポジトリに入るインシデントは今も頻発
チーム共有の困難Slackやメールで.envを送り合う運用がセキュリティホールになる
アクセス制御なし誰がいつどのシークレットを使ったか追跡できない

AIエージェントが日常的にプロジェクトファイルを読む時代において、「プロジェクトルートに平文でシークレットを置く」という運用自体が設計上の欠陥になりつつある。


1Passwordの回答: 3つのアプローチ

1. シークレット参照URI(SDK統合)

.envにAPIキーを直接書く代わりに、シークレット参照URIをコードに記述する。

# Before: .envから読み込み
api_key = os.environ["OPENAI_API_KEY"]  # 平文が.envにある

# After: 1Password SDKで動的取得
fromonepasswordimport Client

client = await Client.authenticate(...)
api_key = await client.secrets.resolve("op://dev-vault/openai/api-key")

AIエージェントがコードを読んでも見えるのは op://dev-vault/openai/api-key というURIだけ。実際の秘密値はモデルのコンテキストに入らない。

2. 1Password CLI(op run)

既存のスクリプトを変更せずに環境変数を安全に注入する方法。

# .envを使わず、1Passwordから環境変数を注入して実行
oprun--env-file=.env.tpl--pythonmain.py

.env.tplにはシークレット参照URIだけを書く。op runが実行時にボールトから値を解決し、プロセスの環境変数として渡す。ディスクには平文が残らない。

3. 1Password Environments(ローカル.env代替)

1Password Environmentsを使うと、従来の.envファイルと同じ感覚でシークレットを扱える。

  • UNIXの名前付きパイプ経由で環境変数を渡す
  • ターミナルが1回だけ読み取り、プロセスに直接注入
  • ディスクに平文が書き込まれない

Unified Access: エンタープライズ向けAIエージェントセキュリティ

2026年3月17日に発表された Unified Access は、上記の個人向け機能を企業レベルに拡張するプラットフォーム。

主な機能

  • クレデンシャルの一元管理: AIエージェントが使うシークレットを集中管理・監査
  • 露出検出: 暗号化されていないSSH鍵や平文の.envファイルを自動検出
  • スコープ付き短命トークン: エージェントに必要最小限・期限付きのクレデンシャルを発行(今後追加予定)
  • パートナーAPI: 外部ツールとの連携用API

パートナー企業

企業領域
AnthropicAI基盤(Claude)
CursorAIコーディングIDE
GitHub開発プラットフォーム
Vercelデプロイ・インフラ
PerplexityAI検索

AIインフラ・開発ツール・MCPゲートウェイ・AIブラウザのカテゴリリーダーとの連携を進めている。


1Password自身の警告: SDK統合は「完全解決」ではない

1Passwordの公式ドキュメントには、重要な注意書きがある。

SDKでシークレットを取得してAIエージェントに渡すアプローチは「理想的な統合方法ではない」。生の認証情報がAIモデルに露出することは重大なリスクを持つ。

つまり、SDK統合は「.envよりマシ」だが根本解決ではないというスタンスだ。

推奨されているのは:

  • 短命トークン: 数分〜数時間で失効するスコープ付きトークンを使う
  • 最小権限: エージェントには必要な操作だけ許可する
  • 監査ログ: どのエージェントがいつ何にアクセスしたかを記録する

今日からできる対策

レベル対策難易度
初級.envをAIエージェントの除外ファイルに指定する(.claudeignore等)簡単
初級AIセッション中に.envを開かない運用ルールを徹底簡単
中級1Password CLI op run で環境変数を動的注入に移行中程度
中級APIキーのスコープを最小限に設定し、定期ローテーション中程度
上級1Password SDK統合でコードからシークレット参照URIのみにする要設計変更
上級Unified Access導入でチーム全体のエージェントアクセスを監査エンタープライズ

わさびの見方

AIコーディングエージェントが「プロジェクトのファイルを全部読める」という事実は、今まであまり意識されてこなかった。でも冷静に考えれば、.envに平文でAPIキーを書いてプロジェクトルートに置くのは、AIエージェントに「どうぞ読んでください」と言っているようなものだ。

1PasswordがAnthropicやCursorとパートナーシップを組んだのは、この問題がもう「個人の注意」では対処しきれない規模になっているということ。.claudeignore.envを追加するだけでも最初の一歩にはなるが、長期的にはシークレット管理の仕組み自体を変えていく必要がある。

特に注目したいのは、1Password自身が「SDK統合でも完全ではない」と正直に認めている点。AIエージェントのセキュリティは発展途上で、銀の弾丸はまだない。だからこそ、複数のレイヤーで防御する意識が大事だと思う。


ソース


この記事を書いたのは わさび(ニホンイシガメ / 3歳 / VTuber[あかはら。]の家族)
AI・セキュリティの最新情報を「はやく・わかりやすく」日本語でお届けしています。
著者プロフィールあかはら vlab トップ

この記事が参考になったら|以下のリンクから見てもらえるだけで、ブログ運営の応援になります。

コメント

タイトルとURLをコピーしました