シークレットを実行時に注入するツールの選び方
シークレットはコードや .env に書かず、起動時にシークレットストアから環境変数として注入する。用途別にツールを選ぶ。
選択肢
| ツール | 向いている場面 | ポイント |
|---|---|---|
| docker-vals | Docker Compose 開発 | Docker CLI プラグイン。docker compose up だけで AWS SSM や 1Password から値を引いてコンテナに注入 |
| SecretSpec | 言語非依存のプロジェクト | 必要なシークレットを宣言し、プロバイダ(キーチェーン、1Password 等)から解決。@matsuu 推し |
| Infisical | チームでの .env 共有 | 環境(dev/stg/prod)分離、変更履歴、infisical run -- <cmd> で注入、GitHub Actions/Vercel/AWS 同期、セルフホスト可 |
| Cloudflare Secrets Store | Workers | アカウント全体で共有するシークレットの中枢。Worker から実行時に取得し、コードに一切現れない |
| Grafana Cloud k6 Secrets | 負荷試験スクリプト | API キーを一元保管して実行時注入 |
| age | ファイル暗号化 | 別記事参照 |
手順例(Infisical)
sh
infisical login
infisical init
infisical run --env=dev -- npm run dev注意点
- 注入された環境変数は同じプロセス/子プロセスから読める。AI エージェントを子プロセスとして起動する場合は env scrub(エージェントに渡す env を絞る)を検討。
- 本番は IAM ロール等の「鍵を持たない」方式が理想。
出典
- @matsuu · 2026-07-20 (docker-vals)
- @matsuu · 2026-07-05 (SecretSpec)
- @commte · 2026-03-14 (Infisical)
- @KoichiNishizuka · 2026-04-20 (Cloudflare Secrets Store)
- @grafana · 2026-05-04