.envファイルを安全に共有する

シークレットをリポジトリにコミットする代わりに、暗号化リンクで.envファイルの内容をチームメンバーに渡そう。

問題

環境ファイルにはAPIキー、データベースURL、サービストークンが一箇所に集まっている。Slack経由で共有したり、プライベートなリポジトリであっても、リポジトリにコミットすることは攻撃の集中ターゲットを作り出す。1つの.env漏洩で、アプリケーションが接続しているすべての外部サービスが危険にさらされる可能性がある。

Vaulted のサポート内容

.envの内容をVaultedに貼り付け、自動的に期限切れとなる暗号化リンクを共有できる。AES-256-GCM暗号化はブラウザ上で完全に実行され、復号鍵はサーバーに一切触れない。これにより.envのシークレットがメッセージ履歴やバージョン管理に残るリスクを排除できる。

手順

  1. .envファイルの内容をVaultedに貼り付ける
  2. 閲覧回数の上限と有効期限を設定する
  3. 設定ファイルが必要な開発者に暗号化リンクを送る
  4. 開発者がリンクを開いて変数をコピーし、リンクは消滅する

ターミナルから.envファイルを共有する

Vaulted CLIを使えば開発者はブラウザを完全にスキップできる。.envファイルを直接パイプする: cat .env.production | npx vaulted-cli --views 1 — またはファイルパスを指定する: npx vaulted-cli --file .env.local --expires 24h。同じ暗号化、同じ自己消滅リンク。npmでインストール: npm install -g vaulted-cli。

GitHub Actionsで.envファイルを共有する

Vaulted GitHub ActionでCI/CD内の環境設定を共有できる: uses: vaulted-fyi/share-secret@v1 で.envの内容をシークレットとして設定する。このActionはローカルで暗号化し、共有可能なリンクを出力する。GitHub Marketplaceで公開中。