1Password Environments で .env をマウントし、平文ファイルを置かない
1Password Environments は .env を名前付きパイプとしてマウントし、読み出し時にだけ値を供給する。ディスクに平文が残らず、CLI も不要。
何を解決するか
.envの平文ファイルがディスクやバックアップ、worktree コピー、エージェントのコンテキストに散らばる問題。
手順
- 1Password アプリで Environment を作り、変数を登録する。
- プロジェクトのパスを指定して
.envとしてマウントする。実体はパイプ(ls -lでprw-------)で、読まれたときにメモリ上で値が渡る。 - Codex などの MCP 設定では、そのパスを指定するだけで利用できる(@ken5scal の検証)。
- Google Cloud のサービスアカウント JSON なども同じ方式でインメモリ化できる可能性がある。AWS Secrets Manager との同期も組み合わせられる。
- AWS の AccessKey を 1Password Environments 経由で安全に使う CLI も公開されている(@azu_re が紹介した DevelopersIO 記事)。
注意点
- パイプは「読めるプロセスには読める」。エージェントが
cat .envすれば値は見える。deny ルールと併用する。 - 1Password 以外では Bitwarden にも CLI(
bw)がある。