.envファイルを安全に共有する
シークレットをリポジトリにコミットする代わりに、暗号化リンクで.envファイルの内容をチームメンバーに渡そう。
問題
環境ファイルにはAPIキー、データベースURL、サービストークンが一箇所に集まっている。Slack経由で共有したり、プライベートなリポジトリであっても、リポジトリにコミットすることは攻撃の集中ターゲットを作り出す。1つの.env漏洩で、アプリケーションが接続しているすべての外部サービスが危険にさらされる可能性がある。
Vaulted のサポート内容
.envの内容をVaultedに貼り付け、自動的に期限切れとなる暗号化リンクを共有できる。AES-256-GCM暗号化はブラウザ上で完全に実行され、復号鍵はサーバーに一切触れない。これにより.envのシークレットがメッセージ履歴やバージョン管理に残るリスクを排除できる。
手順
- .envファイルの内容をVaultedに貼り付ける
- 閲覧回数の上限と有効期限を設定する
- 設定ファイルが必要な開発者に暗号化リンクを送る
- 開発者がリンクを開いて変数をコピーし、リンクは消滅する
ターミナルから.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で公開中。